Hadoop DFSAdmin命令参考

dfs模块提供了常用的文件或目录操作,但它们都是对文件系统内部的操作,dfsadmin模块是对整个文件系统操作或查询,我们下面将介绍它。

得到全局状态。一个简洁的HDFS状态状态报告可以用bin/hadoop dfsadmin –report得到,它返回的是HDFS集群的基本健康信息。

更详细的状态。

如果你想知道名字结点元数据状态的更多信息,你可以使用bin/hadoop dfsadmin –metasave filename命令,它将信息保存到filename中,metasave命令枚举在复制的块列表。

注意,这个命令的帮助信息是“保存名字结点的主要数据结构”,但它是错误 的,名字结点的状态不能通过个命令保存,它提供的是名字结点对数据块的处理信息。

安全模式。

安全模式是HDFS的一种状态,在这种状态下,文件系统以只读方式被挂载,不进行冗余复制,文件不能被创建也不能被删除,这是名字结点启动后自动进入的状态,以来允许所有数据结点与名字结点时间同步,并声明它们所拥有的块,然后名字结点才决定哪些块被复制,等等。

名字结点要等到一定比例的数据块可见,这个比例是由配置中的dfs.safemode.threshold参数来决定,在达到这个比例的阈值后,安全模式自动退出,然后HDFS允许正常操作。

bin/hadoop dfsadmin –safemode what命令允许用户根据what的值操作安全模式,what的值在下面列出:

  1. enter进入安全模式。

  2. leave 强制名字结点退出安全模式。

  3. get 返回标名安全模式是ON还是OFF的字符串。

  4. wait 等待直到名字结点退出安全模式后自动返回。

修改HDFS成员。当停止结点时,要将它们逐步地与HDFS断开连接,来保证数据不会丢失,在本章停止结点的小节中,介绍-refreshNodes dfasdmin命令。

升级HDFS版本。

当将HDFS版本升级到另一版本时,名字结点和数据结点的格式有可能改变,当你要启动新的Hadoop时,你需要告诉Hadoop去修改HDFS版本,用bin/start-dfs.sh –upgrade命令。它将开始升级HDFS版本,升级进行的信息可以用bin/hadoop dfsadmin –upgradeProgress status命令查询,你可以用bin/hadoop dfsadmin –upgradeProgress details得到更详细的升级信息。

如果升级阻塞了,你可以用bin/hadoop dfsadmin –updateProgress force命令,使它继续进行(注意,在使用这个命令时,你最好知道你在干什么)。

当HDFS升级后,Hadoop保留了允许你降级到以前HDFS版本的信息,以防你想回到以前的Hadoop版本,如果你要降级就先停止集群,重装旧版的Hadoop,再运行bin/start-dfs.sh –rollback,它就会回到以前版本的HDFS状态。

每次只能保存一个存档拷贝,所以在新版本下运行几天后(当感觉它稳定后),可以用bin/hadoop dfsadmin –finalizeUpgrade命令删除存档拷贝,而rollback命令将不再可用,但这也是进行第二次升级必要的一个工作。

获得帮助。

与dfs中一样,输入bin/hadoop dfsadmin –help cmd命令会显示这个命令的用法。