天天看点

[HDFS Manual] CH3 HDFS Commands GuideHDFS Commands Guide

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956858">HDFS Commands Guide</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956859">3.1概述</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956860">3.2 用户命令</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956861">3.2.1 classpath</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956862">3.2.2 dfs</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956863">3.2.3 envvars</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956864">3.2.4 fetchdt</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956865">3.2.5 fsck</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956866">3.2.6 getconf</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956867">3.2.7 groups</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956868">3.2.8 httpfs</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956869">3.2.9 lsSnapshottableDir</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956870">3.2.10 jmxget</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956871">3.2.11 oev</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956872">3.2.12 oiv</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956873">3.2.13 oiv_legacy</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956874">3.2.14 snapshotDiff</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956875">3.2.15 version</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956876">3.3 管理命令</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956877">3.3.1 balancer</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956878">3.3.2 cacheadmin</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956879">3.3.3 crypto</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956880">3.3.4 datanode</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956881">3.3.5 dfsadmin</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956882">3.3.6 diskbalancer</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956883">3.3.7 ec</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956884">3.3.8 haadmin</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956885">3.3.9 journalnode</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956886">3.3.10 mover</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956887">3.3.11 namenode</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956888">3.3.12 nfs3</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956889">3.3.13 portmap</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956890">3.3.14 secondarynamenode</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956891">3.3.15 storagepolicies</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956892">3.3.16 zkfc</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956893">3.4 Debug command</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956894">3.4.1 verifyMeta</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956895">3.4.2 computeMeta</a>

<a href="http://www.cnblogs.com/Amaranthus/p/8578715.html#_Toc508956896">3.4.3 recoverLesse</a>

所有HDFS命令都是用hdfs调用。运行hdfs可以输出所有的命令。

语法:hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS]

Hadoop 有一些通用的选项:

COMMAND_OPTIONS

Description

SHELL_OPTIONS

GENERIC_OPTIONS

COMMAND COMMAND_OPTIONS

用于用户hadoop cluster

语法:hdfs classpath [--glob |--jar &lt;path&gt; |-h |--help]

COMMAND_OPTION

--glob

expand wildcards

--jar path

Classpath指向一个jar包

-h, --help

print help

打印classpath需要获取hadoop的jar包并且需要的lib。如果调用不带参数,会输出命令脚本setup的classpath,classpath包含了通配符。其他的选项打印classpath通配符扩展后的classpath,或者把classpath写入到jar包的manifest。

语法:hdfs dfs [COMMAND [COMMAND_OPTIONS]]

语法:hdfs envvars

输出hadoop环境变量

语法hdfs fetchdt &lt;opts&gt; &lt;token_file_path&gt;

--webservice NN_Url

连接到nn的url(starts with http or https)

--renewer name

刷新nameoftoken

--cancel

取消token

--renew

刷新token,token必须已经通过fetched–renewername获取

--print

打印token

token_file_path

保存token的路径

  hdfs fsck &lt;path&gt;

          [-list-corruptfileblocks |

          [-move | -delete | -openforwrite]

          [-files [-blocks [-locations | -racks | -replicaDetails | -upgradedomains]]]

          [-includeSnapshots] [-showprogress]

          [-storagepolicies] [-maintenance]

          [-blockId &lt;blk_Id&gt;]

path

开始检查这个路径

-delete

删除损坏的文件

-files

打印已经被检查的文件

-files -blocks

打印blockreport

-files -blocks -locations

打印每个block的位置

-files -blocks -racks

打印datanode位置的拓扑

-files -blocks -replicaDetails

打印每个副本的细节

-files -blocks -upgradedomains

打印每个block的upgradedomain

-includeSnapshots

如果path或者子目录表明了快照表目录,快照表目录包含了快照数据

-list-corruptfileblocks

打印丢失的块或者文件

-move

移动损坏的文件到/lost+found

-openforwrite

以写入方式打开的文件

-showprogress

Print out dots for progress in output. Default is OFF (no progress).

-storagepolicies

输出块的存储策略

-maintenance

输出维护的node状态细节

-blockId

输出块的信息

   hdfs getconf -namenodes

   hdfs getconf -secondaryNameNodes

   hdfs getconf -backupNodes

   hdfs getconf -includeFile

   hdfs getconf -excludeFile

   hdfs getconf -nnRpcAddresses

   hdfs getconf -confKey [key]

-namenodes

获取集群的namenodes

-secondaryNameNodes

获取集群的secondarynamenodes

-backupNodes

获取集群的backupnodes

-includeFile

允许Datanode join到集群的文件列表

-excludeFile

不允许datanodejoin到集群的文件列表

-nnRpcAddresses

namenode rpc 地址

-confKey [key]

从配置文件中获取指定的key

hdfs groups [username ...]

返回给定用户或多个用户的group信息。

hdfs httpfs

启动httpfs服务,HDFS HTTP网关

hdfs lsSnapshottableDir [-help]

获取snapshottable目录。当以super user用户运行,会返回所有的snapshottable目录。否则范围属于该用户所有的目录。

hdfs jmxget [-localVM ConnectorURL | -port port | -server mbeanserver | -service service]

-help

-localVM ConnectorURL

connect to the VM on the same machine

-port mbean server port

specify mbean server port, if missing it will try to connect to MBean Server in the same VM

-server

specify mbean server (localhost by default)

-service NameNode|DataNode

specify jmx service. NameNode by default.

Dump 服务的jmx信息

hdfs oev [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE

输入:

-i,--inputFile arg

edits file to process, xml 后缀表示xml文件,任何其他文件名表示bianry文件

-o,--outputFile arg

输出的文件名. 如果文件已经存在,那么就会被覆盖,文件的格式由-p决定。

选项:

-f,--fix-txids

重新编号事务id,修复gap或者不可用的事务id

-h,--help

显示使用的信息并且退出

-r,--recover

当读取binary edit log,使用恢复模式。可以让你有机会跳过editlog的错误部分

-p,--processor arg

选择使用什么处理器来应用imagefile,当前支持的处理器:bianry(hadoop使用的binary文件格式),

xml,stats(输出 edit file 统计信息)

-v,--verbose

Verbose输出,打印输入和输出的文件,对于处理器输出到文件的也会输出到屏幕。

在large image文件会动态的增加处理时间

hdfs oiv [OPTIONS] -i INPUT_FILE

-i|--inputFile input file

指定输入的fsimage文件

-o,--outputFile output file

指定output文件名,如果指定的输出一个,如果文件已经存在就会被覆盖。

如果输入的是xml文件会创建一个md5

-p,--processor processor

指定一个image处理器应用image文件。当前可以用的选项web(默认),xml,delimited,

filedistribution和ReverseXML。

-addr address

指定监听的地址. (localhost:5978 by default).选项使用webprocessor

-maxSize size

指定被分析的文件的大小范围[0-maxsize],这个选项用来FileDistribution processor

-step size

指定分布的粒度默认为2MB,用于FileDistribution processor

-format

格式化输出的结果为可读的方式,而不是一些字节。默认false。用与FileDistribution processor

-delimiter arg

String边界,用于Delimited processor

-t,--temp temporary dir

使用临时目录来保存中间结果来生成Delimited输出。如果没有set.

Delimited processor 在输出文本前在在内存中构造namespace

输出帮助

hdfs oiv_legacy [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE

-i,--inputFile input file

指定input fsimage 文件处理

指定输出的文件,如果指定就会输出一个. 如果文件已经存在会被覆盖.

选项

-p|--processor processor

指定image处理器来应用image文件。选项Ls默认,XML,Delimited,indented,filedistribution

和namedistribution

-skipBlocks

文件中不枚举不可用不可用的block。会减少处理时间和输出文件大小。

Ls处理器读取block来正确的决定文件大小并忽略这个选项。

-printToScreen

和输出的文件的内容一样,输出到屏幕。在极巨大的命名空间,会增加处理时间。

当使用delimited处理器,替换默认的tab分隔为参数

-h|--help

输出帮助信息

老的hadoop的hodoop offline image viewer

hdfs snapshotDiff &lt;path&gt; &lt;fromSnapshot&gt; &lt;toSnapshot&gt;

确定HDFS快照的不同。

Hdfs version

输出版本号

Hadoop cluster的管理命令

hdfs balancer

          [-policy &lt;policy&gt;]

          [-threshold &lt;threshold&gt;]

          [-exclude [-f &lt;hosts-file&gt; | &lt;comma-separated list of hosts&gt;]]

          [-include [-f &lt;hosts-file&gt; | &lt;comma-separated list of hosts&gt;]]

          [-source [-f &lt;hosts-file&gt; | &lt;comma-separated list of hosts&gt;]]

          [-blockpools &lt;comma-separated list of blockpool ids&gt;]

          [-idleiterations &lt;idleiterations&gt;]

          [-runDuringUpgrade]

-policy &lt;policy&gt;

datanode (default): 如果datanode是均衡的,那么集群就是均衡的.

blockpool: 如果blockpool在每个datanode上是均衡的,集群就是均衡的

-threshold &lt;threshold&gt;

磁盘容量的百分比。会覆盖默认的阀值

-exclude -f &lt;hosts-file&gt; | &lt;comma-separated list of hosts&gt;

均衡排除这些datanode

-include -f &lt;hosts-file&gt; | &lt;comma-separated list of hosts&gt;

只有这些datanode会被均衡

-source -f &lt;hosts-file&gt; | &lt;comma-separated list of hosts&gt;

指定datanode作为sourcenode

-blockpools &lt;comma-separated list of blockpool ids&gt;

均衡器只会运行在这些blockpool

-idleiterations &lt;iterations&gt;

退出前最大的限制迭代。默认是5

-runDuringUpgrade

是否在HDFS更新的时候进行均衡。通常是不会的,在空间被过度利用的设备上不会有影响

Blockpool策略比datanode更加严格。

在上面说的选项之外,2.7开始加入了pinning功能来防止均衡器移动副本。这个pinning特性默认是禁用的。可以通过dfs.datanode.block-pinning.enabled启动。当启动,这个特性只会影响写入到favored node,通过create()被调用。当想要在本地维护数据的话这个特性很有用,特别是HBase Regionserver的应用。

hdfs cacheadmin [-addDirective -path &lt;path&gt; -pool &lt;pool-name&gt; [-force] [-replication &lt;replication&gt;] [-ttl &lt;time-to-live&gt;]]

hdfs cacheadmin [-modifyDirective -id &lt;id&gt; [-path &lt;path&gt;] [-force] [-replication &lt;replication&gt;] [-pool &lt;pool-name&gt;] [-ttl &lt;time-to-live&gt;]]

hdfs cacheadmin [-listDirectives [-stats] [-path &lt;path&gt;] [-pool &lt;pool&gt;] [-id &lt;id&gt;]]

hdfs cacheadmin [-removeDirective &lt;id&gt;]

hdfs cacheadmin [-removeDirectives -path &lt;path&gt;]

hdfs cacheadmin [-addPool &lt;name&gt; [-owner &lt;owner&gt;] [-group &lt;group&gt;] [-mode &lt;mode&gt;] [-limit &lt;limit&gt;] [-maxTtl &lt;maxTtl&gt;]]

hdfs cacheadmin [-modifyPool &lt;name&gt; [-owner &lt;owner&gt;] [-group &lt;group&gt;] [-mode &lt;mode&gt;] [-limit &lt;limit&gt;] [-maxTtl &lt;maxTtl&gt;]]

hdfs cacheadmin [-removePool &lt;name&gt;]

hdfs cacheadmin [-listPools [-stats] [&lt;name&gt;]]

hdfs cacheadmin [-help &lt;command-name&gt;]

  hdfs crypto -createZone -keyName &lt;keyName&gt; -path &lt;path&gt;

  hdfs crypto -listZones

  hdfs crypto -provisionTrash -path &lt;path&gt;

  hdfs crypto -help &lt;command-name&gt;

hdfs datanode [-regular | -rollback | -rollingupgrade rollback]

-regular

正常启动datanode(default).

-rollback

回退datanode到之前的版本

-rollingupgrade rollback

回滚更新操作.

hdfs dfsadmin [-report [-live] [-dead] [-decommissioning] [-enteringmaintenance] [-inmaintenance]]

    hdfs dfsadmin [-safemode enter | leave | get | wait | forceExit]

    hdfs dfsadmin [-saveNamespace [-beforeShutdown]]

    hdfs dfsadmin [-rollEdits]

    hdfs dfsadmin [-restoreFailedStorage true |false |check]

    hdfs dfsadmin [-refreshNodes]

    hdfs dfsadmin [-setQuota &lt;quota&gt; &lt;dirname&gt;...&lt;dirname&gt;]

    hdfs dfsadmin [-clrQuota &lt;dirname&gt;...&lt;dirname&gt;]

    hdfs dfsadmin [-setSpaceQuota &lt;quota&gt; [-storageType &lt;storagetype&gt;] &lt;dirname&gt;...&lt;dirname&gt;]

    hdfs dfsadmin [-clrSpaceQuota [-storageType &lt;storagetype&gt;] &lt;dirname&gt;...&lt;dirname&gt;]

    hdfs dfsadmin [-finalizeUpgrade]

    hdfs dfsadmin [-rollingUpgrade [&lt;query&gt; |&lt;prepare&gt; |&lt;finalize&gt;]]

    hdfs dfsadmin [-refreshServiceAcl]

    hdfs dfsadmin [-refreshUserToGroupsMappings]

    hdfs dfsadmin [-refreshSuperUserGroupsConfiguration]

    hdfs dfsadmin [-refreshCallQueue]

    hdfs dfsadmin [-refresh &lt;host:ipc_port&gt; &lt;key&gt; [arg1..argn]]

    hdfs dfsadmin [-reconfig &lt;namenode|datanode&gt; &lt;host:ipc_port&gt; &lt;start |status |properties&gt;]

    hdfs dfsadmin [-printTopology]

    hdfs dfsadmin [-refreshNamenodes datanodehost:port]

    hdfs dfsadmin [-getVolumeReport datanodehost:port]

    hdfs dfsadmin [-deleteBlockPool datanode-host:port blockpoolId [force]]

    hdfs dfsadmin [-setBalancerBandwidth &lt;bandwidth in bytes per second&gt;]

    hdfs dfsadmin [-getBalancerBandwidth &lt;datanode_host:ipc_port&gt;]

    hdfs dfsadmin [-fetchImage &lt;local directory&gt;]

    hdfs dfsadmin [-allowSnapshot &lt;snapshotDir&gt;]

    hdfs dfsadmin [-disallowSnapshot &lt;snapshotDir&gt;]

    hdfs dfsadmin [-shutdownDatanode &lt;datanode_host:ipc_port&gt; [upgrade]]

    hdfs dfsadmin [-evictWriters &lt;datanode_host:ipc_port&gt;]

    hdfs dfsadmin [-getDatanodeInfo &lt;datanode_host:ipc_port&gt;]

    hdfs dfsadmin [-metasave filename]

    hdfs dfsadmin [-triggerBlockReport [-incremental] &lt;datanode_host:ipc_port&gt;]

    hdfs dfsadmin [-listOpenFiles]

hdfs dfsadmin [-help [cmd]]

-report [-live] [-dead] [-decommissioning] [-enteringmaintenance][-inmaintenance]

报告文件系统信息基本信息和统计信息,dfs使用和du不同,因为在所有datanode上测量replication,checksum,shapshots等等的原始空间。选项可以过滤显示的datanode

-safemode enter|leave|get|wait|forceExit

Safe mode维护命令. Safe mode是namenode的状态

1. 不能修改namespace

2.不能复制,删除 blocks. 

Safemode在namenode启动的时候自动进入,,并且当配置的最小block安全比率满足之后会自动离开。如果namenode发现任何异常就会徘徊在safemode,直到问题解决。如果异常是故意为之的话,可以用命令强制退出safemode,以下情况可能要强制退出:

1.namenode元数据一致性问题。如果namenode发现元数据被修改,但是超出了边界,那么数据就会丢失,可以使用正确的元数据重启,或者直接退出safemode,但是会丢失数据

2.rollback元数据会被替换,会出现被触发safemode forceExit状态。这个时候需要使用命令强制退出。

Safemode也可以手动进入,但是只能手动退出。

-saveNamespace [-beforeShutdown]

保存当前的namespace到目录中并且重置editlog。需要safemode。如果使用了beforeshutdown选项,namenode在一个时间窗口内没有执行checkpoint下,会执行一个checkpoint.在关闭前运行,可以防止潜在的fsimage或者editlog的损坏.

-rollEdits

Rolls the edit log on the active NameNode.

-restoreFailedStorage true|false|check

这个操作会自动打开和关闭来恢复保存的副本。如果一个错误的存储变的可用,系统会尝试在checkpoint的时候恢复fsiamge和editlog。Check选项返回当前设置。

-refreshNodes

重新读取host和excludefile的namenode重新对namenode上下线。

-setQuota &lt;quota&gt; &lt;dirname&gt;…&lt;dirname&gt;

-clrQuota &lt;dirname&gt;…&lt;dirname&gt;

-setSpaceQuota &lt;quota&gt; [-storageType &lt;storagetype&gt;] &lt;dirname&gt;…&lt;dirname&gt;

-clrSpaceQuota [-storageType &lt;storagetype&gt;] &lt;dirname&gt;…&lt;dirname&gt;

-finalizeUpgrade

完成hdfs更新。Datanode会删除之之前版本的working目录。

-rollingUpgrade [&lt;query&gt;|&lt;prepare&gt;|&lt;finalize&gt;]

-refreshServiceAcl

Reload the service-level authorization policy file.

-refreshUserToGroupsMappings

Refresh user-to-groups mappings.

-refreshSuperUserGroupsConfiguration

Refresh superuser proxy groups mappings

-refreshCallQueue

Reload the call queue from config.

-refresh &lt;host:ipc_port&gt; &lt;key&gt; [arg1..argn]

Triggers a runtime-refresh of the resource specified by &lt;key&gt; on &lt;host:ipc_port&gt;. All other args after are sent to the host.

-reconfig &lt;datanode |namenode&gt; &lt;host:ipc_port&gt; &lt;start|status|properties&gt;

启动重新配置或者获取在线的配置状态,第2个选项指定类型。

-printTopology

Namenode报告节点的机架树结构

-refreshNamenodes datanodehost:port

对于给定的datanoe,重载配置文件, stops serving the removed block-pools and starts serving new block-pools.

-getVolumeReport datanodehost:port

对于给定的datanode,volume report.

-deleteBlockPool datanode-host:port blockpoolId [force]

如果指定了强制,,指定的blockpool id的block pool会被删除,否则只会删除空的目录。如果datanode还是在serving这个block pool那么就会失败。关于关闭block pool可以使用refreshnamenode。

-setBalancerBandwidth &lt;bandwidth in bytes per second&gt;

在HDFS块平衡的时候使用使用的最大带宽,修改网络带宽. &lt;bandwidth&gt; 表示每秒每个datanode的字节数.这个值会覆盖dfs.datanode.balance.bandwidthPerSec. NOTE: 这个值并不会被持久化在datanode

-getBalancerBandwidth&lt;datanode_host:ipc_port&gt;

获取指定datanode的网络带宽。在HDFS块平衡的时候使用的最大带宽。

-fetchImage &lt;local directory&gt;

下载最新的fsimage并保存在本地目录

-allowSnapshot &lt;snapshotDir&gt;

-disallowSnapshot &lt;snapshotDir&gt;

-shutdownDatanode&lt;datanode_host:ipc_port&gt; [upgrade]

-evictWriters&lt;datanode_host:ipc_port&gt;

删除某个datanode的所有写入。如果在下线datanode因为slow writer被挂起的时候很有用。

-getDatanodeInfo&lt;datanode_host:ipc_port&gt;

-metasave filename

保存namenode的primary数据结构到filename,目录在hadoop.log.dir属性中指定。如果已经存在就会被覆盖。Filename会为以下每个保存一行:

1. Datanode和namenode之间的心跳

2. Blocks需要被复制的

3. Blocks 真正在被复制的

4. Blocks 等待被删除的

-triggerBlockReport [-incremental]&lt;datanode_host:ipc_port&gt;

触发一个指定datanode的block report,如果有incremental参数就是增量的否则就是full的

-listOpenFiles

列出namenode当前被打开的文件列表,包含client name和client 设备

-help [cmd]

hdfs diskbalancer

     [-plan &lt;datanode&gt; -fs &lt;namenodeURI&gt;]

     [-execute &lt;planfile&gt;]

     [-query &lt;datanode&gt;]

     [-cancel &lt;planfile&gt;]

     [-cancel &lt;planID&gt; -node &lt;datanode&gt;]

     [-report -node &lt;file://&gt; | [&lt;DataNodeID|IP|Hostname&gt;,...]]

     [-report -node -top &lt;topnum&gt;]

-plan

创建diskbalancer计划

-execute

在datanode上执行指定plan

-query

获取datanode当前diskbalancer状态

-cancel

取消正在运行的plan

-report

报告datanode的卷信息

hdfs ec [generic options]

     [-setPolicy -policy &lt;policyName&gt; -path &lt;path&gt;]

     [-getPolicy -path &lt;path&gt;]

     [-unsetPolicy -path &lt;path&gt;]

     [-listPolicies]

     [-addPolicies -policyFile &lt;file&gt;]

     [-listCodecs]

     [-enablePolicy -policy &lt;policyName&gt;]

     [-disablePolicy -policy &lt;policyName&gt;]

     [-help [cmd ...]]

-setPolicy

设置目录的指定的ErasureCoding 策略

-getPolicy

获取指定目录的 ErasureCoding 策略信息

-unsetPolicy

Unset由setpolicy设置的 ErasureCoding 策略

-listPolicies

列出支持的 ErasureCoding 策略

-addPolicies

添加 erasure coding 策略

-listCodecs

Get the list of supported erasure coding codecs and coders in system

-enablePolicy

Enable an ErasureCoding policy in system

-disablePolicy

Disable an ErasureCoding policy in system

    hdfs haadmin -transitionToActive &lt;serviceId&gt; [--forceactive]

    hdfs haadmin -transitionToStandby &lt;serviceId&gt;

    hdfs haadmin -failover [--forcefence] [--forceactive] &lt;serviceId&gt; &lt;serviceId&gt;

    hdfs haadmin -getServiceState &lt;serviceId&gt;

    hdfs haadmin -getAllServiceState

    hdfs haadmin -checkHealth &lt;serviceId&gt;

    hdfs haadmin -help &lt;command&gt;

-checkHealth

check the health of the given NameNode

-failover

启动2个NameNode的failover

-getServiceState

决定namenode是standby还是active

-getAllServiceState

返回NameNodes的所有状态

-transitionToActive

把指定namenode设置为active (Warning: No fencing is done)

-transitionToStandby

把指定namenode设置为standby (Warning: No fencing is done)

显示帮助信息

hdfs journalnode

hdfs mover [-p &lt;files/dirs&gt; | -f &lt;local file name&gt;]

-f &lt;local file&gt;

指定本地文件里面包含了要移动的文件和目录

-p &lt;files/dirs&gt;

指定需要移动的过个文件和目录

-p或者-f没有指定,默认是root目录。

hdfs namenode [-backup] |

          [-checkpoint] |

          [-format [-clusterid cid ] [-force] [-nonInteractive] ] |

          [-upgrade [-clusterid cid] [-renameReserved&lt;k-v pairs&gt;] ] |

          [-upgradeOnly [-clusterid cid] [-renameReserved&lt;k-v pairs&gt;] ] |

          [-rollback] |

          [-rollingUpgrade &lt;rollback |started&gt; ] |

          [-importCheckpoint] |

          [-initializeSharedEdits] |

          [-bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck] ] |

          [-recover [-force] ] |

          [-metadataVersion ]

-backup

Start backup node.

-checkpoint

Start checkpoint node.

-format [-clusterid cid]

格式化NameNode. 启动NameNode, 初始化然后关闭. 如果目录已经存在或者reformat被禁止,抛出NameNodeFormatException.

-upgrade [-clusterid cid] [-renameReserved &lt;k-v pairs&gt;]

Hadoop新版本更新

-upgradeOnly [-clusterid cid] [-renameReserved &lt;k-v pairs&gt;]

更新指定的 NameNode 然后关闭.

回滚到之前的版本。在安装老的hadoop版本,然后停止集群后运行。

-rollingUpgrade&lt;rollback|started&gt;

-importCheckpoint

从checkpoint目录中加载image,然后保存到current,Checkpoint 目录在dfs.namenode.checkpoint.dir

-initializeSharedEdits

格式化一个新的共享的edit目录,并且复制足够的editlogsegment,这样standbynamendoe可以启动

-bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck]

允许standbynamenode的共享存储目录,从最厚一个namespace中复制快照然后启动。这个在第一次配置HA集群的时候非常有用. 选项-force或 -nonInteractive 和-format 效果类似. -skipSharedEditsCheck 选项跳过edit检查,保证我们需要在共享目录有足够的edit日志,让最后一次checkpoint 启动。

-recover [-force]

-metadataVersion

验证配置的目录存在,然后打印出软件的元数据版本和image

hdfs nfs3

hdfs portmap

hdfs secondarynamenode [-checkpoint [force]] | [-format] | [-geteditsize]

-checkpoint [force]

如果EditLog size &gt;= fs.checkpoint.size对secondarynamenode启动checkpoint. Force,强制checkpoint不管 EditLog size.

在启动时,格式化

-geteditsize

输出namenode uncheckpoint事务的个数

hdfs storagepolicies

      [-listPolicies]

      [-setStoragePolicy -path &lt;path&gt; -policy &lt;policy&gt;]

      [-getStoragePolicy -path &lt;path&gt;]

      [-unsetStoragePolicy -path &lt;path&gt;]

      [-help &lt;command-name&gt;]

hdfs zkfc [-formatZK [-force] [-nonInteractive]]

-formatZK

格式化 Zookeeper 实例. -force: 如果znode 存在对znode格式化. -nonInteractive: 如果znode存在,格式化znode, 除非-force选项被设置.

-h

显示帮助

hdfs debug verifyMeta -meta &lt;metadata-file&gt; [-block &lt;block-file&gt;]

-block block-file

指定nanode决定路径在本地文件系统的路径

-meta metadata-file

指向datanode绝对路径的元数据文件

验证hdfs元数据和block文件。如果block文件被指定,会验证meta和block的checksum

hdfs debug computeMeta -block &lt;block-file&gt; -out &lt;output-metadata-file&gt;

-out output-metadata-file

输出了元数据文件,保存了block文件的checksum

从block文件计算hdfs元数据。如果block文件被指定,就会从block文件计算checksum然后保存到输出的metadata文件

Node:如果block文件有错误,并且一斤覆盖了元数据文件,虽然HDFS显示没有没有问题,但是无法读取数据。Only use as a last measure, and when you are 100% certain the block file is good.

hdfs debug recoverLease -path &lt;path&gt; [-retries &lt;num-retries&gt;]

[-path path]

HDFS用来恢复lease的地址.

[-retries num-retries]

客户端调用recoverlease的次数。默认为1

使用特定的路径来恢复lease。Path必须在hdfs文件系统,默认的重试次数是1

    本文转自 Fanr_Zh 博客园博客,原文链接:http://www.cnblogs.com/Amaranthus/p/8578715.html,如需转载请自行联系原作者