自学内容网 自学内容网

记录一个hive中跑insert语句说没创建spark客户端的问题

【背景说明】

我目前搭建离线数仓,并将hive的执行引擎改成了Spark,在将ods层的数据装载到dim层,执行insert语句时报如下错误

【报错】

[42000][40000] Error while compiling statement: FAILED: SemanticException Failed to get a spark session: org.apache.hadoop.hive.ql.metadata.HiveException: Failed to create Spark client for Spark session e1e64eb2-bfa8-4e3f-8e3a-d37b88a92c86

这个错误表示Hive无法为Spark会话创建Spark客户端,可能是由于Spark会话创建失败导致的。

【原因】

经过排查,发现导致该问题的原因是当队列资源达到100%后,如果短期内都没有任务空余资源释放出来提供给创建 sparksession使用,将会导致任务失败而抛出这个异常 。

【解决】

加大client连接时间间隔;

修改hive的配置文件hive-site.xml

<!--Hive和Spark连接超时时间-->
<property>
    <name>hive.spark.client.connect.timeout</name>
    <value>100000ms</value>
</property>

注意注意:每次改完这个配置文件需要重启hiveserver2,我封装了这个脚本

hi.sh stop
hi.sh start

再重跑insert


原文地址:https://blog.csdn.net/yuanlaishidahuaa/article/details/138028577

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!