1咽弦、Operation category READ is not supported in state standby是什么原因?qū)е碌酿写希縪rg.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported in state standby 答:此時請登錄Hadoop的管理界面查看運(yùn)行節(jié)點(diǎn)是否處于standby
如登錄地址是:http://xx.xx.xx.xx:50070/dfshealth.html#tab-overview
如果是雪侥,則不可在處于StandBy機(jī)器運(yùn)行spark計算修赞,因?yàn)樵撆_機(jī)器為備分機(jī)器
2远舅、不配置spark.deploy.recoveryMode選項為ZOOKEEPER缚忧,會有什么不好的地方
如果不設(shè)置spark.deploy.recoveryMode的話体箕,那么集群的所有運(yùn)行數(shù)據(jù)在Master重啟是都會丟失专钉,可參考BlackHolePersistenceEngine的實(shí)現(xiàn)。
3累铅、多Master如何配置
因?yàn)樯婕暗蕉鄠€Master跃须,所以對于應(yīng)用程序的提交就有了一點(diǎn)變化,因?yàn)閼?yīng)用程序需要知道當(dāng)前的Master的IP地址和端口娃兽。這種HA方案處理這種情況很簡單菇民,只需要在SparkContext指向一個Master列表就可以了,如spark://host1:port1,host2:port2,host3:port3投储,應(yīng)用程序會輪詢列表第练。
4、No Space Left on the device(Shuffle臨時文件過多)
由于Spark在計算的時候會將中間結(jié)果存儲到/tmp目錄玛荞,而目前l(fā)inux又都支持tmpfs娇掏,其實(shí)就是將/tmp目錄掛載到內(nèi)存當(dāng)中。
那么這里就存在一個問題勋眯,中間結(jié)果過多導(dǎo)致/tmp目錄寫滿而出現(xiàn)如下錯誤
No Space Left on the device
解決辦法
第一種:修改配置文件spark-env.sh,把臨時文件引入到一個自定義的目錄中去即可
export SPARK_LOCAL_DIRS=/home/utoken/datadir/spark/tmp
第二種:偷懶方式婴梧,針對tmp目錄不啟用tmpfs,直接修改/etc/fstab
5、java.lang.OutOfMemory, unable to create new native thread
Caused by: java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:640)
上面這段錯誤提示的本質(zhì)是Linux操作系統(tǒng)無法創(chuàng)建更多進(jìn)程客蹋,導(dǎo)致出錯塞蹭,并不是系統(tǒng)的內(nèi)存不足。因此要解決這個問題需要修改Linux允許創(chuàng)建更多的進(jìn)程讶坯,就需要修改Linux最大進(jìn)程數(shù)番电。
[utoken@nn1 ~]ulimit -u 65535
臨時修改允許打開的文件句柄
[utoken@nn1 ~] vim /etc/security/limits.d/90-nproc.conf
soft nproc 60000
root soft nproc unlimited
永久修改用戶打開文件的最大句柄數(shù),該值默認(rèn)1024辆琅,一般都會不夠钧舌,常見錯誤就是not open file
[utoken@nn1 ~]$ vim /etc/security/limits.conf
bdata soft nofile 65536
bdata hard nofile 65536
6、Worker節(jié)點(diǎn)中的work目錄占用許多磁盤空間
目錄地址:/home/utoken/software/spark-1.3.0-bin-hadoop2.4/work
這些是Driver上傳到worker的文件涎跨,需要定時做手工清理洼冻,否則會占用許多磁盤空間
7、spark-shell提交Spark Application如何解決依賴庫
spark-shell的話隅很,利用–driver-class-path選項來指定所依賴的jar文件撞牢,注意的是–driver-class-path后如果需要跟著多個jar文件的話率碾,jar文件之間使用冒號(:)來分割。
8屋彪、Spark在發(fā)布應(yīng)用的時候所宰,出現(xiàn)連接不上master問題,如下
15/11/19 11:35:50 INFO AppClient$ClientEndpoint: Connecting to master spark://s1:7077…
15/11/19 11:35:50 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@s1:7077] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
解決方式
檢查所有機(jī)器時間是否一致畜挥、hosts是否都配置了映射仔粥、客戶端和服務(wù)器端的Scala版本是否一致、Scala版本是否和Spark兼容
檢查是否兼容問題請參考官方網(wǎng)站介紹:
9蟹但、開發(fā)spark應(yīng)用程序(和Flume-NG結(jié)合時)發(fā)布應(yīng)用時可能出現(xiàn)org.jboss.netty.channel.ChannelException: Failed to bind to: /192.168.10.156:18800
15/11/27 10:33:44 ERROR ReceiverSupervisorImpl: Stopped receiver with error: org.jboss.netty.channel.ChannelException: Failed to bind to: /192.168.10.156:18800
15/11/27 10:33:44 ERROR Executor: Exception in task 0.0 in stage 2.0 (TID 70)
org.jboss.netty.channel.ChannelException: Failed to bind to: /192.168.10.156:18800
at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)
Caused by: java.net.BindException: Cannot assign requested address
由于spark通過Master發(fā)布的時候躯泰,會自動選取發(fā)送到某一臺的worker節(jié)點(diǎn)上,所以這里綁定端口的時候华糖,需要選擇相應(yīng)的worker服務(wù)器麦向,但是由于我們無法事先了解到,spark發(fā)布到哪一臺服務(wù)器的客叉,所以這里啟動報錯诵竭,是因?yàn)樵?192.168.10.156:18800的機(jī)器上面沒有啟動Driver程序,而是發(fā)布到了其他服務(wù)器去啟動了兼搏,所以無法監(jiān)聽到該機(jī)器出現(xiàn)問題卵慰,所以我們需要設(shè)置spark分發(fā)包時,發(fā)布到所有worker節(jié)點(diǎn)機(jī)器佛呻,或者發(fā)布后裳朋,我們?nèi)ふ野l(fā)布到了哪一臺機(jī)器,重新修改綁定IP件相,重新發(fā)布再扭,有一定幾率發(fā)布成功。詳情可見《印象筆記-戰(zhàn)5渣系列——Spark Streaming啟動問題 - 推酷》
10夜矗、spark-shell 找不到hadoop so問題解決
[main] WARN org.apache.hadoop.util.NativeCodeLoader - Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
在Spark的conf目錄下泛范,修改spark-env.sh文件,加入LD_LIBRARY_PATH環(huán)境變量紊撕,值為HADOOP的native庫路徑即可.
11罢荡、ERROR XSDB6: Another instance of Derby may have already booted the database /home/bdata/data/metastore_db.
在使用Hive on Spark模式操作hive里面的數(shù)據(jù)時,報以上錯誤对扶,原因是因?yàn)镠IVE采用了derby這個內(nèi)嵌數(shù)據(jù)庫作為數(shù)據(jù)庫区赵,它不支持多用戶同時訪問,解決辦法就是把derby數(shù)據(jù)庫換成mysql數(shù)據(jù)庫即可
變更方式
12、java.lang.IllegalArgumentException: java.net.UnknownHostException: dfscluster
解決辦法:
找不到hdfs集群名字dfscluster,這個文件在HADOOP的etc/hadoop下面浪南,有個文件hdfs-site.xml笼才,復(fù)制到Spark的conf下,重啟即可
如:執(zhí)行腳本络凿,分發(fā)到所有的Spark集群機(jī)器中骡送,
[bdata@bdata4 hadoop]foriin34,35,36,37,38;doscphdfs?site.xml192.168.10.i:/u01/spark-1.5.1/conf/ ; done
13昂羡、Exception in thread “main” java.lang.Exception: When running with master ‘yarn-client’ either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.
問題:在執(zhí)行yarn集群或者客戶端時,報以上錯誤摔踱,
[bdata@bdata4 bin]HADOOP_HOME/etc/hadoop
PATH=PATH:HOME/.local/bin:HOME/bin:SQOOP_HOME/bin:HIVEHOME/bin:HADOOP_HOME/bin
14、Job aborted due to stage failure: Task 3 in stage 0.0 failed 4 times, most recent failure: Lost task 3.3 in
[Stage 0:> (0 + 4) / 42]2016-01-15 11:28:16,512 [org.apache.spark.scheduler.TaskSchedulerImpl]-[ERROR] Lost executor 0 on 192.168.10.38: remote Rpc client disassociated
[Stage 0:> (0 + 4) / 42]2016-01-15 11:28:23,188 [org.apache.spark.scheduler.TaskSchedulerImpl]-[ERROR] Lost executor 1 on 192.168.10.38: remote Rpc client disassociated
[Stage 0:> (0 + 4) / 42]2016-01-15 11:28:29,203 [org.apache.spark.scheduler.TaskSchedulerImpl]-[ERROR] Lost executor 2 on 192.168.10.38: remote Rpc client disassociated
[Stage 0:> (0 + 4) / 42]2016-01-15 11:28:36,319 [org.apache.spark.scheduler.TaskSchedulerImpl]-[ERROR] Lost executor 3 on 192.168.10.38: remote Rpc client disassociated
2016-01-15 11:28:36,321 [org.apache.spark.scheduler.TaskSetManager]-[ERROR] Task 3 in stage 0.0 failed 4 times; aborting job
Exception in thread “main” org.apache.spark.SparkException : Job aborted due to stage failure: Task 3 in stage 0.0 failed 4 times, most recent failure: Lost task 3.3 in stage 0.0 (TID 14, 192.168.10.38): ExecutorLostFailure (executor 3 lost)
Driver stacktrace:
at org.apache.spark.scheduler.DAGScheduler.orgspark
DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1283)
解決方案
這里遇到的問題主要是因?yàn)閿?shù)據(jù)源數(shù)據(jù)量過大派敷,而機(jī)器的內(nèi)存無法滿足需求蛹批,導(dǎo)致長時間執(zhí)行超時斷開的情況,數(shù)據(jù)無法有效進(jìn)行交互計算篮愉,因此有必要增加內(nèi)存
15腐芍、長時間等待無反應(yīng),并且看到服務(wù)器上面的web界面有內(nèi)存和核心數(shù)潜支,但是沒有分配甸赃,如下圖
[Stage 0:> (0 + 0) / 42]
或者日志信息顯示:
16/01/15 14:18:56 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
解決方案
出現(xiàn)上面的問題主要原因是因?yàn)槲覀兺ㄟ^參數(shù)spark.executor.memory設(shè)置的內(nèi)存過大柿汛,已經(jīng)超過了實(shí)際機(jī)器擁有的內(nèi)存冗酿,故無法執(zhí)行,需要等待機(jī)器擁有足夠的內(nèi)存后络断,才能執(zhí)行任務(wù)裁替,可以減少任務(wù)執(zhí)行內(nèi)存,設(shè)置小一些即可
16貌笨、內(nèi)存不足或數(shù)據(jù)傾斜導(dǎo)致Executor Lost(spark-submit提交)
TaskSetManager: Lost task 1.0 in stage 6.0 (TID 100, 192.168.10.37): java.lang.OutOfMemoryError: Java heap space
16/01/15 14:29:51 INFO BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.10.37:57139 (size: 42.0 KB, free: 24.2 MB)
16/01/15 14:29:53 INFO BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.10.38:53816 (size: 42.0 KB, free: 24.2 MB)
16/01/15 14:29:55 INFO TaskSetManager: Starting task 3.0 in stage 6.0 (TID 102, 192.168.10.37, ANY, 2152 bytes)
16/01/15 14:29:55 WARN TaskSetManager: Lost task 1.0 in stage 6.0 (TID 100, 192.168.10.37): java.lang.OutOfMemoryError: Java heap space
at java.io.BufferedOutputStream.(BufferedOutputStream.java:76)
at java.io.BufferedOutputStream.(BufferedOutputStream.java:59)
…….
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 6.0 failed 4 times, most recent failure: Lost task 0.3 in stage 6.0 (TID 142, 192.168.10.36): ExecutorLostFailure (executor 4 lost)
……
WARN TaskSetManager: Lost task 4.1 in stage 6.0 (TID 137, 192.168.10.38): java.lang.OutOfMemoryError: GC overhead limit exceeded
解決辦法:
由于我們在執(zhí)行Spark任務(wù)是弱判,讀取所需要的原數(shù)據(jù),數(shù)據(jù)量太大锥惋,導(dǎo)致在Worker上面分配的任務(wù)執(zhí)行數(shù)據(jù)時所需要的內(nèi)存不夠昌腰,直接導(dǎo)致內(nèi)存溢出了,所以我們有必要增加Worker上面的內(nèi)存來滿足程序運(yùn)行需要膀跌。
在Spark Streaming或者其他spark任務(wù)中遭商,會遇到在Spark中常見的問題,典型如Executor Lost 相關(guān)的問題(shuffle fetch 失敗捅伤,Task失敗重試等)劫流。這就意味著發(fā)生了內(nèi)存不足或者數(shù)據(jù)傾斜的問題。這個目前需要考慮如下幾個點(diǎn)以獲得解決方案:
A丛忆、相同資源下祠汇,增加partition數(shù)可以減少內(nèi)存問題。 原因如下:通過增加partition數(shù)熄诡,每個task要處理的數(shù)據(jù)少了可很,同一時間內(nèi),所有正在運(yùn)行的task要處理的數(shù)量少了很多凰浮,所有Executor占用的內(nèi)存也變小了我抠。這可以緩解數(shù)據(jù)傾斜以及內(nèi)存不足的壓力谓着。
B、關(guān)注shuffle read 階段的并行數(shù)滔金。例如reduce,group 之類的函數(shù)霉涨,其實(shí)他們都有第二個參數(shù),并行度(partition數(shù))尘惧,只是大家一般都不設(shè)置康栈。不過出了問題再設(shè)置一下,也不錯喷橙。
C啥么、給一個Executor 核數(shù)設(shè)置的太多,也就意味著同一時刻贰逾,在該Executor 的內(nèi)存壓力會更大悬荣,GC也會更頻繁。我一般會控制在3個左右疙剑。然后通過提高Executor數(shù)量來保持資源的總量不變氯迂。
17、 Spark Streaming 和kafka整合后讀取消息報錯:OffsetOutOfRangeException
解決方案:如果和kafka消息中間件結(jié)合使用言缤,請檢查消息體是否大于默認(rèn)設(shè)置1m嚼蚀,如果大于,則需要設(shè)置fetch.message.max.bytes=1m管挟,這里需要把值設(shè)置大些
18轿曙、java.io.IOException : Could not locate executable null\bin\winutils.exe in the Hadoop binaries.(spark sql on hive 任務(wù)引發(fā)HiveContext NullPointerException)
解決辦法
在開發(fā)hive和Spark整合的時候,如果是Windows系統(tǒng)僻孝,并且沒有配置HADOOP_HOME的環(huán)境變量导帝,那么可能找不到winutils.exe這個工具,由于使用hive時穿铆,對該命令有依賴您单,所以不要忽視該錯誤,否則將無法創(chuàng)建HiveContext悴务,一直報Exception in thread “main” java.lang.RuntimeException: java.lang.NullPointerException
因此睹限,解決該辦法有兩個方式
A、把任務(wù)打包成jar讯檐,上傳到服務(wù)器上面羡疗,服務(wù)器是配置過HADOOP_HOME環(huán)境變量的,并且不需要依賴winutils,所以只需要通過spark-submit方式提交即可别洪,如:
[bdata@bdata4 app]$ spark-submit –class com.pride.hive.HiveOnSparkTest –master spark://bdata4:7077 spark-simple-1.0.jar
B叨恨、解決winutils.exe命令不可用問題,配置Windows上面HADOOP_HOME的環(huán)境變量挖垛,或者在程序最開始的地方設(shè)置HADOOP_HOME的屬性配置,這里需要注意痒钝,由于最新版本已經(jīng)沒有winutils這些exe命令了秉颗,我們需要在其他地方下載該命令放入HADOOP的bin目錄下,當(dāng)然也可以直接配置下載項目的環(huán)境變量送矩,變量名一定要是HADOOP_HOME才行
下載地址:https://github.com/srccodes/hadoop-common-2.2.0-bin/archive/master.zip (記得翻墻哦)
任何項目都生效蚕甥,需要配置Windows的環(huán)境變量,如果只在程序中生效可在程序中配置即可栋荸,如
//用于解決Windows下找不到winutils.exe命令
System. setProperty(“hadoop.home.dir”, “E:\Software\hadoop-common-2.2.0-bin” );
19菇怀、The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwx——
解決辦法
1、程序中設(shè)置環(huán)境變量:System.setProperty(“HADOOP_USER_NAME”, “bdata”)
2晌块、修改HDFS的目錄權(quán)限
Update the permission of your /tmp/hive HDFS directory using the following command
hadoop dfs -chmod 777 /tmp/hive
此問題暫未解決爱沟,估計是17點(diǎn)解決winutils有問題,建議最好把任務(wù)程序發(fā)布到服務(wù)器上面解決
20匆背、Exception in thread “main” org.apache.hadoop.security.AccessControlException : Permission denied: user=Administrator, access=WRITE, inode=”/data”:bdata:supergroup:drwxr-xr-x
解決辦法
1呼伸、在系統(tǒng)的環(huán)境變量或java JVM變量里面添加HADOOP_USER_NAME,如程序中添加System.setProperty(“HADOOP_USER_NAME”, “bdata”);钝尸,這里的值就是以后會運(yùn)行HADOOP上的Linux的用戶名括享,如果是eclipse,則修改完重啟eclipse蝶怔,不然可能不生效
2奶浦、hdfs dfs -chmod 777 修改相應(yīng)權(quán)限地址
21兄墅、運(yùn)行Spark-SQL報錯:org.apache.spark.sql.AnalysisException: unresolved operator ‘Project
解決辦法:
在Spark-sql和hive結(jié)合時或者單獨(dú)Spark-sql踢星,運(yùn)行某些sql語句時,偶爾出現(xiàn)上面錯誤隙咸,那么我們可以檢查一下sql的問題沐悦,這里遇到的問題是嵌套語句太多,導(dǎo)致spark無法解析五督,所以需要修改sql或者改用其他方式處理藏否;特別注意該語句可能在hive里面沒有錯誤,spark才會出現(xiàn)的一種錯誤充包。
22.在$SPARK_HOME/conf/spark-env.sh中設(shè)置這些變量好像也只是在terminal中的shell環(huán)境中才有效JAVA_HOME is not set Exception: Java gateway process exited before sending the driver its port number
但是在命令行中是有的
pipi@pipicmp:~JAVA_HOME
/home/pipi/ENV/jdk
解決方法1:在py代碼中加入JAVA_HOME到os中
JAVA_HOME = /home/pipi/ENV/jdk
os.environ['JAVA_HOME'] = conf.get(SECTION, 'JAVA_HOME')
解決方法2:或者在hadoop中配置好JAVA_HOME
hadoop中配置JAVA_HOME
23.ValueError: Cannot run multiple SparkContexts at once
Welcome to
____ __
/ / ___ _____/ /__
\ / _ / _ `/ / '/
/ / ./_,// //_\ version 2.0.1
//
Using Python version 3.5.2 (default, Sep 10 2016 08:21:44)
SparkSession available as 'spark'.
ValueError: Cannot run multiple SparkContexts at once; existing SparkContext(app=pyspark-shell, master=local[*]) created by <module> at <frozen importlib._bootstrap>:222
原因是:from pyspark.shell import sqlContext
引入的包中也定義了一個sc = spark.sparkContext導(dǎo)致和本代碼中定義重復(fù)了副签。
24.spark輸出太多warning messages
調(diào)試log時候發(fā)現(xiàn)問題解決了
在簡略Spark輸出設(shè)置時[Spark安裝和配置 ]修改過$SPARK_HOME/conf/log4j.properties.template文件只輸出WARN信息,就算改成了ERROR基矮,信息也還是會自動修改成WARN輸出出來淆储,不過多了一條提示:
Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel).
就在這時發(fā)現(xiàn)了一個解決方案:
根據(jù)提示在代碼中加入sc.setLogLevel('ERROR')就可以解決了!
25.org.apache.spark.shuffle.FetchFailedException家浇,一般發(fā)生在有大量shuffle操作的時候,task不斷的failed,然后又重執(zhí)行本砰,一直循環(huán)下去,非常的耗時
一般遇到這種問題提高executor內(nèi)存即可,同時增加每個executor的cpu,這樣不會減少task并行度钢悲。
26.Executor&Task Lost因?yàn)榫W(wǎng)絡(luò)或者gc的原因,worker或executor沒有接收到executor或task的心跳反饋WARN TaskSetManager: Lost task 1.0 in stage 0.0 (TID 1, aa.local): ExecutorLostFailure (executor lost)
提高 spark.network.timeout 的值点额,根據(jù)情況改成300(5min)或更高舔株。
默認(rèn)為 120(120s),配置所有網(wǎng)絡(luò)傳輸?shù)难訒r,如果沒有主動設(shè)置以下參數(shù)还棱,默認(rèn)覆蓋其屬性
spark.core.connection.ack.wait.timeout
spark.akka.timeout
spark.storage.blockManagerSlaveTimeoutMs
spark.shuffle.io.connectionTimeout
spark.rpc.askTimeout or spark.rpc.lookupTimeout
27. Master掛掉,standby重啟也失效载慈,如Master默認(rèn)使用512M內(nèi)存,當(dāng)集群中運(yùn)行的任務(wù)特別多時珍手,就會掛掉娃肿,原因是master會讀取每個task的event log日志去生成spark ui,內(nèi)存不足自然會OOM珠十,可以在master的運(yùn)行日志中看到料扰,通過HA啟動的master自然也會因?yàn)檫@個原因失敗。
1).增加Master的內(nèi)存占用焙蹭,在Master節(jié)點(diǎn)spark-env.sh 中設(shè)置:
export SPARK_DAEMON_MEMORY 10g # 根據(jù)你的實(shí)際情況
2).減少保存在Master內(nèi)存中的作業(yè)信息
spark.ui.retainedJobs 500 # 默認(rèn)都是1000 spark.ui.retainedStages 500
28. worker掛掉或假死有時候我們還會在web ui中看到worker節(jié)點(diǎn)消失或處于dead狀態(tài)晒杈,在該節(jié)點(diǎn)運(yùn)行的任務(wù)則會報各種 lost worker 的錯誤,引發(fā)原因和上述大體相同孔厉,worker內(nèi)存中保存了大量的ui信息導(dǎo)致gc時失去和master之間的心跳拯钻。
解決
1)增加Master的內(nèi)存占用,在Worker節(jié)點(diǎn)spark-env.sh 中設(shè)置:
export SPARK_DAEMON_MEMORY 2g # 根據(jù)你的實(shí)際情況
2)減少保存在Worker內(nèi)存中的Driver,Executor信息
spark.worker.ui.retainedExecutors 200 # 默認(rèn)都是1000 spark.worker.ui.retainedDrivers 200
29.報錯:ERROR storage.DiskBlockObjectWriter: Uncaught exception while reverting partial writes to file /hadoop/application_1415632483774_448143/spark-local-20141127115224-9ca8/04/shuffle_1_1562_27
java.io.FileNotFoundException: /hadoop/application_1415632483774_448143/spark-local-20141127115224-9ca8/04/shuffle_1_1562_27 (No such file or directory)
表面上看是因?yàn)閟huffle沒有地方寫了撰豺,如果后面的stack是local space 的問題粪般,那么清一下磁盤就好了。上面這種問題污桦,是因?yàn)橐粋€excutor給分配的內(nèi)存不夠亩歹,此時,減少excutor-core的數(shù)量凡橱,加大excutor-memory的值應(yīng)該就沒有問題小作。
30.報錯:ERROR executor.CoarseGrainedExecutorBackend: Driver Disassociated [akka.tcp://sparkExecutor@pc-jfqdfx31:48586] -> [akka.tcp://sparkDriver@pc-jfqdfx30:41656] disassociated! Shutting down.
15/07/23 10:50:56 ERROR executor.CoarseGrainedExecutorBackend: RECEIVED SIGNAL 15: SIGTERM
這個錯誤比較隱晦,從信息上看來不知道是什么問題稼钩,但是歸根結(jié)底還是內(nèi)存的問題顾稀,有兩個方法可以解決這個錯誤,一是坝撑,如上面所說静秆,加大excutor-memory的值,減少executor-cores的數(shù)量巡李,問題可以解決抚笔。二是,加大executor.overhead的值击儡,但是這樣其實(shí)并沒有解決掉根本的問題塔沃。所以如果集群的資源是支持的話,就用1的辦法吧。
另外蛀柴,這個錯誤也出現(xiàn)在partitionBy(new HashPartition(partiton-num))時螃概,如果partiton-num太大或者太小的時候會報這種錯誤,說白了也是內(nèi)存的原因鸽疾,不過這個時候增加內(nèi)存和overhead沒有什么用吊洼,得去調(diào)整這個partiton-num的值。