hadoop故障及其应对

本文详述了Hadoop中NameNode、DataNode、TaskTracker、JobTracker的故障处理,包括故障识别、修复和预防措施。讨论了NameNode维护的信息、任务引发的故障以及主节点的扩容方案。此外,还涉及到了网络配置、数据块的放置和集群访问控制,为Hadoop集群的稳定运行提供指导。
摘要由CSDN通过智能技术生成

为更好了解各种故障,可以修改数据块的大小和提升NameNode的日志级别

<property>
  <name>dfs.block.size</name>
  <value>4194304</value>
</property>
<property>
  <name>dfs.namenode.logging.level</name>
  <value>all</value>
</property>
dfsadmin命令可查看集群的整体状态,包括容量、每个节点的数据块数量、活跃节点数及最后通信时间等

under replicated blocks:表示副本数量小于复制因子的数据块个数。

DataNode故障

当NameNode进程明确了副本数过低的数据块后,会让其他DataNode从现有副本驻留主机复制这些数据块。需要注意的是,如果出现故障的节点重新恢复正常运行,该节点存储的数据块在集群中的副本数可能超过所需数量,这时候,NameNode随机选择要删除的副本并发出指令让相应主机删除。

DataNode被认定为dead的准确时间间隔并不是HDFS的一个可配置属性,它是由其他几个属性计算得出的,起关键作用的是心跳间隔时间。要重启所有主机中的死亡节点,使用start-all.sh,它并不会影响活跃节点。

TaskTracker故障

TaskTracker进程频繁向JobTracker发送心跳信息,心跳信息包含任务进度及可用空间。每个节点都有一个配置的map和reduce slot(默认值是2)。用户可通过修改mapred-site.xml的mapred.tasktracker.expiry.interval属性配置TaskTracker进程的超时时间。个别TaskTracker发生故障只会减少集群可并发运行的任务数,除此之外不会产生其他直接影响。即使所有TaskTracker都发生故障,也不会影响到HDFS的功能。

若物理主机发生了致命故障导致死亡节点无法重启,这时应该把该主机从slaves文件删掉,Hadoop就不再启动那台主机上的DataNode或TaskTracker。用户只需在运行这些命令(start/stop和slaves.sh)的主机上更新slaves文件,而无需在每个节点都进行同样操作。

JobTracker故障

因为运行作业的主机上的客户端要通过与JobTracker的通信完成作业调度的初始化工作。若JobTracker已经停止运行,通信过程无法完成,作业以失败告终

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值