Hadoop调优手册(6)——HDFS故障排除

1.NameNode故障处理

* NameNode进程挂掉

如果只是 NameNode 进程挂掉了,那么执行以下命令重启即可。

hdfs --daemon start namenode

* NameNode进程挂掉且数据被删除

如果 NameNode 的数据不小心被删除了,那么可以把 SecondaryNameNode 中的数据拷贝到 NameNode 中,并重启 NameNode 进程。

注意
SecondaryNameNode 不是 NameNode 的备份,SecondaryNameNode 中的数据可能会比 NameNode 中的数据少,因为 SecondaryNameNode 会定时或定操作次数,从 NameNode 拉取镜像 Fsimage 和 操作记录 Edits 进行合并,再将新的 Fsimage 传给 NameNode。因为这个合并工作不是实时的,所以 SecondaryNameNode 上的镜像 Fsimage 大概率会缺失 NameNode 上的一部分最新的操作记录。

影响 SecondaryNameNode 合并频率的配置

  • 配置文件:hdfs_site.xml
  • 配置参数:
# SecondaryNameNode每隔一个小时执行一次
<property>
  <name>dfs.namenode.checkpoint.period</name>
  <value>3600</value>
</property>

# SecondaryNameNode当操作次数超过100万次时执行一次
<property>
  <name>dfs.namenode.checkpoint.txns</name>
  <value>1000000</value>
</property>

# NameNode一分钟检查一次操作次数
<property>
  <name>dfs.namenode.checkpoint.check.period</name>
  <value>60</value>
</property >

注意
生产环境中一般不使用 SecondaryNameNode,而是采用 HA(高可用)。

– 关于 HA(高可用)的介绍后续填坑。–


2.集群安全模式

* 安全模式

文件系统只接受读数据请求,而不接受删除、修改等变更请求。

* 进入安全模式的场景

(1)NameNode 在加载镜像文件 Fsimage 和操作日志 Edits 期间处于安全模式。

(2)NameNode 在接收 DataNode 注册时,处于安全模式。

* 退出安全模式的条件

(1)当前启动的节点数量大于配置的最小可用节点数量,默认0。

(2)副本数量达到最小要求的 block 占系统总 block 数的百分比 ,默认 0.999f,即只允许丢一个块。

(3)稳定时间超过配置的时长,默认值 30000 毫秒,即 30 秒。

以上配置在配置文件 hdfs_site.xml 中,详见:

<property>
  <name>dfs.namenode.safemode.threshold-pct</name>
  <value>0.999f</value>
  <description>
    Specifies the percentage of blocks that should satisfy 
    the minimal replication requirement defined by dfs.namenode.replication.min.
    Values less than or equal to 0 mean not to wait for any particular
    percentage of blocks before exiting safemode.
    Values greater than 1 will make safe mode permanent.
  </description>
</property>

<property>
  <name>dfs.namenode.safemode.min.datanodes</name>
  <value>0</value>
  <description>
    Specifies the number of datanodes that must be considered alive
    before the name node exits safemode.
    Values less than or equal to 0 mean not to take the number of live
    datanodes into account when deciding whether to remain in safe mode
    during startup.
    Values greater than the number of datanodes in the cluster
    will make safe mode permanent.
  </description>
</property>

<property>
  <name>dfs.namenode.safemode.extension</name>
  <value>30000</value>
  <description>
    Determines extension of safe mode in milliseconds after the threshold level
    is reached.  Support multiple time unit suffix (case insensitive), as
    described in dfs.heartbeat.interval.
  </description>
</property>

* 安全模式相关命令

(1)查看安全模式状态

hdfs --dfsadmin safemode get

(2)进入安全模式

hdfs --dfsadmin safemode enter

(3)离开安全模式

hdfs --dfsadmin safemode leave

(4)等待安全模式

hdfs --dfsadmin safemode wait

注:
等待安全模式,一般用在 Shell 脚本中,在该命令后面编写想要在退出安全模式后进行的操作,然后运行脚本,这样等到自动(手动)退出安全模式后,就会自动完成脚本中写好的操作。


3.慢磁盘监控

慢磁盘指的是写入数据非常慢的一类磁盘。慢磁盘并不少见,当机器运行时间长了,上面跑的任务多了,磁盘的读写性能自然会退化,严重时就会出现写入数据延时的问题。

* 使用fio命令测试磁盘的读写性能

  • 安装 fio:
sudo yum install -y fio
  • 测试命令:

(1)顺序读测试

sudo fio -filename=/home/admin/test.log -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r

(2)顺序写测试

sudo fio -filename=/home/admin/test.log -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_w

(3)随机写测试

sudo fio -filename=/home/admin/test.log -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_randw

(4)混合随机读写

sudo fio -filename=/home/admin/test.log -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r_w -ioscheduler=noop
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值