@changedi
2017-02-04T20:49:13.000000Z
字数 7319
阅读 6560
大数据
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 | 各种命令选项,具体下面会讲到。 |
Usage: hdfs dfs [GENERIC_OPTIONS] [COMMAND_OPTIONS]
在Hadoop支持的文件系统上运行一个filesystem的命令。The various COMMAND_OPTIONS具体见文件系统shell。
从NameNode获取委托token。
Usage: hdfs fetchdt [GENERIC_OPTIONS] [--webservice <namenode_http_addr>] <path>
命令选项 | 描述 |
---|---|
fileName | 存储token的文件名称 |
--webservice https_address | 使用http协议代替RPC |
运行一个HDFS文件系统的检查命令。
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的网络拓扑 |
打印版本
Usage: hdfs version
这里列出一些有用的管理hadoop集群的命令。
运行一个集群均衡工具。管理员可以通过Ctrl-C来停止rebalance过程。
Usage: hdfs balancer [-threshold <threshold>] [-policy <policy>]
命令选项 | 描述 |
---|---|
-threshold threshold | 磁盘容量的百分比。这个参数会覆盖默认的threshold。 |
-policy policy | datanode (默认策略): 如果每个datanode是balanced,那么集群就是balanced。 blockpool: 如果每个datanode的block pool是balanced,那么集群就是balanced。 |
注意blockpool策略会比datanode策略更严格。
运行一个HDFS的datanode。
Usage: hdfs datanode [-regular | -rollback | -rollingupgrace rollback]
命令选项 | 描述 |
---|---|
-regular | 普通DataNode启动(默认) |
-rollback | 回滚DataNode到之前的版本。这个操作应该在停止DataNode并且安装完老hadoop版本后操作。 |
-rollingupgrade rollback | 回滚一个滚动中的升级操作。 |
运行一个HDFS dfsadmin的客户端。
Usage: hdfs dfsadmin [GENERIC_OPTIONS]
[-report [-live] [-dead] [-decommissioning]]
[-safemode enter | leave | get | wait]
[-saveNamespace]
[-rollEdits]
[-restoreFailedStorage true|false|check]
[-refreshNodes]
[-setQuota <quota> <dirname>...<dirname>]
[-clrQuota <dirname>...<dirname>]
[-setSpaceQuota <quota> <dirname>...<dirname>]
[-clrSpaceQuota <dirname>...<dirname>]
[-setStoragePolicy <path> <policyName>]
[-getStoragePolicy <path>]
[-finalizeUpgrade]
[-rollingUpgrade [<query>|<prepare>|<finalize>]]
[-metasave filename]
[-refreshServiceAcl]
[-refreshUserToGroupsMappings]
[-refreshSuperUserGroupsConfiguration]
[-refreshCallQueue]
[-refresh <host:ipc_port> <key> [arg1..argn]]
[-printTopology]
[-refreshNamenodes datanodehost:port]
[-deleteBlockPool datanode-host:port blockpoolId [force]]
[-setBalancerBandwidth <bandwidth in bytes per second>]
[-allowSnapshot <snapshotDir>]
[-disallowSnapshot <snapshotDir>]
[-fetchImage <local directory>]
[-shutdownDatanode <datanode_host:ipc_port> [upgrade]]
[-getDatanodeInfo <datanode_host:ipc_port>]
[-triggerBlockReport [-incremental] <datanode_host:ipc_port>]
[-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] | 显示对应命令的帮助信息,如果不声明则显示所有的帮助。 |
运行数据迁移工具。See Mover for more details.
Usage: hdfs mover [-p <files/dirs> | -f <local file name>]
命令选项 | 描述 |
---|---|
-p <files/dirs> |
声明一个空格分隔的HDFS目录或文件列表来指定迁移的目标。 |
-f <local file> |
声明一个包含HDFS目录或文件列表的本地文件来指定迁移的目标。 |
注意,如果-p和-f选项都不设置,默认路径是root目录。
运行NameNode。更多信息可以看升级回滚
Usage: hdfs namenode [-backup] |
[-checkpoint] |
[-format [-clusterid cid ] [-force] [-nonInteractive] ] |
[-upgrade [-clusterid cid] [-renameReserved<k-v pairs>] ] |
[-upgradeOnly [-clusterid cid] [-renameReserved<k-v pairs>] ] |
[-rollback] |
[-rollingUpgrade <downgrade|rollback> ] |
[-finalize] |
[-importCheckpoint] |
[-initializeSharedEdits] |
[-bootstrapStandby] |
[-recover [-force] ] |
[-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 | 校验配置的目录是否存在并且打印软件和镜像的元数据版本。 |
运行HDFS的Secondary NameNode。更多信息见Secondary NameNode
。
Usage: hdfs secondarynamenode [-checkpoint [force]] | [-format] | [-geteditsize]
命令选项 | 描述 |
---|---|
-checkpoint [force] | 如果edit日志的大小大于等于fs.checkpoint.size,那么启动Secondary NameNode的checkpoint。如果force选项启用,那么无论edit日志的大小如何,都启动checkpoint过程. |
-format | 在启动时格式化本地存储。 |
-geteditsize | 打印在NameNode上未checkpoint的transaction数量。 |