Hadoop 日常运维中的一些问题汇总整理

         对于运维需要时刻保证服务的稳定和高可用。以下是一些对Hadoop群集运维过程中遇到的一些问题总结。有包含到大家遇到的可以参考。

    1.  问题1

在集群执行hive脚本时,hive.log报错如下

java.lang.InterruptedException

解决办法:

原因是因为线程在等待过程中长期获取不到资源被终止, 可以通过修改下面的配置进行优化:

dfs.datanode.handler.count(加大)DN的服务线程数。这些线程仅用于接收请求,处理业务命令

dfs.namenode.handler.count(加大)  NN的服务线程数。用于处理RPC请求

2.  问题2

 

ive.log抛出异常信息如下

Error: java.lang.RuntimeException: org.apache.hive.com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 73

Serialization trace:

colExprMap (org.apache.hadoop.hive.ql.exec.TableScanOperator)

aliasToWork (org.apache.hadoop.hive.ql.plan.MapWork)

解决办法:

原因是hive-exec包的org.apache.hadoop.hive.ql.exec.Utilities中默认使用cloningQueryPlanKryo来存储数据,多线程时覆盖影响的0.13.1的bug,在0.14中已经得到修复,偶发性的数据序列化错误,很难重现, 可以修改hive.plan.serialization.format参数值为javaXML来避免错误,默认是kryo序列化格式,没进行尝试因为问题不容易重新;以下是参考资料 

https://issues.apache.org/jira/browse/HIVE-8688?jql=project in (MAPREDUCE, HIVE, HADOOP, HDFS) AND text ~ "org.apache.hive.com.esotericsoftware.kryo.KryoException" ORDER BY priority DESC

https://issues.apache.org/jira/browse/HIVE-7711?jql=project in (MAPREDUCE, HIVE, HADOOP, HDFS) AND text ~ "org.apache.hive.com.esotericsoftware.kryo.KryoException" ORDER BY priority DESC

3. 问题3

 java.io.IOException: 断开的管道

下面是在执行hive ql时后台报的错误,原因是在datanode上写入文件时,传输管道中断导致失败

可以通过修改下面几个参数对集群读写性能进行优化

dfs.datanode.handler.count(加大)DN的服务线程数。这些线程仅用于接收请求,处理业务命令

dfs.namenode.handler.count(加大)  NN的服务线程数。用于处理RPC请求

dfs.namenode.avoid.read.stale.datanode(true)决定是否避开从脏DN上读数据。脏DN指在一个指定的时间间隔内没有收到心跳信息。脏DN将被移到可以读取(写入)节点列表的尾端。尝试开启

dfs.namenode.avoid.write.stale.datanode(true)  和上面相似,是为了避免向脏DN写数据

4. 问题4

 java.io.EOFException: Premature EOF

文件操作超租期,实际上就是data stream操作过程中文件被删掉了 可以加大这个参数来进行优化dfs.datanode.max.transfer.threads;

参考资料:

https://issues.apache.org/jira/browse/HDFS-4723   http://www.sharpcloud.cn/thread-4927-1-1.html

5. 问题5

Connection reset by peer

java.io.IOException: Connection reset by peer

datanode重置链接   The client is stuck in an RPC to NameNode. Currently RPCs can be wait for a long time if the server is busy.  

可以通过修改下面几个参数来优化

dfs.namenode.handler.count(加大)  NN的服务线程数。用于处理RPC请求

dfs.namenode.replication.interval(减小)  NN周期性计算DN的副本情况的频率,秒

dfs.client.failover.connection.retries(建议加大)  专家设置。IPC客户端失败重试次数。在网络不稳定时建议加大此值

dfs.client.failover.connection.retries.on.timeouts(网络不稳定建议加大)专家设置。IPC客户端失败重试次数,此失败仅指超时失败。在网络不稳定时建议加大此值

参考资料:https://issues.apache.org/jira/browse/HADOOP-3657

6. 问题6

SemanticException Schema of both sides of union should match

2015-08-10 17:22:35,390 ERROR [main]: ql.Driver (SessionState.java:printError(567)) - FAILED: SemanticException Schema of both sides of union should match.

语法错误,使用union查询时查询两个表的内容不同,测试sql时报的错,不是集群作业的,检查hive ql改正即可

7.  问题7 

java.net.SocketTimeoutException

IO超时加大下面俩个参数即可

dfs.datanode.socket.write.timeout (加大)向datanode写入数据超时设置

dfs.client.socket-timeout (加大) dfsclients与集群间进行网络通信的超时设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你关于hadoop系统运维问题Hadoop是一个分布式计算框架,它的运维工作需要考虑到很多方面,包括硬件、网络、软件等等。以下是一些常见的Hadoop系统运维问题及其解决方法: 1. 如何监控Hadoop集群的健康状况? 答:可以使用Hadoop自带的Metrics系统来监控集群的健康状况。Metrics系统会收集各个组件的性能指标,并将其汇总到一个统一的界面上,方便管理员查看。此外,还可以使用第三方监控工具,如Ganglia、Nagios等。 2. 如何优化Hadoop集群的性能? 答:可以从以下几个方面入手进行优化: - 调整Hadoop配置参数,如调整数据块大小、副本数等; - 优化硬件配置,如增加内存、CPU等; - 使用更快的网络设备,如升级网卡、使用InfiniBand等; - 使用更快的存储设备,如使用SSD代替HDD。 3. 如何备份Hadoop集群的数据? 答:可以使用Hadoop自带的备份工具——DistCp来备份数据。DistCp可以将一个Hadoop集群的数据复制到另一个Hadoop集群,也可以将数据备份到本地磁盘或其他存储设备。 4. 如何升级Hadoop集群? 答:升级Hadoop集群需要注意以下几点: - 仔细阅读官方文档,了解升级过程需要注意的事项; - 在测试环境进行升级测试,确保升级过程不会影响生产环境; - 逐个升级各个组件,确保每个组件都能够正常工作; - 在升级过程备份数据,以防数据丢失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值