| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Failed to create Spark client for Spark session/30041Code -> 正文阅读 |
|
[大数据]Failed to create Spark client for Spark session/30041Code |
记录排错历程? ? ? ? 问题简介:根据尚硅谷数仓4.0学习集群运行了一段时间,可以正常使用spark运行,出现阶段运行情况的红色框,但是不知道为什么突然有一次,返回30041code,无法运行创建spark session。 第一种情况:多尝试运行几次? ? ? ? 刚开始是觉得集群内存不足,因为我的集群三台机器都是再虚拟机上的,整个电脑16G内存,每个hadoop10x分配4G左右,所以内存不足无法运行,当然这只是第一感觉,并没有查看日志证实。 ? ? ? ? 通过xcall free -h查看集群内存的运行情况,发现无法运行任务的时候,hadoop102内存使用了一些,注意这时候swap并没有用很多
我反复运行几次插入语句,集群成功运行了。再去查看free -h,swap内存用了1个G,其他机器内存也用了好多。
所以这时我认为,就是不知道为什么其他机器没有启动运行任务,所以spark没有运行起来。 第二种情况? ? ? ? 在出现第一种情况时候,我也在玩网上查找了好多博客,但是感觉都不好用,没有解决我的问题。 ????????
????????这是一篇博客总结的。首先,hive on spark配置,已经把以来的spark jar包上传到集群了,hive集群会使用这些jar包,spark不用单独启动。然后spark的版本和hive版本是尚硅谷资料,应该不会有错,并且以前我也成功运行了,说明不是版本不匹配的问题。超过时长我也改了,在hive-site.xml文件里,改为了90000ms,相当大了,但是依然出错。我反复尝试运行hive语句,尝试了两天也没有办法成功运行。我查看free -h发现,swap一直没用,很苦恼。 ? ? ? ? 我只能将原因归于超时,后来在hive里面通过
? ? ? ? 语句发现,我的这个参数还是30000MS,默认的,我很奇怪,我明明在hive-site.xml改过了,hive-site.xml,在hive里面设置set 参数,只是单会话有效,文件里面设置,每次开启都会有效。后来我发现这里有两个参数,我不知道两个参数到底什么意思,很像,我就直接设置了。 ????????
但是,这依然不行,没有运行。 ? ? ? ? 然后开始查看hive日志,hive-log4j2.properties.template显示日志默认在/tmp/{usr}/hive目录下,就是查看hive.log,显示connect time out,但是我已经设置的很长了,没办法了,,, ? ? ? ? 第二个查看yarn日志,因为spark最终提交给yarn运行的。查看命令 ????????
找出来出错的那条日志,给了一个地址,在hadoop103:8088上,就是看了这个页面。
?查看这块,发现
没有发现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端口页面寻找失败的任务日志,精准定位错误。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 11:07:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |