1、Namenode岩机处理:重启集群无法恢复的情况下
一般NameNode情况下是不会岩机的,但如果出现违规操作,如突然断电等就会造成NameNode镜像文件的损坏,重启就起不来了。hdoop1的一个设计不好的地方就是单机依赖,对NameNode这台机器依赖太高,一旦NameNode出现岩机整个集群就会瘫了!
注:NameNode镜像文件盒secondnamenode镜像存放在哪里是有配置文件决定的
首先删除掉NameNode下的镜像文件
复制namesecondary文件中的所有内容到NameNode节点下的那么文件中重启
2、坏block处理
现象:
Namenode日志:The reported blocks 211655 needs additional 4687 blocks to reach the threshold 0.9990 of total blocks 216559.
Safe mode will be turned off automatically.
状态始终在safe mode模式
hadoop本身自带坏块的的修复功能,介于修复时间过于缓慢,一天修复20个,所以一般是采用直接删除坏块的方法
hadoop fsck / -delete 删除坏块
3、单机存储均衡
增加一个磁盘后的配置:
在hdfs-site.xml中
<property>
<name>dfs.data.dir</name>
<value>opt/hdfs/dfs/data1,opt/hdfs/dfs/data2</value>
</property>
value:第一个磁盘,第二个磁盘
hadoop本身自带一个blancer的机制,但是它只能检测每一个节点的磁盘使用率,把那些磁盘使用率高的那些块迁移到磁盘使用率低的节点里。
但是它检测的是全局的磁盘使用率,比如:一个磁盘使用99%,另一个使用10%,并不能在这两个节点之间均衡!
1.首先停掉集群,df -k 查看磁盘使用率信息,du -a|sort -rn|more查看块大小
2.进入opt/hdfs/dfs/data目录下。这里面是block块的物理存储文件,将data1中较多的数据严格按照目录进行移动到data2中