简介
carbondata 是华为开源的一种数据格式(如textfile,parquet,ORC……),号称实现大数据即席查询秒级响应。支持hadoop列式存储,文件格式,支持索引、压缩以及解编码等。
特点:
多维数据聚集
带索引的列存文件结构
支持列组
支持多种数据类型
压缩
Hadoop集成
可计算的编码方式
与计算引擎联合优化
官方推荐场景:希望一份数据存储可以同时满足快速扫描,多维分析,明细数据查询的场景。
部署
部署环境:需安装hadoop,spark,scala,jdk,thrift,maven。
1. 下载
carbondata现属于apache incubator项目。可从
https://github.com/apache/incubator-carbondata下载
或huawei carbondata官网
2. 编译
使用maven,可以根据需求更改maven仓库地址,以实现更快的下载速度。
进入carbondata根目录:
mvn clean package -DskipTests -Pspark-2.1 -Dspark.version=2.1.0 -Phadoop-2.7.2
版本可以在carbondata根目录下的pom.xml文件中查看spark和hadoop版本号,对应自己系统的spark,hadoop版本。
3.更改配置文件
复制carbon.properties文件
cp ~/carbondata/conf/carbon.properties.template /opt/spark-2.1.0/conf/carbon.properties
配置carbon.properties
carbon.storelocation=hdfs://host:port/opt/carbonStore
carbon.ddl.base.hdfs.url=hdfs://host:port/opt/data
#lock文件存储方式
carbon.lock.type=HDFSLOCK
配置spark-defaults.conf
spark.executor.extraJavaOptions -Dcarbon.properties.filepath=/opt/spark-2.1.0/conf/carbon.properties
spark.driver.extraJavaOptions -Dcarbon.properties.filepath=/opt/spark-2.1.0/conf/carbon.properties
4.启动
通过spark-shell启动standalone模式
./bin/spark-shell --jars carbondata.jar
启动spark on yarn模式
./bin/spark-shell --master yarn --num-executors 60 --executor-memory 5g --executor-cores 2 --driver-memory 10g --driver-cores 2 --jars carbondata.jar
5.example
importorg.apache.spark.sql.SparkSession
importorg.apache.spark.sql.CarbonSession._
val carbon =SparkSession.builder().config(sc.getConf).getOrCreateCarbonSession("hdfs://master:9000/opt/carbonStore")
carbon.sql("create table ……")
建表时,可参照http://carbondata.apache.org/docs/latest/mainpage.html?page=userguide#create-table
可使用索引,列组……
6.数据导入
LOAD DATA [LOCAL] INPATH 'folder_path' INTO TABLE[db_name.]table_name OPTIONS(property_name=property_value, ...)
后续后带来carbondata和parquet,orc的对比!