设为首页 收藏本站
查看: 1349|回复: 0

通过Hive执行任务,异常——Hive:Connection refused;Hadoop:too many open files

[复制链接]
发表于 2015-11-11 14:52:45 | 显示全部楼层 |阅读模式

问题背景:


工作中需要用到Hiveserver提交任务到hadoop进行离线计算,在正常测试运行整个离线计算任务几遍后,在后面提交任务的运行过程中遇到该异常。


问题表现:


从监控模块放回的异常与Hive中日志异常一样,均为如下所示:


2013-03-01 15:14:12 [ERROR] [SummaryReport] [orderNumStatics/订单量] File '/home/hadoop/hive-0.7.1-cdh3u3/lib/py/hive_service/ThriftHive.py', line 87, in recv_execute

raise result.ex

HiveServerException:HiveServerException(errorCode=12, message='Query returned non-zero code: 12, cause: FAILED: Hive Internal Error: java.lang.RuntimeException(java.net.ConnectException: Call to nn/10.28.168.128:41000 failed on connection exception: java.net.ConnectException:
Connection refused)', SQLState='42000')


hadoop集群中datanode的日志文件报异常:


DataXceiverServer: IOException due to:java.io.IOException: Too many open files


在后面的测试中进一步得到如下情况:


在遇到该异常后,立即直接通过Hive(非Thrift)提交查询语句,返回同样的错误;等待几分钟后,重新提交Hive语句,可执行成功。继续提交,当达到一定量之后,又返回之前的错误。重新启动hiveserver或hadoop,均可以很好地解决只能执行少量任务的问题。


问题原因:


目前我们应用的hadoop版本hadoop-0.20.2-cdh3u3,其存在一个Bug,编号: HDFS-2028 ——  3.cn/uQ1t4B


Bug 描述如下:


When I load data into tables of hive via hiver cli or hive server, there are always some ESTABLISHED or CLOSE_WAIT status socket connections. And these tcp connections won't be released unless you quit hive or restart hiveserver.


意思是: 当用户通过hive 与 hive server执行hadoop任务时, 系统中会存在一些状体为 ESTABLISHED 与CLOSE_WAIT 的socket连接,而这些tcp连接只有在退出hive,或重启hiveserver服务时才会释放。


通过这个Bug的描述,发现这正是我们当前遇到的问题。


解决方法:


1. 修复上述中的Bug, path 补丁文件 1010-HDFS-1836.-Thousand-of-CLOSE_WAIT-socket.patch, 重新生成hadoop-core-0.20.2-cdh3u3.jar,然后替换掉之前的jar包;


2. 修改hadoop集群节点的/etc/security/limits.conf文件,在文件末尾加入下内容:


* soft nofile 65536

* hard nofile 65536


此操作的含义是修改Linux系统允许打开的最大文件数,其中系统默认的文件打开数为1024,这里修改成65536,根据实际情况设置成相应的值即可。


3. 修改hadoop配置文件 hdfs-site.xml,修改dfs.datanode.max.xcievers属性的值,可根据实际情况设置大一点


<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
解决效果:
在与hadoop小组同时的沟通过程中得知,解决方法中的步骤一已经实施,但在我们的实际情况中依然会遇到本文中描述的问题。分析原因可能有如下几种:
1. hadoop-0.20.2-cdh3u3的这个bug并未真正修复;
2. hadoop-0.20.2-cdh3u3已修复该bug,而处理这些未及时关闭的链接,采取的方案可能是等待操作关闭,即需要某个设定的时间再关闭。
在实施解决方案中的步骤2、3之后,经过多次测试,没有再遇到本文中提到的问题。继续测试发现未关闭的链接数保持在一定&#20540;,呈现上下浮动,并没有一直往上增长,故大胆猜测,执行步骤一未能解决问题的原因很可能是上述的第2点。具体是哪种原因,以及上述原因2中可能的等待时间是多长,本人还在学习当中。
         
版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-137994-1-1.html 上篇帖子: Ubuntu下 Hadoop 1.2.1 配置安装 下篇帖子: Hadoop 文件命令 kill job
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表