[关闭]
@changedi 2017-02-04T20:49:13.000000Z 字数 7319 阅读 6560

HDFS命令大全

大数据 HDFS



原文:http://hadoop.apache.org/docs/r2.6.4/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html

概述

所有的HDFS命令都包含在bin/hdfs 脚本里。直接无参数运行可以打印出所有命令的描述。

Usage: hdfs [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]

Hadoop有一个命令行选项解析框架可以像运行class一样解析选项。

命令选项 描述
--config confdir 覆盖默认的配置目录。默认值 $HADOOP_HOME/conf。
GENERIC_OPTIONS 多个命令都支持的通用选项集。完整列表见附录。
COMMAND_OPTIONS 各种命令选项,具体下面会讲到。

用户命令

dfs

  1. Usage: hdfs dfs [GENERIC_OPTIONS] [COMMAND_OPTIONS]

在Hadoop支持的文件系统上运行一个filesystem的命令。The various COMMAND_OPTIONS具体见文件系统shell。

fetchdt

从NameNode获取委托token。

  1. Usage: hdfs fetchdt [GENERIC_OPTIONS] [--webservice <namenode_http_addr>] <path>
命令选项 描述
fileName 存储token的文件名称
--webservice https_address 使用http协议代替RPC

fsck

运行一个HDFS文件系统的检查命令。

  1. Usage: hdfs fsck [GENERIC_OPTIONS] <path> [-list-corruptfileblocks | [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]] [-includeSnapshots]
命令选项 描述
path 开始从这个路径来check
-move 把崩溃的文件移动到/lost+found
-delete 删除崩溃的文件
-files 打印正在检查的文件
-openforwrite 打印已经打开等待写入的文件
-includeSnapshots 如果指定的path是一个snapshottable的目录,或者下面有snapshottable的目录,那么包含snapshot数据
-list-corruptfileblocks 打印丢失的block和文件列表
-blocks 打印block报表
-locations 打印每个block的位置
-racks 打印DataNode的网络拓扑

version

打印版本

  1. Usage: hdfs version

管理命令

这里列出一些有用的管理hadoop集群的命令。

balancer

运行一个集群均衡工具。管理员可以通过Ctrl-C来停止rebalance过程。

  1. Usage: hdfs balancer [-threshold <threshold>] [-policy <policy>]
命令选项 描述
-threshold threshold 磁盘容量的百分比。这个参数会覆盖默认的threshold。
-policy policy datanode (默认策略): 如果每个datanode是balanced,那么集群就是balanced。 blockpool: 如果每个datanode的block pool是balanced,那么集群就是balanced。

注意blockpool策略会比datanode策略更严格。

datanode

运行一个HDFS的datanode。

  1. Usage: hdfs datanode [-regular | -rollback | -rollingupgrace rollback]
命令选项 描述
-regular 普通DataNode启动(默认)
-rollback 回滚DataNode到之前的版本。这个操作应该在停止DataNode并且安装完老hadoop版本后操作。
-rollingupgrade rollback 回滚一个滚动中的升级操作。

dfsadmin

运行一个HDFS dfsadmin的客户端。

  1. Usage: hdfs dfsadmin [GENERIC_OPTIONS]
  2. [-report [-live] [-dead] [-decommissioning]]
  3. [-safemode enter | leave | get | wait]
  4. [-saveNamespace]
  5. [-rollEdits]
  6. [-restoreFailedStorage true|false|check]
  7. [-refreshNodes]
  8. [-setQuota <quota> <dirname>...<dirname>]
  9. [-clrQuota <dirname>...<dirname>]
  10. [-setSpaceQuota <quota> <dirname>...<dirname>]
  11. [-clrSpaceQuota <dirname>...<dirname>]
  12. [-setStoragePolicy <path> <policyName>]
  13. [-getStoragePolicy <path>]
  14. [-finalizeUpgrade]
  15. [-rollingUpgrade [<query>|<prepare>|<finalize>]]
  16. [-metasave filename]
  17. [-refreshServiceAcl]
  18. [-refreshUserToGroupsMappings]
  19. [-refreshSuperUserGroupsConfiguration]
  20. [-refreshCallQueue]
  21. [-refresh <host:ipc_port> <key> [arg1..argn]]
  22. [-printTopology]
  23. [-refreshNamenodes datanodehost:port]
  24. [-deleteBlockPool datanode-host:port blockpoolId [force]]
  25. [-setBalancerBandwidth <bandwidth in bytes per second>]
  26. [-allowSnapshot <snapshotDir>]
  27. [-disallowSnapshot <snapshotDir>]
  28. [-fetchImage <local directory>]
  29. [-shutdownDatanode <datanode_host:ipc_port> [upgrade]]
  30. [-getDatanodeInfo <datanode_host:ipc_port>]
  31. [-triggerBlockReport [-incremental] <datanode_host:ipc_port>]
  32. [-help [cmd]]
命令选项 描述
-report [-live] [-dead] [-decommissioning] 汇报基本的文件系统信息和统计信息。可选的flag用来过滤显示的DataNode列表。
-safemode enter|leave|get|wait 安全模式的管理命令。安全模式下的NameNode状态满足 1. namespace不接受变更(只读)。2. 不复制或者删除block。安全模式会在NameNode启动时自动开启,当配置的最小的block比例满足最小复制条件(minimum replication condition)。安全模式可以手动开启,但是手动开启的安全模式也只能通过手动关闭。
-saveNamespace 保存当前namespace到存储目录下并且reset edits日志。这个参数需要在保护模式下。
-rollEdits 在激活的NameNode下滚动edit日志。
-restoreFailedStorage true|false|check 这个选项会打开/关闭在恢复失败的存储副本时的自动尝试机制。如果一个失败的存储重新恢复可用,系统会在checkpoint阶段尝试恢复edit和/或fsimage。'check'选项会返回当前设置。
-refreshNodes 重新读取hosts和exclude 文件来更新被允许连接NameNode的DataNode。
-setQuota <quota> <dirname>...<dirname> See HDFS Quotas Guide for the detail.
-clrQuota <dirname>...<dirname> See HDFS Quotas Guide for the detail.
-setSpaceQuota <quota> <dirname>...<dirname> See HDFS Quotas Guide for the detail.
-clrSpaceQuota <dirname>...<dirname> See HDFS Quotas Guide for the detail.
-setStoragePolicy <path> <policyName> 设置文件或目录的存储策略
-getStoragePolicy <path> 获取一个文件或目录的存储策略
-finalizeUpgrade 终止升级HDFS。跟随NameNode,DataNode会删除之前版本的工作目录。这会完成升级过程。
-rollingUpgrade [<query>|<prepare>|<finalize>] See Rolling Upgrade document for the detail.
-metasave filename 保存NameNode的主要数据结构到hadoop.log.dir配置声明的目录文件名。文件名如果存在会被覆盖。文件名包含以下内容:1. DataNode和NameNode的心跳。2. 等待复制的block。3. 当前正在复制的block。4. 等待被删除的block。
-refreshServiceAcl reload服务层授权policy文件。
-refreshUserToGroupsMappings 刷新user和group的映射。
-refreshSuperUserGroupsConfiguration 刷新超级用户代理group的映射。
-refreshCallQueue 从配置里reload调用队列。
-refresh <host:ipc_port> <key> [arg1..argn] 触发一个运行时刷新,该刷新作用在<host:ipc_port>上被<key>声明的资源。所有后面的args参数用来发送给host。
-printTopology 打印rack树和rack下的节点。
-refreshNamenodes datanodehost:port 对于给定的DataNode,重新加载配置文件,停止服务那些已经移除的block-pool并且开始服务新的block-pool。
-deleteBlockPool datanode-host:port blockpoolId [force] 如果force参数被设置,在指定DataNode上的指定blockpool id的block pool目录会被删除,同时删除的还有它的内容,如果不设置force参数,那么只有目录为空时才会被删除。如果DataNode仍在服务这个blockpool,那么这个命令会失败。参考refreshNamenodes的参数来关闭一个DataNode的block pool。
-setBalancerBandwidth <bandwidth in bytes per second> 改变每个DataNode的网络带宽,这个带宽是用来HDFS block balancing的。 <bandwidth> 是每个DataNode每秒可用的最大字节数。这个值会覆盖dfs.balance.bandwidthPerSec配置参数。注意:新值是不会持久化到DataNode上的。
-allowSnapshot <snapshotDir> 允许一个目录的snapshot被创建。如果这个操作成功完成,那么对应目录变为snapshottable。
-disallowSnapshot <snapshotDir> 禁止一个目录的snapshot被创建。在禁止快照之前,该目录的所有快照必须被删除。
-fetchImage <local directory> 从NameNode上下载最近的fsimage到指定的本地目录。
-shutdownDatanode <datanode_host:ipc_port> [upgrade] 对指定的DataNode提交一个关机请求。See Rolling Upgrade document for the detail.
-getDatanodeInfo <datanode_host:ipc_port> 获取指定DataNode的信息。See Rolling Upgrade document for the detail.
-triggerBlockReport [-incremental] <datanode_host:ipc_port> 为指定DataNode触发一个block 报告。如果incremental被设置的话,会是一个增量的报告,否则做全量的block报告。
-help [cmd] 显示对应命令的帮助信息,如果不声明则显示所有的帮助。

mover

运行数据迁移工具。See Mover for more details.

  1. Usage: hdfs mover [-p <files/dirs> | -f <local file name>]
命令选项 描述
-p <files/dirs> 声明一个空格分隔的HDFS目录或文件列表来指定迁移的目标。
-f <local file> 声明一个包含HDFS目录或文件列表的本地文件来指定迁移的目标。

注意,如果-p和-f选项都不设置,默认路径是root目录。

namenode

运行NameNode。更多信息可以看升级回滚

  1. Usage: hdfs namenode [-backup] |
  2. [-checkpoint] |
  3. [-format [-clusterid cid ] [-force] [-nonInteractive] ] |
  4. [-upgrade [-clusterid cid] [-renameReserved<k-v pairs>] ] |
  5. [-upgradeOnly [-clusterid cid] [-renameReserved<k-v pairs>] ] |
  6. [-rollback] |
  7. [-rollingUpgrade <downgrade|rollback> ] |
  8. [-finalize] |
  9. [-importCheckpoint] |
  10. [-initializeSharedEdits] |
  11. [-bootstrapStandby] |
  12. [-recover [-force] ] |
  13. [-metadataVersion ]
命令选项 描述
-backup 启动备份节点
-checkpoint 启动checkpoint节点
-format [-clusterid cid] [-force] [-nonInteractive] 格式化指定的NameNode。它会启动NameNode,然后格式化,最后关闭。 -force选项在名字目录存在时格式化。-nonInteractive选项会让操作在名字目录存在时退出,除非声明了-force。
-upgrade [-clusterid cid] [-renameReserved<k-v pairs>] 在安装了新版本的hadoop后,NameNode应该使用这个选项启动。
-upgradeOnly [-clusterid cid] [-renameReserved] 升级指定的NameNode,结束后关闭。
-rollback 回滚NameNode到之前版本。这个参数要在关闭集群并且安装了老的版本的Hadoop后启动。
-rollingUpgrade <downgrade|rollback|started> See Rolling Upgrade document for the detail.
-finalize finalize参数会文件系统之前的状态。最近的一次升级会变为永久态。rollback选项不再有效。在finalization结束后会关闭NameNode。
-importCheckpoint 从checkpoint目录加载镜像并且保存到当前状态。checkpoint目录由fs.checkpoint.dir指定。
-initializeSharedEdits 格式化一个新shard作为edits的目录,把尽可能多的edit日志碎片拷贝过来以便一个就绪的NameNode可以启动。
-bootstrapStandby 允许通过从激活的NameNode拷贝最新的namespace快照来使就绪的NameNode的存储目录被启动。这个命令被用来第一次配置一个HA集群。
-recover [-force] 恢复一个崩溃文件系统丢失的元数据。更多信息见HDFS的一些概念
-metadataVersion 校验配置的目录是否存在并且打印软件和镜像的元数据版本。

secondarynamenode

运行HDFS的Secondary NameNode。更多信息见Secondary NameNode

  1. Usage: hdfs secondarynamenode [-checkpoint [force]] | [-format] | [-geteditsize]
命令选项 描述
-checkpoint [force] 如果edit日志的大小大于等于fs.checkpoint.size,那么启动Secondary NameNode的checkpoint。如果force选项启用,那么无论edit日志的大小如何,都启动checkpoint过程.
-format 在启动时格式化本地存储。
-geteditsize 打印在NameNode上未checkpoint的transaction数量。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注