Hadoop管理-集群维护
1.检查HDFS状态
fsck命令
1)fsck检测丢失及无效的数据块
-fsck只是起到检测作用,不会进行修复
2)fsck可以查看的内容
-每个文件的块数量、块的位置、机架信息
3)例子
$ hadoop fsck / $ hadoop fsck / -files $ hadoop fsck / -files -blocks $ hadoop fsck / -files -blocks -locations $ hadoop fsck / -files -blocks -locations -racks
4) 运行fsck的时机,建议使用定时任务(cron job),并把结果发送给管理员
-选择集群使用率不高的时间,去运行fsck
5)-move选项会把无效的文件放到/lost+found
-无效文件是指所有块(复制的)都丢失了
6)-delete选项删除无效文件
dfsadmin命令
1)dfsadmin提供了管理hdfs的功能
2)列出每一个DataNode上的信息
$ hadoop dfsadmin -report
3)重新加载dfs.hosts及dfs.hosts.exclude文件
$ hadoop dfsadmin -refreshNodes
4)手工设置文件系统为"安全模式"
-NameNode在启动时,会处于安全模式
-READ-ONLY - NameNode的元数据不可以改变,既不可以建立(删除)文件(文件夹)
-不能复制及删除块
-离开安全模式,依据复制块数点总块数百分比,可配置
$ hadoop dfsadmin -safemode neter $ hadoop dfsadmin -safemode leave
-提供安全模式等待退出命令
-对脚本非常有用
$ hadoopo dfsadmin -safemode wait
5)保存NameNode
-必须在安全模式
$ hadoop dfsadmin -saveNamespace
2.集群之间拷贝数据
distcp命令
1.distcp在集群之间拷贝
-拷贝大数据
-拷贝过程通过Mapper-Only MapReduce 任务
-可以拷贝文件或文件夹,会检测目标的文件名及大小是否相同,确定是否覆盖
hadoop distcp hdfs://nn1:9000/path/to/src \ hdfs://nn2:9000/path/to/dest
2.在实践中,很多公司都有不在集群之间拷贝数据,一般做法是在导入数据时,会同时给另外一个集群导入数据
3.集群增加及移除节点
4.使集群平衡
5.NameNode元数据备份