记录排错历程

问题简介:根据尚硅谷数仓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相关推荐

  1. Spark精华问答 | Spark的三种运行模式有何区别?

    戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...

  2. 添加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 ...

  3. InternalError: Failed to create session.錯誤及解決方式

    InternalError: Failed to create session.錯誤及解決方式 前言 錯誤訊息 解決方法 前言 這個錯誤是在一開始訓練Keras(使用TensorFlow當backen ...

  4. 用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: ...

  5. 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 ...

  6. tensorflow.python.framework.errors_impl.InternalError: Failed to create session.

    简介 首先说一下我出现的情况,使用gpu运行跑模型的时候.出现标题的情况.然后查看显卡(命令:nvidia-smi)中进程的使用情况的时候,出现一个python进程正在运行,所以导致无法failed ...

  7. 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 ...

  8. Spark性能优化 -- Spark SQL、DataFrame、Dataset

    本文将详细分析和总结Spark SQL及其DataFrame.Dataset的相关原理和优化过程. Spark SQL简介 Spark SQL是Spark中 具有 大规模关系查询的结构化数据处理 模块 ...

  9. Spark(十二) -- Spark On Yarn Spark as a Service Spark On Tachyon

    Spark On Yarn: 从0.6.0版本其,就可以在在Yarn上运行Spark 通过Yarn进行统一的资源管理和调度 进而可以实现不止Spark,多种处理框架并存工作的场景 部署Spark On ...

最新文章

  1. 代码审计之代码执行注入
  2. POJ 1852 Ants O(n)
  3. 学C/C++不能不知道的硬知识
  4. 能ping通工作组计算机 无法访问,可以ping通不能访问共享,其他电脑可以访问
  5. MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
  6. [Ubuntu16.04]Anaconda下运行jupyter notebook出现Running as root is not recommended.
  7. DP练习(初级):ZigZag
  8. 智能优化算法(源码)-飞蛾扑火优化算法(MFO)
  9. Java SE Development Kit 6U43中文版
  10. 学习java第14天
  11. sendcloud php 群发,laravel5.5 使用sendcloud发送邮件
  12. android删除通知栏图标,Android开发系列---UI篇---添加和消除通知栏图标
  13. gulp两种配置方式总结
  14. 大数据处理的基本思路
  15. netty 工控网关_开源软件分享-基于.NET的工控网关和组态软件
  16. 【自适应引导滤波和梯度信息:PAN+MS:传统方法HIS】
  17. 手撸一个torch——day1——numba和flake8
  18. TSO/GSO GRO/LRO 从入门到精通
  19. 海康SDK修改分辨率
  20. Maven打包提示dependencies.dependency.systemPath错误

热门文章

  1. java setshape 抗锯齿,Java8 中文教程
  2. 微信小程序 全面屏的适配
  3. ENC编码器之5G无线直播方案来袭
  4. 2022年北京东奥会奖牌榜API接口
  5. android百度地图自定义覆盖物,Android 百度地图在地图上添加覆盖物(头像)
  6. 装修风格如何选?极家家居生活馆好吗?
  7. 【Unity3D】角色控制器(CharacterController)
  8. ubuntu下的Redis操作命令
  9. 笑话——————吃饭的先吐出嘴里的东西。。。。
  10. nginx 二级目录 php,Nginx 配置二级目录支持