vlambda博客
学习文章列表

HDFS常见问题之Datanode故障

[
一:HDFS结构
]


Namenode:用于管理文件系统的命名空间、目录结构、元数据信息以及提供备份机制;


DataNode:用于存储每个文件的“数据块”数据,并且会周期性地向NameNode报告该DataNode的数据存放情况;


JournalNode:用于同步主备NameNode之间的元数据信息;

Zookeeper:是一个协调服务,帮助ZKFC执行主NameNode的选举;

ZKFC:它负责监控NameNode的状态,并及时把状态写入Zookeeper;


[
二:HDFSHA集群
]


1.为了避免单点故障问题,HDFS一般采用HA集群的方式部署,典型的HDFSHA场景为主备两个NameNode方式运行,一个处于Active状态,另一个处于Standby状态,一旦主NameNode出现故障,可以迅速切换至备NameNode,从而不间断对外提供服务。


2.NameNode之间通过一组JournalNode同步元数据信息,实现Active和Standby两个NameNode的元数据信息同步。


[
三:HDFS原理
]


在HDFS内部,一个文件分成一个或多个“数据块”,这些“数据块”存储在DataNode集合里,NameNode负责保存和管理所有的HDFS元数据。客户端连接到NameNode,执行文件系统的“命名空间”操作,例如打开、关闭、重命名文件和目录,同时决定“数据块”到具体DataNode节点的映射。DataNode在NameNode的指挥下进行“数据块”的创建、删除和复制。客户端连接到DataNode,执行读写数据块操作。


HDFS常见问题之Datanode故障


[
四:HDFS数据节点硬盘故障案例
]


HDFS高可用集群中单数据节点datanode挂掉,不影响整个集群业务运行,更换硬盘属于高危操作,更换前需要将其他业务迁出。


1.收到hadoop数据节点Datanode进程停掉的告警信息。


2.登录集群管理节点,切换到故障节点,进入hadoop日志目录查看datanode日志详情,根据日志定位故障硬盘位置。

HDFS常见问题之Datanode故障


3.更换硬盘涉及风险,更换前应通知业务侧停掉主机业务进程,然后再做更换操作。该主机历史进程如下

HDFS常见问题之Datanode故障


4.停止业务进程

停止nodemanager(如有)

命令:yarn-daemon.shstop nodemanager

停止HRegionserver进程(业务集群使用graceful_stop.sh命令将region迁移到其他节点后停止regionserver)


命令:graceful_stop.shhadoop3(主机名)

查询region已迁移至节点2

HDFS常见问题之Datanode故障


停止journalnode进程

命令:hadoop-daemon.shstop journalnode

停止datanode进程

命令:hadoop-daemon.shstop  datanode

停止zookeeper进程(如有)

命令:zkServer.shstop


5.更换数据节点故障硬盘,挂载到原文件夹并修改权限


6.查询文件挂载及权限

查询文件夹权限

命令:ll/ |grep chunk09

HDFS常见问题之Datanode故障

查询hadoopHDFS配置文件中datanode参数

命令:morehdfs-site.xml

HDFS常见问题之Datanode故障


7.确认无误后启动进程

启动zookeeper进程(如有)

zkServer.shstart

启动datanode进程

命令:hadoop-daemon.shstart datanode

查询hadoopdatanode日志,读取到新盘所在chunk09

HDFS常见问题之Datanode故障


启动journalnode进程

命令:hadoop-daemon.shstart journalnode

启动regionserver进程

命令:hbase-daemon.shstart regionserver

注意:hbase请求量空闲的时候启动,特别是某些特殊的集群,如详单、计费、hbase集群均衡

进入页面检查hbase是否均衡,如果没均衡(如果均衡不用管),手动开启均衡

命令:echo“balance_switch true”|hbase shell

启动nodemanager

命令:yarn-daemon.shstart nodemanager


8.主机查询进程状态

HDFS常见问题之Datanode故障

登录HDFSUI查询Datanode

HbaseUI查询regionserver

参考:https://support.huawei.com/hedex/hdx.do?docid=EDOC1100020180&lang=zh&idPath=22658044%7C7919788%7C9856606%7C21110924

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html