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

SPARK_WORKER_INSTANCES=30 SPARK_WORKER_CORES=4 SPARK_WORKER_MEMORY=30g SPARK_MEM=30g OUR_JAVA_MEM="30g" SPARK_DAEMON_JAVA_OPTS="-XX:MaxPermSize=30g - Xms30g -Xmx30g"

猜你喜欢

转载自blog.csdn.net/AntKengElephant/article/details/83684947