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元数据备份

猜你喜欢

转载自marsorp.iteye.com/blog/1575772