HIVE ON SPARK无法创建spark client session

HIVE ON SPARK无法创建spark client session

1.环境概述

尚硅谷数仓5.0提供的spark with hadoop与对应适配无hadoop的spark,hive是经过修改过的添加了spark3相应jar包的spark,出现了fail to create spark client for spark session 的错误,但是hive不走spark的其他查询可以正常使用。

报错相关

2.解决

当启动hive时执行spark相关任务时,yarn的application上什么也没有显示,直到结束,此时可以对hive日志进行监控,hive日志的位置可以去hive/conf的log4j文件中查看
在这里插入图片描述
这里的hive日志存储路径是/tmp/用户名称,进入hivelog的路径下执行对日志进行监控。

tail -f hive.log

再打开一个窗口重新启动hive然后运行spark相关语句,比如插入insert与count(*)之后在另一个窗口查看结果。

9-ad46-86c583699c86 main] client.SparkClientImpl:      client token: N/A
2022-07-07T00:42:38,112  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl:      diagnostics: [星期四 七月 07 00:42:37 +0800 2022] Application is Activated, waiting for resources to be assigned for AM.  Details : AM Partition = <DEFAULT_PARTITION> ; Partition Resource = <memory:23500, vCores:24> ; Queue's Absolute capacity = 100.0 % ; Queue's Absolute used capacity = 0.0 % ; Queue's Absolute max capacity = 100.0 % ; Queue's capacity (absolute resource) = <memory:23500, vCores:24> ; Queue's used capacity (absolute resource) = <memory:0, vCores:0> ; Queue's max capacity (absolute resource) = <memory:23500, vCores:24> ; 
2022-07-07T00:42:38,112  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl:      ApplicationMaster host: N/A
2022-07-07T00:42:38,113  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl:      ApplicationMaster RPC port: -1
2022-07-07T00:42:38,113  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl:      queue: default
2022-07-07T00:42:38,113  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl:      start time: 1657125757635
2022-07-07T00:42:38,113  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl:      final status: UNDEFINED
2022-07-07T00:42:38,113  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl:      tracking URL: http://hadoop103:8088/proxy/application_1657125588906_0001/
2022-07-07T00:42:38,113  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl:      user: wenlan
2022-07-07T00:42:38,211  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl: 2022-07-07 00:42:38,211 INFO util.ShutdownHookManager: Shutdown hook called
2022-07-07T00:42:38,215  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl: 2022-07-07 00:42:38,214 INFO util.ShutdownHookManager: Deleting directory /tmp/spark-ef148fe5-2af3-47dc-83b2-31bd1f70a223
2022-07-07T00:42:38,220  INFO [RemoteDriver-stderr-redir-527071be-93b4-4219-ad46-86c583699c86 main] client.SparkClientImpl: 2022-07-07 00:42:38,220 INFO util.ShutdownHookManager: Deleting directory /tmp/spark-20ba387e-1676-4fd1-89e8-9fb9d4f5e057

我的程序卡在了以上画面,然后修改client.timeout的参数也不解决问题,说明不是网络之类的问题,日志提供了tarcking URL,进入到对应的页面中,我这边是http://hadoop103:8088/proxy/application_1657125588906_0001/

等待一段时间让他fail之后进行查看
在这里插入图片描述
我这里的错误是缺少相应的依赖,org/apache/hadoop/mapred/JobConf,查询资料,发现可以直接从maven那边下载对应的包上传上去,
下载地址在
https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-core
然后下载3.1.2版本的
在这里插入图片描述
我下载的是和我的hadoop对应版本的3.1.2的,然后将下载好的jar包上传到hdfs上的sparkjar依赖位置,也就是spark.yarn.jars配置的对应目录,重启一下hive应该就可以正常运行hive on spark了。

这样配置后我成功的运行了insert的语句,当我放假回来重新使用groupby的时候又继续开始报错,考虑了以下解决方式。

其他

如果您遇到了下面的问题说您没有这个路径在这里插入图片描述
只需要把您的spark复制一份后,改成对应的名字即可,出现这个问题应该是其他地方有修改过一些内容。

如果您查看产生的日志遇到了说您没有什么log4j的路径依赖只需要在spark对应路径下的spark-env.sh文件进行修改,在其中添加上

export SPARK_DIST_CLASSPATH=$(/opt/module/hadoop-3.1.3/bin/hadoop classpath)

就可以解决相应的问题了!

总结

如果不是偶发性的hive on spark无法使用就先不用去调内存设置和网络设置,首先检查相应配置文件是否合理配置,之后通过日志对问题进行监测,如果缺少依赖项目,只需要在依赖路径上传对应依赖即可解决问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值