spark調優-防止不必要的jar包上傳與分發
對於使用者的jar包,有時候體積也非常龐大,我們同樣的方式上傳hdfs上,然後直接使用。
基於yarn模式驗證
bin/spark-submit --class org.apache.spark.examples.sparkpi \
--master yarn-cluster \
--num-executors 3 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
lib/spark-examples*.jar 10
**分發到hdfs上,如圖所示:
1.2 優化方案
將系統jar包上傳到hdfs上,直接使用hdfs上的檔案,具體如下:
(1)修改conf/spark-default.conf新增以下配置
spark.yarn.jar hdfs://master:9000/system/spark/jars/spark-assembly-1.6.0-hadoop2.6.0.jar
(2)再次執行sparkpi,提交指令碼發生了變化,如下:
bin/spark-submit --class org.apache.spark.examples.sparkpi \
--master yarn-cluster \
--num-executors 3 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
lib/spark-examples*.jar 10
詳見如圖:
1.3 使用者的程式上傳hdfs,避免重複分發
bin/spark-submit --class org.apache.spark.examples.sparkpi \
--master yarn-cluster \
--num-executors 3 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
hdfs://master:9000/user/spark/jars/spark-examples-1.6.0-hadoop2.6.0.jar 10
優化完成的效果如圖: 避免不必要的float
float中文翻譯為浮動,很形象的翻譯,在css很常用,當你需要吧兩個塊級元素定排放在同一高度上經常會用到float,先看一下float的 屬性。先看一下float可能的值 float left 元素向左浮動 float right 元素向右浮動 float none 不浮動 float inher...
避免不必要的物件
一般來說,最好能重用物件而不是在每次需要的時候就建立乙個相同功能的新物件。重用方式既快速,又流行。如果物件是不可變的,它就始終可以被重用。最為乙個極端的反面例子,考慮下面的語句 string s new string string don t do this 該語句每次被執行的時候都建立乙個新的st...
避免建立不必要的物件
下面是乙個比較微妙也比較常見的反面的例子,其中涉及可變的date物件,他們的值一旦計算出來之後就不再變化。這個類建立了乙個模型 其中有乙個人,並有乙個isbabyboomer方法,用來檢驗這個人是否為乙個babyboomer,換句話說,就是檢驗這個人是否出生於1946年至1964年之間。public...