1. 程式人生 > >hive on spark:return code 30041 Failed to create Spark client for Spark session原因分析及解決方案探尋

hive on spark:return code 30041 Failed to create Spark client for Spark session原因分析及解決方案探尋

最近在Hive中使用Spark引擎進行執行時(`set hive.execution.engine=spark`),經常遇到`return code 30041`的報錯,為了深入探究其原因,閱讀了官方issue、相關部落格進行了研究。下面從報錯現象、原因分析、解決方案几個方面進行介紹,最後做一下小結。 ## (一)報錯現象 ```shell ERROR : FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create Spark client for Spark session 7a817eea-176c-46ba-910e-4eed89d4eb4d ``` 以上是我在使用`Hive On Spark`時遇到的報錯資訊,且頻繁出現,但每次報錯後重跑hql指令碼即可解決,這讓我十分疑惑。 ## (二)原因分析 相關部落格列舉了如下幾個原因: 1、`Spark`沒有正常啟動 2、`Spark`和`Hive`版本不匹配 3、`Hive`連線`Spark`客戶端超過設定時長 經過分析,我遇到的現象不屬於`1、2`,叢集上的Spark作業能正常執行,說明Spark是正常啟動的;另外,由於設定了`Hive On Spark`的作業並非永久無法執行成功,而是偶發性失敗,重試可成功執行,說明`Spark`與`Hive`的版本是匹配的,不存在版本衝突問題。 ## (三)解決方案 首先,根據[mszurap](https://community.cloudera.com/t5/user/viewprofilepage/user-id/12885)在[Re: cant use hive on spark engine cannot create client erorr code 30041](https://community.cloudera.com/t5/Support-Questions/cant-use-hive-on-spark-engine-cannot-create-client-erorr/td-p/240504)上的回答,首先前提是確保以下條件能得到滿足: > 1、在`Hive服務>配置`中已啟用Spark服務作為依賴項
2、在`Hive服務>配置`中檢視與Spark相關的設定
3、您在群集上有足夠的資源,可以提交YARN作業 其次,如果以上條件均已滿足,根據[issues.apache.org/jira/browse/SPARK-32345](https://issues.apache.org/jira/browse/SPARK-32345)中[ZhouDaHong](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=zdh)的回答。 如果排除`hive`、`spark`配置,以及版本衝突等原因。您可以檢視佇列資源。 如果佇列資源達到100%,並且沒有釋放的空閒任務資源可在短時間內建立Spark會話,則任務將失敗並且將引發此異常。 解決方案:將Hive客戶端的連線時間間隔增加到5分鐘; 設定`hive.spark.client.server.connect.timeout = 300000;` 該引數單位為毫秒,預設值為90秒。這裡不建議將該引數時間設定過大,因為這將影響作業執行時效。 ## 參考 [1]cant use hive on spark engine cannot create client erorr code 30041[https://community.cloudera.com/t5/Support-Questions/cant-use-hive-on-spark-engine-cannot-create-client-erorr/td-p/240504] [2]SemanticException Failed to get a spark session: org.apache.hadoop.hive.ql.metadata.HiveException: Failed to create Spark client for Spark session[https://issues.apache.org/jira/browse/SPARK-32345] [3]0514-Hive On Spark無法建立Spark Client問題分析[https://cloud.tencent.com/developer/article/1545722] [4]hiveonspark不能建立sparksession原因定位[http://blog.sina.com.cn/s/blog_6dd718930102z2un.html] [5]Failed to create Spark client for Spark session[https://www.cnblogs.com/Sunqi-1997/p/13701837.html] [6]FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create Spark client for Spark session 7f00ef43-d843-45f5-a425-0995818a608f_0: java.lang.RuntimeException: spark-submit process failed with exit code 1[https://www.itdiandi.net/view/1431] [7]Hive on Spark[https://issues.apache.org/jira/browse/HI