Carbondata 1.4.0+Spark 2.2.1 On Yarn集成安装

微信公众号(SZBigdata-Club):后续博客的文档都会转到微信公众号中。 
1、公众号会持续给大家推送技术文档、学习视频、技术书籍、数据集等。 
2、接受大家投稿支持。 
3、对于各公司hr招聘的,可以私下联系我,把招聘信息发给我我会在公众号中进行推送。 

è¿éåå¾çæè¿°
技术交流群:59701880 深圳广州hadoop好友会 

è¿éåå¾çæè¿°

由于项目需要,近期一直在研究华为开源的carbondata项目,目前carbondata已经成为apache的顶级项目,项目活跃程度也比较高。

Carbondata介绍

纵观目前的大数据生态圈,针对于ad-hoc查询并没有什么好的解决方案,且查询效率不高。Carbondata针对ad-hoc给出了解决方案,但是目前版本这个方案并不完善。为什么说并不完善,后续会给大家解答,我们先来说下carbondata的优点

查询

  • 两级索引,减少IO:适合ad-hoc查询,任意维度组合查询场景
    • 第一级:文件索引,用于过滤hdfs block,避免扫描不必要的文件
    • 第二级:Blocklet索引,用于过滤文件内部的Blocklet,避免骚烤不必要的Blocklet
  • 延迟解码,向量化处理:适合全表扫描、汇总分析场景

数据管理

  • 数据增量入库,多级排序可调:有用户权衡入库时间和查询性能
    • 字典编码配置(Dictionary Encoding Configuration)
    • 反向索引配置(Inverted Index Configuration)
    • 排序列配置(Sort Columns Configuration)
  • 增量更新,批量合并:支持快速更新事实表或维表,闲时做Compaction合并

大规模

  • 计算与存储分离:支持从GB到PB大规模数据,万亿数据秒级响应

部署

  • Hadoop Native格式:与大数据生态无缝集成,利用已有hadoop集群资产
  • 与Spark2.x版本集成 carbondata 1.4.0新增了挺多强大的功能,主要关注的点是在datamap上,不过目前datamap对于单表的支持是比较好的,但是对于多表join的datamap支持还不够完善,还是有蛮多问题的。

单表的datamap目前包括:preaggregate、timeseries、bloomfilter、lucene

 

1

2

3

4

5

6

7

8

9

10

11

12

13

 

#创建datamap

CREATE DATAMAP [IF NOT EXISTS] ${dataMapName}

ON TABLE '${tableName}'

USING "datamap_provider" #preaggregate,timeseries,bloomfilter,lucene

DMPROPERTIES ('key'='value', ...)

AS

SELECT statement

#删除datamap

DROP DATAMAP ${dataMapName} ON TABLE ${tableName}

#查询datamap

SHOW DATAMAP ON TABLE '${tableName}'

多表datamap目前1.4.0官方文档并没有给出,我是通过carbondata jira的问题找到其创建方式的,多表的datamap预计在1.5.0版本才能使用,目前问题较多,这里暂时不建议使用,等1.5.0版本出来之后再试试看。1.5.0版本官方等版本计划是8-9月份完成。

 

1

2

3

4

 

CREATE DATAMAP [IF NOT EXISTS] ${dataMapName}

USING 'mv'

AS

SELECT statement

与Spark2.2.1+Hadoop2.7.2 On Yarn集成

前置条件

  • Hadoop HDFS 和 Yarn 需要安装和运行。
  • Spark 需要在所有的集群节点上安装并且运行。
  • CarbonData 用户需要有权限访问 HDFS.

可以通过https://dist.apache.org/repos/dist/release/carbondata/1.4.0/下载你对应的spark版本,目前carbondata支持的spark版本有两个:2.1.0、2.2.1

下载apache-carbondata-1.4.0-bin-spark2.2.1-hadoop2.7.2.jar

 

1

 

wget https://dist.apache.org/repos/dist/release/carbondata/1.4.0/apache-carbondata-1.4.0-bin-spark2.2.1-hadoop2.7.2.jar

依赖包拷贝

 

1

2

3

4

5

6

 

# 替换jersey-client、jersey-core包

cp jersey-client-1.9.jar jersey-core-1.9.jar $SPARK_HOME/jars

rm jersey-client-2.x.jar jersey-core-2.x.jar

# 拷贝apache-carbondata-1.4.0-bin-spark2.2.1-hadoop2.7.2.jar到$SPARK_HOME/jars

cp apache-carbondata-1.4.0-bin-spark2.2.1-hadoop2.7.2.jar $SPARK_HOME/jars

创建carbonlib目录且生成tar.gz压缩包

 

1

2

3

4

5

6

7

8

9

10

 

#1、创建carbonlib目录

mkdir $SPARK_HOME/carbonlib

#2、拷贝carbondata jar包到carbonlib

cp apache-carbondata-1.4.0-bin-spark2.2.1-hadoop2.7.2.jar $SPARK_HOME/carbonlib

#3、生成tar.gz包

cd $SPARK_HOME

tar -zcvf carbondata.tar.gz carbonlib/

mv carbondata.tar.gz carbonlib/

[注]:如果想要测试多表的datamap mv功能,需要编译carbondata-apache-carbondata-1.4.0-rc2/datamap/mv下的core和plan两个工程,生成carbondata-mv-core-1.4.0.jar以及carbondata-mv-plan-1.4.0.jar并拷贝到SPARKHOME/jars和SPARKHOME/jars和SPARK_HOME/carbonlib,并重新执行上述第三步的内容。

拷贝carbondata.properties

拷贝carbon.properties.template到$SPARK_HOME/conf目录且命名为carbon.properties

 

1

 

cp ./conf/carbon.properties.template $SPARK_HOME/conf/carbon.properties

 

配置spark-default.conf

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

 

spark.master yarn-client

spark.yarn.dist.files /usr/hdp/2.6.2.0-205/spark2/conf/carbon.properties

spark.yarn.dist.archives /usr/hdp/2.6.2.0-205/spark2/carbonlib/carbondata.tar.gz

spark.executor.extraJavaOptions -Dcarbon.properties.filepath=carbon.properties -XX:+OmitStackTraceInFastThrow -XX:+UseGCOverheadLimit

spark.executor.extraClassPath carbondata.tar.gz/carbonlib/*:/home/hadoop/hive/lib/*

spark.driver.extraClassPath /usr/hdp/2.6.2.0-205/spark2/carbonlib/*

spark.driver.extraJavaOptions -Dcarbon.properties.filepath=/usr/hdp/2.6.2.0-205/spark2/conf/carbon.properties -Dhdp.version=current

spark.yarn.executor.memoryOverhead 1024

spark.yarn.driver.memoryOverhead 1024

spark.yarn.am.extraJavaOptions -Dhdp.version=current

spark.yarn.scheduler.heartbeat.interval-ms 7200000

spark.executor.heartbeatInterval 7200000

spark.network.timeout 300000

验证

启动thrift server服务

 

1

 

$SPARK_HOME/bin/spark-submit --class org.apache.carbondata.spark.thriftserver.CarbonThriftServer --num-executors 5 --driver-memory 6g --executor-memor^C10g --executor-cores 5 carbonlib/apache-carbondata-1.4.0-bin-spark2.2.1-hadoop2.7.2.jar hdfs://hacluster/user/hive/warehouse/carbon.store

执行后,任务会提交到yarn上,可以通过8088端口的web界面查看到。

如果在不配置spark-default.conf的情况下,其实也是可以运行的,不过是以单机模式运行,不会提交成yarn任务,通过4040端口可以查看到spark任务的运行情况

使用beeline链接

 

1

 

$SPARK_HOME/bin/beeline -u jdbc:hive2://<thriftserver_host>:10000 -n hdfs

以上就是基于Spark on yarn模式的carbondata集成,carbondata同时也支持Spark独立模式的集成安装。具体可参考下面的链接。

参考连接:
http://carbondata.iteblog.com/installation-guide.html
https://carbondata.apache.org/installation-guide.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值