1 引言
Apache CarbonData是一个面向大数据平台的基于索引的列式数据格式,由华为大数据团队贡献给Apache社区,目前最新版本是1.0.0版。介于目前主流大数据组件应用场景的局限性,CarbonData诞生的初衷是希望通过仅保存一份数据来满足不同的应用场景,如:
- OLAP
- 顺序存取(Sequential Access)
- 随机存取(Random Access)
CarbonData也被评为2016年的BLACKDUCK奖,有关CarbonData的相关资料如下:
- 官网地址: http://carbondata.apache.org
- Github: https://github.com/carbondata/carbondata
- Mailing list: dev@carbondata.incubator.apache.org
- cwiki:https://cwiki.apache.org/confluence/display/CARBONDATA/CarbonData+Home
- Jira地址: https://issues.apache.org/jira/browse/CARBONDATA
本文主要介绍Spark2.1.0 + CarbonData1.0.0集群模式部署流程,并辅以一个小案例来讲解如何在spark shell下使用CarbonData。
2 准备工作
2.1 集群规划
id | hostname | mem | cpu | storage |
---|---|---|---|---|
1 | master | 32G | Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz | SATA3 7200RPM 4T |
2 | slave1 | 32G | Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz | SATA3 7200RPM 8T |
3 | slave2 | 32G | Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz | SATA3 7200RPM 8T |
4 | slave3 | 32G | Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz | SATA3 7200RPM 8T |
5 | slave4 | 32G | Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz | SATA3 7200RPM 8T |
2.2 系统环境
操作系统
- 下载地址:http://mirrors.163.com/
- 建议版本:Unix-like environment (Linux, Mac OS X)
- 版本查看:
# 示例(CentOS) [hadoop@master ~]$ cat /etc/redhat-release CentOS release 6.8 (Final)
JDK
- 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
- 建议版本:JDK1.8.0+
- 版本查看:
[hadoop@master ~]$ java -version java version "1.8.0_60"
Git
- 下载地址:https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
- 建议版本:无
- 版本查看:
[hadoop@master ~]$ git --version git version 1.7.1
Maven
- 下载地址:https://maven.apache.org/download.cgi
- 建议版本:3.0.4
- 版本查看:
[hadoop@master ~]$ mvn -v Apache Maven 3.0.4 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: /opt/maven-3.0.4
Hadoop
- 下载地址:http://hadoop.apache.org/#Download+Hadoop
- 建议版本:2.7.2
- 版本查看:
[hadoop@master ~]$ hadoop version Hadoop 2.7.2 [hadoop@master ~]$ echo $HADOOP_HOME /opt/hadoop-2.7.2
Scala
- 下载地址:http://www.scala-lang.org/
- 建议版本:2.11.x
- 版本查看:
[hadoop@master ~]$ scala -version Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL
Spark
- 下载地址:http://spark.apache.org/downloads.html
- 建议版本:2.1.0
- 部署模式:Standalone/YARN
- 版本查看:
[hadoop@master spark-2.1.0]$ ./bin/spark-submit --version Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 2.1.0 /_/ Using Scala version 2.11.8, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_60 [hadoop@master ~]$ echo $SPARK_HOME /opt/spark-2.1.0
Thrift
- 下载地址:http://thrift.apache.org/download
- 建议版本:0.9.3
- 版本查看:
[hadoop@master ~]$ thrift -version Thrift version 0.9.3
3 编译及部署
3.1 编译
Step 1:源码下载
$ git clone https://github.com/apache/incubator-carbondata.git carbondata
Step 2:修改Maven私有仓库地址(可选)
由于网络原因,从Maven中央仓库下载jar包可能非常慢,大家可根据自己的实际情况修改为企业内部私有仓库或阿里云等外部源,如:
# 修改conf/setting.xml文件 <mirrors> <mirror> <id>nexus</id> <name>nexus</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors>
Step 3:编译打包
[hadoop@master ~]$ cd carbondata [hadoop@master carbondata]$ mvn clean package -DskipTests -Pspark-2.1 -Dspark.version=2.1.0 -Phadoop-2.7.2
在编译打包的过程中,maven会自动下载所依赖的jar包,但可能还会有部分jar包无法下载成功导致打包失败的情况,此时需要我们手动去网上下载并将对应的jar包放到Maven localRepository的对应目录下并重新执行上述命令,执行成功后,会出现以下提示:
[INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] Apache CarbonData :: Parent ........................ SUCCESS [ 1.319 s] [INFO] Apache CarbonData :: Common ........................ SUCCESS [16:82 min] [INFO] Apache CarbonData :: Core .......................... SUCCESS [03:23 min] [INFO] Apache CarbonData :: Processing .................... SUCCESS [ 8.623 s] [INFO] Apache CarbonData :: Hadoop ........................ SUCCESS [ 6.237 s] [INFO] Apache CarbonData :: Spark Common .................. SUCCESS [ 52.524 s] [INFO] Apache CarbonData :: Spark2 ........................ SUCCESS [ 50.118 s] [INFO] Apache CarbonData :: Spark Common Test ............. SUCCESS [ 25.072 s] [INFO] Apache CarbonData :: Assembly ...................... SUCCESS [ 5.521 s] [INFO] Apache CarbonData :: Spark2 Examples ............... SUCCESS [ 8.742 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------