spark 效能最佳化

來源:互聯網
上載者:User

標籤:

 1、記憶體

spark.storage.memoryFraction:很明顯,是指spark緩衝的大小,預設比例0.6

spark.shuffle.memoryFraction:管理executor中RDD和運行任務時的用於對象建立記憶體比例,預設0.2

關於這兩個參數的設定,常見的一個情境就是操作關聯式資料庫

spark 可以通過jdbc操作關聯式資料庫,但是若是沒有分散資料的依據,則將所有資料都讀到driver節點上時,這時,強烈建議先看一下表的資料量和叢集中對spark的記憶體設定參數

假設 executor memory 大小設定為2G,也就是說,spark.shuffle.memoryFraction可用記憶體為2G*0.2=400M,假設5W條資料大小為1M,也就是說可以讀取400*50W=2000W條

當你在單節點上讀取資料超過2000W而不能及時處理時,就有極大的可能oom

記憶體設定

spark.shuffle.memoryFraction 0.4  #適當調高

spark.storage.memoryFraction 0.4 #適當調低

2、開啟外排序

spark.sql.planner.externalSort true

3、修改序列化工具

spark.serializer                 org.apache.spark.serializer.KryoSerializer

4、限制應用申請核心數

spark.cores.max 15

5、並行數

spark.default.parallelism 90

6、加入第三方常用類庫

spark.executor.extraClassPath /opt/spark/current/lib/sqljdbc41.jar:/opt/spark/current/lib/postgresql-9.4-1202-jdbc41.jar:spark-cassandra-connector-full.jar

spark.driver.extraClassPath /opt/spark/current/lib/sqljdbc41.jar:/opt/spark/current/lib/postgresql-9.4-1202-jdbc41.jar:spark-cassandra-connector-full.jar

 

spark 效能最佳化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.