1. 程式人生 > >hive on spark 效能引數調優

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"