hive on spark 性能调优

select * from stg_bankcard_auth_apply where length(idcardno) >= 1 and length(idcardno) <> 32;
–该表存储文件格式为txt格式,是源文件直接load进来的,mapreduce运行不管任何sql(包括非常简单的),直接崩溃,无法统计;文件65.5G,1.4亿条数据
–同样的sql统计;

set hive.execution.engine=spark;
–执行348.02 s

set spark.master=yarn-client;
set hive.execution.engine=spark;
set spark.eventLog.enabled=true;
set spark.eventLog.dir=hdfs://master:9000/spark-logs;
set spark.executor.memory=6g;
set spark.executor.cores=3;
set spark.executor.instances=40;
set spark.serializer=org.apache.spark.serializer.KryoSerializer;
–执行123.63 s

–>>
set spark.master=yarn-client;
set hive.execution.engine=spark;
set spark.eventLog.enabled=true;
set spark.eventLog.dir=hdfs://master:9000/spark-logs;
set spark.executor.memory=6g;
set spark.executor.cores=6;
set spark.executor.instances=40;
set spark.default.parallelism= 50;
set spark.serializer=org.apache.spark.serializer.KryoSerializer;
–执行 75.61 s
–>>
set spark.master=yarn-client; --yarn调度资源
set hive.execution.engine=spark; – 执行引擎换为spark;
set spark.eventLog.enabled=true;
set spark.eventLog.dir=hdfs://master:9000/spark-logs; --开启日志及路径
set spark.app.name=stg_bankcard_auth_apply – 任务名;

set spark.executor.memory=6g;
–该参数设置的是每个executor分配的内存的数量。需要注意的是,
–该内存数量是spark.executor.cores中设置的内核数共用的内存数量。
–例如上面示例中,就是4核cpu公用6G内存。
set spark.executor.cores=4;
–该参数为设置每个executor能够使用的CPU core的数量。
set spark.executor.instances=40;
–该参数决定了yarn集群中,最多能够同时启动的EXECUTOR的实例个数。
–Yarn中实际能够启动的最大Executors的数量会小–于等于该值。
–如果不能确定最大能够启动的Executors数量,建议将该值先设置的足够大。(就是设置尽量大)
– 一般50 到100个比较合适

set spark.serializer=org.apache.spark.serializer.KryoSerializer;
–不设置该项默认为javaJavaSerializer(默认)和KryoSerializer。
–根据Spark的官方说法,KryoSerializer性能相对好(10倍于JavaSerializer),

–更多优化可以参考官网;
–https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started

–参考博客
–https://blog.csdn.net/AntKengElephant/article/details/83582987

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这个操蛋的人生!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值