carbondata测试报告

carbondata测试报告

此文档是测试carbondata(1.4)与parquet(1.10)在spark sql搜索引擎上执行的对比情况

硬件配置

CPU:Intel(R) Xeon(R) CPU E5-2603 v4 @ 1.70GHz X 12
Memory : 128G
HardDisk : 12 X 4T,SATA盘

spark服务硬件配置

CPU:Intel(R) Xeon(R) CPU E5-2603 v4 @ 1.70GHz X 10
Memory : 50G
HardDisk : 3 X 4T,SATA盘

carbon配置项

carbon.storelocation=hdfs://logSave/carbon/carbonStore
carbon.ddl.base.hdfs.url=hdfs://logSave/data
carbon.sort.file.buffer.size=100
carbon.number.of.cores.while.loading=10
carbon.sort.size=100000
carbon.enableXXHash=true
carbon.number.of.cores.block.sort=5
carbon.number.of.cores.while.alterPartition=2
carbon.number.of.cores.while.compacting=2
carbon.compaction.level.threshold=4,3
carbon.load.global.sort.partitions=1024
carbon.major.compaction.size=1024
carbon.number.of.cores=4
carbon.inmemory.record.size=120000
carbon.enable.quick.filter=false
carbon.lock.type=LOCALLOCK
carbon.sort.intermediate.files.limit=20
carbon.sort.temp.compressor=GZIP

spark配置项

spark.master                     spark://xxx:7077
spark.serializer                 org.apache.spark.serializer.KryoSerializer
spark.driver.memory              8g
spark.sql.autoBroadcastJoinThreshold    2147483624
spark.scheduler.mode        FAIR
spark.default.parallelism    100
spark.kryoserializer.buffer.max 2047
spark.executor.extraJavaOptions  -XX:+CMSClassUnloadingEnabled -XX:MaxTenuringThreshold=5 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:PermSize=2048M -XX:MaxPermSize=4096m -XX:+UseCompressedOops
spark.eventLog.enabled  true
spark.eventLog.dir  hdfs://logSave/tmp/historydir
spark.sql.autoBroadcastJoinThreshold    2147483647
spark.rpc.askTimeout    300
spark.driver.extraJavaOptions      -Dcarbon.properties.filepath=/home/dmp/spark-2.2.1-bin-hadoop2.7/conf/carbon.properties
spark.executor.extraJavaOptions    -Dcarbon.properties.filepath=/home/dmp/spark-2.2.1-bin-hadoop2.7/conf/carbon.properties

数据情况

测试表名:base_parquet
数据格式:parquet
数据大小:279.7 G
数据条数:2784634688
数据维度:26维
服务器:18台,只有17台有数据,当时掉了一台,所以做转化时任务数为17,查询时为18台

转化情况

由于现在直接使用carbondata 开放的sdk接口输出不了carbondata,所以先使用简单的生成carbondata的方式。insert into select..

parquet转parquet
时间:26min
parquet转carbondata(建表语句默认配置)
时间:30min
大小:193G
parquet转carbondata_2(建表语句对手机号建了索引)
时间:35min
大小:204.3 G

base_parquet 别名:b1
base_carbondata_manager 别名:b2
base_carbondata_manager_2 别名:b3

sql语句

测试说明:根据日志留存的情况,把最小查询力度放到小时分区进行查询。现进行最小力度的测试对比。

Q1:select count(1) from t;
Q2:select * from t where msisdn=’xxxxx’;
Q3:select * from t where msisdn=’xxxxx’ and sourceip=’xxxxx’ and destip=’xxxxx’;
Q4:select * from t where destip='xxxxx' and sourceport=xxxxx;
Q5:select * from t where url=’http://eventlog.beacon.qq.com‘;
Q6:select sourceip,count(1) as ct from t group by sourceip order by ct desc limit 10;

表/耗时(s) Q1 Q2 Q3 Q4 Q5 Q6
b1 1.016 40.947 34.911 27.976 29.742 31.528
b2 1.404 9.056 4.139 15.028 14.925 15.042
b3 1.063 5.941 3.353 15.621 9.934 13.909

从以上对比来看,carbondata查询性能明显高于parquet。

你可能感兴趣的:(carbondata测试报告)