成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spark程序運行常見錯誤解決方法以及優化

大數據 Spark
task傾斜原因比較多,網絡io,cpu,mem都有可能造成這個節點上的任務執行緩慢,可以去看該節點的性能監控來分析原因。以前遇到過同事在spark的一臺worker上跑R的任務導致該節點spark task運行緩慢。

一.org.apache.spark.shuffle.FetchFailedException

1.問題描述

這種問題一般發生在有大量shuffle操作的時候,task不斷的failed,然后又重執行,一直循環下去,非常的耗時。

 

2.報錯提示

(1) missing output location

  1. org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 0 

 

(2) shuffle fetch faild

  1. org.apache.spark.shuffle.FetchFailedException: Failed to connect to spark047215/192.168.47.215:50268 

 

當前的配置為每個executor使用1cpu,5GRAM,啟動了20個executor

3.解決方案

一般遇到這種問題提高executor內存即可,同時增加每個executor的cpu,這樣不會減少task并行度。

  • spark.executor.memory 15G
  • spark.executor.cores 3
  • spark.cores.max 21

啟動的execuote數量為:7個

  1. execuoteNum = spark.cores.max/spark.executor.cores 

每個executor的配置:

  1. 3core,15G RAM 

消耗的內存資源為:105G RAM

  1. 15G*7=105G 

可以發現使用的資源并沒有提升,但是同樣的任務原來的配置跑幾個小時還在卡著,改了配置后幾分鐘就結束了。

二.Executor&Task Lost

1.問題描述

因為網絡或者gc的原因,worker或executor沒有接收到executor或task的心跳反饋

2.報錯提示

(1) executor lost

  1. WARN TaskSetManager: Lost task 1.0 in stage 0.0 (TID 1, aa.local): ExecutorLostFailure (executor lost) 

(2) task lost

  1. WARN TaskSetManager: Lost task 69.2 in stage 7.0 (TID 1145, 192.168.47.217): java.io.IOException: Connection from /192.168.47.217:55483 closed 

(3) 各種timeout

  1. java.util.concurrent.TimeoutException: Futures timed out after [120 second 
  1. ERROR TransportChannelHandler: Connection to /192.168.47.212:35409 has been quiet for 120000 ms while there are outstanding requests. Assuming connection is dead; please adjust spark.network.timeout if this is wrong 

3.解決方案

提高 spark.network.timeout 的值,根據情況改成300(5min)或更高。

默認為 120(120s),配置所有網絡傳輸的延時,如果沒有主動設置以下參數,默認覆蓋其屬性

  • spark.core.connection.ack.wait.timeout
  • spark.akka.timeout
  • spark.storage.blockManagerSlaveTimeoutMs
  • spark.shuffle.io.connectionTimeout
  • spark.rpc.askTimeout or spark.rpc.lookupTimeout

三.傾斜

1.問題描述

大多數任務都完成了,還有那么一兩個任務怎么都跑不完或者跑的很慢。

分為數據傾斜和task傾斜兩種。

2.錯誤提示

(1) 數據傾斜

 

(2) 任務傾斜

差距不大的幾個task,有的運行速度特別慢。

3.解決方案

(1) 數據傾斜

數據傾斜大多數情況是由于大量null值或者""引起,在計算前過濾掉這些數據既可。

例如:

  1. sqlContext.sql("...where col is not null and col != ''"

(2) 任務傾斜

task傾斜原因比較多,網絡io,cpu,mem都有可能造成這個節點上的任務執行緩慢,可以去看該節點的性能監控來分析原因。以前遇到過同事在spark的一臺worker上跑R的任務導致該節點spark task運行緩慢。

或者可以開啟spark的推測機制,開啟推測機制后如果某一臺機器的幾個task特別慢,推測機制會將任務分配到其他機器執行,***Spark會選取最快的作為最終結果。

spark.speculation true

spark.speculation.interval 100 - 檢測周期,單位毫秒;

spark.speculation.quantile 0.75 - 完成task的百分比時啟動推測

spark.speculation.multiplier 1.5 - 比其他的慢多少倍時啟動推測。

四.OOM(內存溢出)

1.問題描述

內存不夠,數據太多就會拋出OOM的Exeception

因為報錯提示很明顯,這里就不給報錯提示了。。。

2.解決方案

主要有driver OOM和executor OOM兩種

(1) driver OOM

一般是使用了collect操作將所有executor的數據聚合到driver導致。盡量不要使用collect操作即可。

(2) executor OOM

1.可以按下面的內存優化的方法增加code使用內存空間

2.增加executor內存總量,也就是說增加spark.executor.memory的值

3.增加任務并行度(大任務就被分成小任務了),參考下面優化并行度的方法

優化

1.內存

當然如果你的任務shuffle量特別大,同時rdd緩存比較少可以更改下面的參數進一步提高任務運行速度。

spark.storage.memoryFraction - 分配給rdd緩存的比例,默認為0.6(60%),如果緩存的數據較少可以降低該值。

spark.shuffle.memoryFraction - 分配給shuffle數據的內存比例,默認為0.2(20%)

剩下的20%內存空間則是分配給代碼生成對象等。

如果任務運行緩慢,jvm進行頻繁gc或者內存空間不足,或者可以降低上述的兩個值。

"spark.rdd.compress","true" - 默認為false,壓縮序列化的RDD分區,消耗一些cpu減少空間的使用

如果數據只使用一次,不要采用cache操作,因為并不會提高運行速度,還會造成內存浪費。

2.并行度

  1. spark.default.parallelism 

發生shuffle時的并行度,在standalone模式下的數量默認為core的個數,也可手動調整,數量設置太大會造成很多小任務,增加啟動任務的開銷,太小,運行大數據量的任務時速度緩慢。

  1. spark.sql.shuffle.partitions 

sql聚合操作(發生shuffle)時的并行度,默認為200,如果任務運行緩慢增加這個值。

相同的兩個任務:

  1. spark.sql.shuffle.partitions=300: 

  1. spark.sql.shuffle.partitions=500: 

 

速度變快主要是大量的減少了gc的時間。

修改map階段并行度主要是在代碼中使用rdd.repartition(partitionNum)來操作。

責任編輯:武曉燕 來源: 數據為王
相關推薦

2011-05-16 09:54:22

mysql1067錯誤

2011-09-19 19:21:54

linux

2013-08-13 13:38:13

Android錯誤解決

2009-12-18 11:03:45

Ruby watir環

2010-02-24 16:30:52

WCF常見錯誤

2012-08-15 14:01:18

2016-10-09 10:29:02

migratelaravelphp

2020-11-05 18:53:15

JavaScript開發前端

2010-03-02 16:43:46

2009-11-10 14:45:14

Windows 7輸序列號解決

2018-07-03 10:13:32

DNS錯誤Windows7

2009-12-01 17:07:04

2017-10-10 17:00:11

SparkHadoop數據處理

2011-04-29 13:22:48

ThinkPad筆記本故障

2019-11-21 16:26:44

Windows電腦瀏覽器

2010-03-25 10:06:57

CentOS配置

2010-04-19 14:33:06

Oracle tns配

2010-03-29 17:46:39

Nginx asp

2010-10-19 10:25:29

SQL Server連

2010-06-17 10:32:13

開機顯示Grub
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男人的天堂在线视频 | 欧美日产国产成人免费图片 | 欧美激情在线精品一区二区三区 | 国产精品一区二区av | 久草福利 | 最新中文字幕在线 | 91久久网站 | 高清视频一区二区三区 | 精品一二三区 | 三a毛片 | 日本黄色大片免费 | 狠狠躁18三区二区一区 | 91精品国产综合久久婷婷香蕉 | www操操 | 亚洲精品aⅴ | 啪啪免费 | 五月天婷婷狠狠 | 成人高清视频在线观看 | www.99热| 国产毛片毛片 | 免费在线一区二区三区 | 中文字幕免费视频 | 成人精品一区二区三区四区 | 91久久久久久久久久久久久 | 一区二区三区四区av | 亚洲欧美一区二区三区国产精品 | 久久久久久久久久久久久久国产 | 国产日韩欧美精品一区二区三区 | 五月天天丁香婷婷在线中 | 日本精品网站 | 夜夜爽99久久国产综合精品女不卡 | h视频在线看 | 日韩欧美亚洲 | 亚洲欧美日韩精品久久亚洲区 | 国产一区二区三区 | 日韩一区二区三区视频在线观看 | 一区二区高清 | 伊人操| 中文区中文字幕免费看 | 欧美亚洲激情 | 日韩精品一区二区不卡 |