Failed to create Spark client for Spark session/30041Code
记录排错历程
问题简介:根据尚硅谷数仓4.0学习集群运行了一段时间,可以正常使用spark运行,出现阶段运行情况的红色框,但是不知道为什么突然有一次,返回30041code,无法运行创建spark session。
第一种情况:多尝试运行几次
刚开始是觉得集群内存不足,因为我的集群三台机器都是再虚拟机上的,整个电脑16G内存,每个hadoop10x分配4G左右,所以内存不足无法运行,当然这只是第一感觉,并没有查看日志证实。
通过xcall free -h查看集群内存的运行情况,发现无法运行任务的时候,hadoop102内存使用了一些,注意这时候swap并没有用很多
--------- hadoop102 ----------total used free shared buff/cache available
Mem: 5.8G 4.8G 137M 98M 944M 633M
Swap: 4.0G 2.5M 4.0G
--------- hadoop103 ----------total used free shared buff/cache available
Mem: 5.8G 3.9G 356M 89M 1.6G 1.5G
Swap: 4.0G 0B 4.0G
--------- hadoop104 ----------total used free shared buff/cache available
Mem: 5.8G 3.6G 641M 67M 1.6G 1.8G
Swap: 4.0G 0B 4.0G
我反复运行几次插入语句,集群成功运行了。再去查看free -h,swap内存用了1个G,其他机器内存也用了好多。
--------- hadoop102 ----------total used free shared buff/cache available
Mem: 5.8G 5.4G 119M 64M 262M 55M
Swap: 4.0G 1.6G 2.4G
--------- hadoop103 ----------total used free shared buff/cache available
Mem: 5.8G 4.4G 117M 89M 1.3G 1.0G
Swap: 4.0G 0B 4.0G
--------- hadoop104 ----------total used free shared buff/cache available
Mem: 5.8G 4.0G 654M 81M 1.2G 1.4G
所以这时我认为,就是不知道为什么其他机器没有启动运行任务,所以spark没有运行起来。
第二种情况
在出现第一种情况时候,我也在玩网上查找了好多博客,但是感觉都不好用,没有解决我的问题。
1、Spark没有正常启动2、Spark和Hive版本不匹配3、资源不足,导致Hive连接Spark客户端超过设定时长
这是一篇博客总结的。首先,hive on spark配置,已经把以来的spark jar包上传到集群了,hive集群会使用这些jar包,spark不用单独启动。然后spark的版本和hive版本是尚硅谷资料,应该不会有错,并且以前我也成功运行了,说明不是版本不匹配的问题。超过时长我也改了,在hive-site.xml文件里,改为了90000ms,相当大了,但是依然出错。我反复尝试运行hive语句,尝试了两天也没有办法成功运行。我查看free -h发现,swap一直没用,很苦恼。
我只能将原因归于超时,后来在hive里面通过
set hive.spark.client.server.connect.timeout
语句发现,我的这个参数还是30000MS,默认的,我很奇怪,我明明在hive-site.xml改过了,hive-site.xml,在hive里面设置set 参数,只是单会话有效,文件里面设置,每次开启都会有效。后来我发现这里有两个参数,我不知道两个参数到底什么意思,很像,我就直接设置了。
<property><name>hive.spark.client.server.connect.timeout</name><value>3000000ms</value>
</property>
<property><name>hive.spark.client.connect.timeout</name><value>3000000ms</value>
</property>
但是,这依然不行,没有运行。
然后开始查看hive日志,hive-log4j2.properties.template显示日志默认在/tmp/{usr}/hive目录下,就是查看hive.log,显示connect time out,但是我已经设置的很长了,没办法了,,,
第二个查看yarn日志,因为spark最终提交给yarn运行的。查看命令
yarn application -list -appStates ALL
找出来出错的那条日志,给了一个地址,在hadoop103:8088上,就是看了这个页面。
Hive on Spark (sessionId = f7d1282d-c868-41f0-bb65-e11bc59ca4ec) SPARK lxw default FAILED FAILED 0% http://hadoop103:8088/cluster/app/application_1662382619809_0003
application_1662382619809_0002 Hive on Spark (sessionId = 5a5c3914-be1c-4e8a-9bf0-617c57433c50) SPARK lxw default FAILED FAILED 0% http://hadoop103:8088/cluster/app/application_1662382619809_0002
application_1662382619809_0001 Hive on Spark (sessionId = 422e1d97-2d0b-455b-9269-f49401d53afd) SPARK lxw default FAILED FAILED 0% http://hadoop103:8088/cluster/app/application_1662382619809_0001
Diagnostics:
Application application_1662382619809_0001 failed 1 times (global limit =2; local limit is =1) due to AM Container for appattempt_1662382619809_0001_000001 exited with exitCode: 1
Failing this attempt.Diagnostics: [2022-09-05 21:05:47.999]Exception from container-launch.
Container id: container_1662382619809_0001_01_000001
Exit code: 1
[2022-09-05 21:05:48.032]Container exited with a non-zero exit code 1. Error file: prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :
Error: Could not find or load main class org.apache.spark.deploy.yarn.ApplicationMaster
[2022-09-05 21:05:48.033]Container exited with a non-zero exit code 1. Error file: prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :
Error: Could not find or load main class org.apache.spark.deploy.yarn.ApplicationMaster
For more detailed output, check the application tracking page: http://hadoop103:8088/cluster/app/application_1662382619809_0001 Then click on links to logs of each attempt.
. Failing the application.
查看这块,发现
Error: Could not find or load main class org.apache.spark.deploy.yarn.ApplicationMaster
没有发现spark的类,又去查博客,为什么这样,才发现,原来是集群缺少jar包。但是,我的集群跟着尚硅谷配的,不应该缺少,后来上集群看了一下,确实没有spark-jars目录下,确实没有任何jars包!!!!!!!
我就重新上传了jar包,运行hive,成功运行!!!!!!!
总结:
1.为什么出错?
在配置Hive on Spark的时候,jar包已经上传集群,为什么后来没有了呢?我的集群是在本机虚拟机创建的,内存太小,有一次我想扩大虚拟机内存,直接在VMware上在集群未关闭的情况下更改了虚拟机配置,保存后,VMware直接开始重载新的虚拟机配置,在重载恢复虚拟机状态的时候,由于太慢了,真的太慢了,我直接手动关闭了虚拟机。再次开启之后,发现集群进入了严格模式,只能读,并且,在9870端口,报很多数据块丢失的错误,然后根据教程,我修复了磁盘,就是把报错的数据块都删了,集群正常运行。现在回想,应该是当时删掉了jar包。但是自己没注意。
2.遇到30041怎么办?
每个人情况不同,但是总体方法就是看日志。首先hive日志,默认/tmp/usr/hive.log目录,如果显示timeOut ,需要延长连接时间,但是这不一样管用,应为spark没有正常运行,延多久也没用;那么再去看yarn日志,采用命令的方式,在8088端口页面寻找失败的任务日志,精准定位错误。
Failed to create Spark client for Spark session/30041Code相关推荐
- Spark精华问答 | Spark的三种运行模式有何区别?
戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...
- 添加spark.yarn.jars 解决 WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set,
一:问题现象: 在spark on yarn 提交任务是,提示如下: WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive ...
- InternalError: Failed to create session.錯誤及解決方式
InternalError: Failed to create session.錯誤及解決方式 前言 錯誤訊息 解決方法 前言 這個錯誤是在一開始訓練Keras(使用TensorFlow當backen ...
- 用NFS挂载root出现:NFS: failed to create MNT RPC client, status=-101(-110)
2014-02-18 08:06:17 By Ly #Linux 阅读(78) 评论(0) 错误信息如下: Root-NFS: nfsroot=/home/zenki/nfs/rootfs NFS: ...
- org.apache.flink.table.catalog.exceptions.CatalogException: Failed to create Hive Metastore client
复现: $FLINK_HOME/bin/sql-client.sh embedded -d $FLINK_HOME/conf/flink-hive.yaml 完整报错如下: Exception in ...
- tensorflow.python.framework.errors_impl.InternalError: Failed to create session.
简介 首先说一下我出现的情况,使用gpu运行跑模型的时候.出现标题的情况.然后查看显卡(命令:nvidia-smi)中进程的使用情况的时候,出现一个python进程正在运行,所以导致无法failed ...
- Tensorflow 报错:tensorflow.python.framework.errors_impl.InternalError: Failed to create session....
问题描述 IDE:pycharm,环境中安装tensorflow-gpu 1.8.0 ,Cuda9 ,cudnn 7,等,运行代码 报错如下 tensorflow.python.framework.e ...
- Spark性能优化 -- Spark SQL、DataFrame、Dataset
本文将详细分析和总结Spark SQL及其DataFrame.Dataset的相关原理和优化过程. Spark SQL简介 Spark SQL是Spark中 具有 大规模关系查询的结构化数据处理 模块 ...
- Spark(十二) -- Spark On Yarn Spark as a Service Spark On Tachyon
Spark On Yarn: 从0.6.0版本其,就可以在在Yarn上运行Spark 通过Yarn进行统一的资源管理和调度 进而可以实现不止Spark,多种处理框架并存工作的场景 部署Spark On ...
最新文章
- 代码审计之代码执行注入
- POJ 1852 Ants O(n)
- 学C/C++不能不知道的硬知识
- 能ping通工作组计算机 无法访问,可以ping通不能访问共享,其他电脑可以访问
- MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
- [Ubuntu16.04]Anaconda下运行jupyter notebook出现Running as root is not recommended.
- DP练习(初级):ZigZag
- 智能优化算法(源码)-飞蛾扑火优化算法(MFO)
- Java SE Development Kit 6U43中文版
- 学习java第14天
- sendcloud php 群发,laravel5.5 使用sendcloud发送邮件
- android删除通知栏图标,Android开发系列---UI篇---添加和消除通知栏图标
- gulp两种配置方式总结
- 大数据处理的基本思路
- netty 工控网关_开源软件分享-基于.NET的工控网关和组态软件
- 【自适应引导滤波和梯度信息:PAN+MS:传统方法HIS】
- 手撸一个torch——day1——numba和flake8
- TSO/GSO GRO/LRO 从入门到精通
- 海康SDK修改分辨率
- Maven打包提示dependencies.dependency.systemPath错误