成人免费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環

2012-08-15 14:01:18

2010-02-24 16:30:52

WCF常見錯誤

2016-10-09 10:29:02

migratelaravelphp

2010-03-02 16:43:46

2009-11-10 14:45:14

Windows 7輸序列號解決

2020-11-05 18:53:15

JavaScript開發前端

2009-12-01 17:07:04

2018-07-03 10:13:32

DNS錯誤Windows7

2017-10-10 17:00:11

SparkHadoop數據處理

2010-03-25 10:06:57

CentOS配置

2011-04-29 13:22:48

ThinkPad筆記本故障

2019-11-21 16:26:44

Windows電腦瀏覽器

2010-03-29 17:46:39

Nginx asp

2010-06-17 10:32:13

開機顯示Grub

2010-10-19 10:25:29

SQL Server連

2010-04-19 14:33:06

Oracle tns配
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 美女拍拍拍网站 | 久久成人高清视频 | 日韩精品免费在线观看 | 欧美2区| 欧美成人在线影院 | 国产一区亚洲 | 欧美日韩三级视频 | 日本羞羞影院 | 亚洲激情第一页 | 欧美高清视频一区 | 超碰伊人 | 日韩电影免费在线观看中文字幕 | 99精品欧美一区二区三区综合在线 | 欧美国产日韩在线 | eeuss国产一区二区三区四区 | 91精品国产色综合久久不卡98口 | 国产乱码精品一区二区三区中文 | 国产在线精品免费 | 日韩av手机在线观看 | 久久久久成人精品亚洲国产 | 91精品国产91久久久久福利 | 一区二区三区视频在线观看 | 精品一区二区三区免费视频 | 盗摄精品av一区二区三区 | 精品国产一区二区三区性色av | 亚洲精品第一 | 日韩一级免费电影 | 亚洲高清在线观看 | 亚洲日日 | 国产乱码久久久 | 91精品国产91久久久久久三级 | 国产一区二区在线免费 | 亚洲国产精品一区二区久久 | 欧美午夜一区二区三区免费大片 | 亚洲网站在线观看 | 久久久久国产成人精品亚洲午夜 | 国产乱肥老妇国产一区二 | 亚洲国产成人av好男人在线观看 | 91高清在线 | 日韩在线大片 | www.jizzjizz |