最近在Hive中使用Spark引擎进行执行时(set hive.execution.engine=spark),经常遇到return code 30041的报错,为了深入探究其原因,阅读了官方issue、相关博客进行了研究。下面从报错现象、原因分析、解决方案几个方面进行介绍,最后做一下小结。

(一)报错现象

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、SparkHive版本不匹配

3、Hive连接Spark客户端超过设定时长

经过分析,我遇到的现象不属于1、2,集群上的Spark作业能正常运行,说明Spark是正常启动的;另外,由于设置了Hive On Spark的作业并非永久无法运行成功,而是偶发性失败,重试可成功执行,说明SparkHive的版本是匹配的,不存在版本冲突问题。

(三)解决方案

首先,根据mszurapRe: cant use hive on spark engine cannot create client erorr code 30041上的回答,首先前提是确保以下条件能得到满足:

1、在Hive服务>配置中已启用Spark服务作为依赖项
2、在Hive服务>配置中查看与Spark相关的设置
3、您在群集上有足够的资源,可以提交YARN作业

其次,如果以上条件均已满足,根据issues.apache.org/jira/browse/SPARK-32345ZhouDaHong的回答。

如果排除hivespark配置,以及版本冲突等原因。您可以查看队列资源。

如果队列资源达到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/HIVE-7292]

hive on spark:return code 30041 Failed to create Spark client for Spark session原因分析及解决方案探寻的更多相关文章

  1. Spark On Yarn报警告信息 WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.

    1 贴出完整日志信息 // :: INFO client.RMProxy: Connecting to ResourceManager at hdp1/ // :: INFO yarn.Client: ...

  2. FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(es) :

    在hive命令行创建表时报错: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. ...

  3. FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(me

    FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(me ...

  4. hive遇到FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误

    hive遇到FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误 起因 ...

  5. FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. com/mongodb/util/JSON

    问题: 将MongoDB数据导入Hive,按照https://blog.csdn.net/thriving_fcl/article/details/51471248文章,在hive建外部表与mongo ...

  6. 解决hiveserver2报错:java.io.IOException: Job status not available - Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

    用户使用的sql: select count( distinct patient_id ) from argus.table_aa000612_641cd8ce_ceff_4ea0_9b27_0a3a ...

  7. Hive的Shell里hive> 执行操作时,出现FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask错误的解决办法(图文详解)

    不多说,直接上干货! 这个问题,得非 你的hive和hbase是不是同样都是CDH版本,还是一个是apache版本,一个是CDH版本. 问题详情 [kfk@bigdata-pro01 apache-h ...

  8. FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

    hive启动后,出现以下异常 hive> show databases; FAILED: Error / failed on connection exception: java.net.Con ...

  9. java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

    执行Hive查询: Console是这样报错的 java.sql.SQLException: Error from org.apache.hadoop.hive.ql.exec.mr.MapRedTa ...

随机推荐

  1. 使用文件描述符作为Python内置函数open的file实参调用示例

    一.关于文件描述符 open()函数的file参数,除了可以接受字符串路径外,还可以接受文件描述符(file descriptor),文件描述符是个整数,对应程序中已经打开的文件. 文件描述符是操作系 ...

  2. 攻防世界 ctf web进阶区 unserialize

    进入到题目的界面,看到以下源码 构造payload=?code=O:4:"xctf":1:{s:4:"flag";s:3:"111";} 结 ...

  3. C# Email 帮助类 EmailHelper

    1. 配置文件 App.config <?xml version="1.0" encoding="utf-8" ?> <configurati ...

  4. 题解-CF101D Castle

    题面 CF101D Castle 给一棵 \(n\) 个节点的带权树,求一种遍历方案,从 \(1\) 出发,每条边走两次,走过所有点,第一次经过每个节点的平均时间最小.输出这个平均时间. 数据范围:\ ...

  5. (原创)docker18.03的安装

    简要说明:docker的安装,官方主要是分为 1.在线yum命令安装: 2.离线安装: 3.安装指定的版本. 备注:官方的安装考虑的是全球区域,说白了就是大陆有一些不能照搬.所以这篇文章我是自己考虑实 ...

  6. vue 事件函数传参

    事件函数传参 在元素绑定事件时候,如果我们的函数没有传参,他也会有一个默认的传参值 event 但是如果我们的函数有传参,那么它必须作为做为最后一个传参值显示传递,且必须为$event 通过代码打印我 ...

  7. 3. 搞定收工,PropertyEditor就到这

    分享.成长,拒绝浅藏辄止.搜索公众号[BAT的乌托邦],回复关键字专栏有Spring技术栈.中间件等小而美的原创专栏供以免费学习.本文已被 https://www.yourbatman.cn 收录. ...

  8. react第八单元(什么是纯函数-组件的性能优化-pureComponent-组件性能优化的原理)

    课程目标 理解纯函数 熟练掌握组件性能优化的几种技巧 pureComponent和Component的区别 #知识点 一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数 ...

  9. vue第十六单元(element-ui vue-lazyload 等常用插件)

    第十六单元(element-ui vue-lazyload 等常用插件) #课程目标 1.掌握插件的引入方式 2.精通UI框架 3.掌握前端常见的几种效果实现 #知识点 一.elementUI的使用 ...

  10. Numpy的学习5-array的分割

    import numpy as np A = np.arange(12).reshape((3, 4)) print(A) """ array([[ 0, 1, 2, 3 ...