[HDFS Manual] CH3 HDFS Commands Guide

HDFS Commands Guide

HDFS Commands Guide

3.1概述

3.2 用户命令

3.2.1 classpath

3.2.2 dfs

3.2.3 envvars

3.2.4 fetchdt

3.2.5 fsck

3.2.6 getconf

3.2.7 groups

3.2.8 httpfs

3.2.9 lsSnapshottableDir

3.2.10 jmxget

3.2.11 oev

3.2.12 oiv

3.2.13 oiv_legacy

3.2.14 snapshotDiff

3.2.15 version

3.3 管理命令

3.3.1 balancer

3.3.2 cacheadmin

3.3.3 crypto

3.3.4 datanode

3.3.5 dfsadmin

3.3.6 diskbalancer

3.3.7 ec

3.3.8 haadmin

3.3.9 journalnode

3.3.10 mover

3.3.11 namenode

3.3.12 nfs3

3.3.13 portmap

3.3.14 secondarynamenode

3.3.15 storagepolicies

3.3.16 zkfc

3.4 Debug command

3.4.1 verifyMeta

3.4.2 computeMeta

3.4.3 recoverLesse

3.1概述

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

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

Hadoop 有一些通用的选项:

COMMAND_OPTIONS

Description

SHELL_OPTIONS

Shell命令选项集合. 命令文档 Commands Manual

GENERIC_OPTIONS

支持多个命令的选项,haddoop命令文档 Commands Manual

COMMAND COMMAND_OPTIONS

这种命令及他们的选项,包括了 User Commands 和 Administration Commands

3.2 用户命令

用于用户hadoop cluster

3.2.1 classpath

语法:hdfs classpath [--glob |--jar <path> |-h |--help]

COMMAND_OPTION

Description

--glob

expand wildcards

--jar path

Classpath指向一个jar包

-h, --help

print help

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

3.2.2 dfs

语法:hdfs dfs [COMMAND [COMMAND_OPTIONS]]

在hadoop支持的文件系统上,运行文件系统命令。各种COMMAND_OPTIONS可以在 File System Shell Guide 查看。

3.2.3 envvars

语法:hdfs envvars

输出hadoop环境变量

3.2.4 fetchdt

语法hdfs fetchdt <opts> <token_file_path>

COMMAND_OPTION

Description

--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的路径

从namenode 获取token,具体查看:fetchdt

3.2.5 fsck

hdfs fsck <path>

[-list-corruptfileblocks |

[-move | -delete | -openforwrite]

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

[-includeSnapshots] [-showprogress]

[-storagepolicies] [-maintenance]

[-blockId <blk_Id>]

COMMAND_OPTION

Description

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文件系统检查工具,具体查看: fsck

3.2.6 getconf

hdfs getconf -namenodes

hdfs getconf -secondaryNameNodes

hdfs getconf -backupNodes

hdfs getconf -includeFile

hdfs getconf -excludeFile

hdfs getconf -nnRpcAddresses

hdfs getconf -confKey [key]

COMMAND_OPTION

Description

-namenodes

获取集群的namenodes

-secondaryNameNodes

获取集群的secondarynamenodes

-backupNodes

获取集群的backupnodes

-includeFile

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

-excludeFile

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

-nnRpcAddresses

namenode rpc 地址

-confKey [key]

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

3.2.7 groups

hdfs groups [username ...]

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

3.2.8 httpfs

hdfs httpfs

启动httpfs服务,HDFS HTTP网关

3.2.9 lsSnapshottableDir

hdfs lsSnapshottableDir [-help]

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

3.2.10 jmxget

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

COMMAND_OPTION

Description

-help

print 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信息

3.2.11 oev

hdfs oev [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE

输入:

COMMAND_OPTION

Description

-i,--inputFile arg

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

-o,--outputFile arg

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

选项:

COMMAND_OPTION

Description

-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文件会动态的增加处理时间

Hadoop offline editlog查看器。具体查看: Offline Edits Viewer Guide

3.2.12 oiv

hdfs oiv [OPTIONS] -i INPUT_FILE

输入:

COMMAND_OPTION

Description

-i|--inputFile input
file

指定输入的fsimage文件

选项:

COMMAND_OPTION

Description

-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

-h,--help

输出帮助

Hadoop offline image viewer查看image文件,查看: Offline Image Viewer Guide

3.2.13 oiv_legacy

hdfs oiv_legacy [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE

COMMAND_OPTION

Description

-i,--inputFile input
file

指定input
fsimage 文件处理

-o,--outputFile output
file

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

选项

COMMAND_OPTION

Description

-p|--processor processor

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

-maxSize size

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

-step size

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

-format

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

-skipBlocks

文件中不枚举不可用不可用的block。会减少处理时间和输出文件大小。
Ls处理器读取block来正确的决定文件大小并忽略这个选项。

-printToScreen

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

-delimiter arg

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

-h|--help

输出帮助信息

老的hadoop的hodoop offline image viewer

3.2.14 snapshotDiff

hdfs snapshotDiff <path> <fromSnapshot>
<toSnapshot>

确定HDFS快照的不同。

3.2.15 version

Hdfs version

输出版本号

3.3 管理命令

Hadoop cluster的管理命令

3.3.1 balancer

hdfs balancer

[-policy <policy>]

[-threshold <threshold>]

[-exclude [-f <hosts-file> | <comma-separated list of hosts>]]

[-include
[-f <hosts-file> | <comma-separated list of hosts>]]

[-source [-f <hosts-file> | <comma-separated list of hosts>]]

[-blockpools <comma-separated list of blockpool ids>]

[-idleiterations <idleiterations>]

[-runDuringUpgrade]

COMMAND_OPTION

Description

-policy <policy>

datanode (default):
如果datanode是均衡的,那么集群就是均衡的.
blockpool: 如果blockpool在每个datanode上是均衡的,集群就是均衡的

-threshold <threshold>

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

-exclude
-f <hosts-file> | <comma-separated list of
hosts>

均衡排除这些datanode

-include
-f <hosts-file> | <comma-separated list of
hosts>

只有这些datanode会被均衡

-source
-f <hosts-file> | <comma-separated list of
hosts>

指定datanode作为sourcenode

-blockpools <comma-separated
list of blockpool ids>

均衡器只会运行在这些blockpool

-idleiterations <iterations>

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

-runDuringUpgrade

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

-h|--help

输出帮助

运行集群均衡器。管理员可以简单的ctlr+c关闭重新均衡。具体可以看 Balancer

Blockpool策略比datanode更加严格。

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

3.3.2 cacheadmin

hdfs cacheadmin [-addDirective -path <path> -pool
<pool-name> [-force] [-replication <replication>] [-ttl
<time-to-live>]]

hdfs cacheadmin [-modifyDirective -id <id> [-path
<path>] [-force] [-replication <replication>] [-pool
<pool-name>] [-ttl <time-to-live>]]

hdfs cacheadmin [-listDirectives [-stats] [-path
<path>] [-pool <pool>] [-id <id>]]

hdfs cacheadmin [-removeDirective <id>]

hdfs cacheadmin [-removeDirectives -path <path>]

hdfs cacheadmin [-addPool <name> [-owner
<owner>] [-group <group>] [-mode <mode>] [-limit
<limit>] [-maxTtl <maxTtl>]]

hdfs cacheadmin [-modifyPool <name> [-owner
<owner>] [-group <group>] [-mode <mode>] [-limit
<limit>] [-maxTtl <maxTtl>]]

hdfs cacheadmin [-removePool <name>]

hdfs cacheadmin [-listPools [-stats] [<name>]]

hdfs cacheadmin [-help <command-name>]

可以查看: HDFS Cache Administration Documentation

3.3.3 crypto

hdfs crypto -createZone -keyName <keyName>
-path <path>

hdfs crypto -listZones

hdfs crypto -provisionTrash -path <path>

hdfs crypto -help <command-name>

查看: HDFS Transparent Encryption Documentation

3.3.4 datanode

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

COMMAND_OPTION

Description

-regular

正常启动datanode(default).

-rollback

回退datanode到之前的版本

-rollingupgrade rollback

回滚更新操作.

3.3.5 dfsadmin

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 <quota>
<dirname>...<dirname>]

hdfs dfsadmin [-clrQuota
<dirname>...<dirname>]

hdfs dfsadmin [-setSpaceQuota
<quota> [-storageType <storagetype>]
<dirname>...<dirname>]

hdfs dfsadmin [-clrSpaceQuota
[-storageType <storagetype>] <dirname>...<dirname>]

hdfs dfsadmin [-finalizeUpgrade]

hdfs dfsadmin [-rollingUpgrade
[<query> |<prepare> |<finalize>]]

hdfs dfsadmin [-refreshServiceAcl]

hdfs dfsadmin [-refreshUserToGroupsMappings]

hdfs dfsadmin
[-refreshSuperUserGroupsConfiguration]

hdfs dfsadmin [-refreshCallQueue]

hdfs dfsadmin [-refresh
<host:ipc_port> <key> [arg1..argn]]

hdfs dfsadmin [-reconfig
<namenode|datanode> <host:ipc_port> <start |status
|properties>]

hdfs dfsadmin [-printTopology]

hdfs dfsadmin [-refreshNamenodes
datanodehost:port]

hdfs dfsadmin [-getVolumeReport
datanodehost:port]

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

hdfs dfsadmin [-setBalancerBandwidth
<bandwidth in bytes per second>]

hdfs dfsadmin [-getBalancerBandwidth
<datanode_host:ipc_port>]

hdfs dfsadmin [-fetchImage <local
directory>]

hdfs dfsadmin [-allowSnapshot
<snapshotDir>]

hdfs dfsadmin [-disallowSnapshot
<snapshotDir>]

hdfs dfsadmin [-shutdownDatanode
<datanode_host:ipc_port> [upgrade]]

hdfs dfsadmin [-evictWriters
<datanode_host:ipc_port>]

hdfs dfsadmin [-getDatanodeInfo
<datanode_host:ipc_port>]

hdfs dfsadmin [-metasave filename]

hdfs dfsadmin [-triggerBlockReport
[-incremental] <datanode_host:ipc_port>]

hdfs dfsadmin [-listOpenFiles]

hdfs dfsadmin [-help [cmd]]

COMMAND_OPTION

Description

-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 <quota>
<dirname>…<dirname>

See HDFS Quotas Guide for the detail.

-clrQuota <dirname>…<dirname>

See HDFS Quotas Guide for the detail.

-setSpaceQuota <quota> [-storageType
<storagetype>] <dirname>…<dirname>

See HDFS Quotas Guide for the detail.

-clrSpaceQuota [-storageType
<storagetype>] <dirname>…<dirname>

See HDFS Quotas Guide for the detail.

-finalizeUpgrade

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

-rollingUpgrade [<query>|<prepare>|<finalize>]

See Rolling Upgrade document for the
detail.

-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 <host:ipc_port>
<key> [arg1..argn]

Triggers a runtime-refresh of the resource specified by
<key> on <host:ipc_port>. All other args after are sent to the
host.

-reconfig <datanode
|namenode> <host:ipc_port> <start|status|properties>

启动重新配置或者获取在线的配置状态,第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 <bandwidth
in bytes per second>

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

-getBalancerBandwidth<datanode_host:ipc_port>

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

-fetchImage <local
directory>

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

-allowSnapshot <snapshotDir>

允许某个目录创建快照。如果操作完成,目录就会变成snapshottable. See
the HDFS Snapshot Documentation for more
information.

-disallowSnapshot <snapshotDir>

禁止这个目录创建快照。目录下的快照必须在禁止前先删除See
the HDFS Snapshot Documentation for more
information.

-shutdownDatanode<datanode_host:ipc_port>
[upgrade]

Submit a shutdown request for the given datanode. See Rolling Upgrade document for the
detail.

-evictWriters<datanode_host:ipc_port>

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

-getDatanodeInfo<datanode_host:ipc_port>

获取指定datanode的信息.
See Rolling Upgrade document for the
detail.

-metasave filename

保存namenode的primary数据结构到filename,目录在hadoop.log.dir属性中指定。如果已经存在就会被覆盖。Filename会为以下每个保存一行:
1. Datanode和namenode之间的心跳
2. Blocks需要被复制的
3. Blocks 真正在被复制的
4. Blocks 等待被删除的

-triggerBlockReport [-incremental]<datanode_host:ipc_port>

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

-listOpenFiles

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

-help [cmd]

输出帮助

3.3.6 diskbalancer

hdfs diskbalancer

[-plan <datanode> -fs
<namenodeURI>]

[-execute <planfile>]

[-query <datanode>]

[-cancel <planfile>]

[-cancel <planID> -node
<datanode>]

[-report -node <file://> |
[<DataNodeID|IP|Hostname>,...]]

[-report -node -top <topnum>]

COMMAND_OPTION

Description

-plan

创建diskbalancer计划

-execute

在datanode上执行指定plan

-query

获取datanode当前diskbalancer状态

-cancel

取消正在运行的plan

-report

报告datanode的卷信息

3.3.7 ec

hdfs ec [generic options]

[-setPolicy -policy
<policyName> -path <path>]

[-getPolicy -path <path>]

[-unsetPolicy -path <path>]

[-listPolicies]

[-addPolicies -policyFile
<file>]

[-listCodecs]

[-enablePolicy -policy
<policyName>]

[-disablePolicy -policy
<policyName>]

[-help [cmd ...]]

COMMAND_OPTION

Description

-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

3.3.8 haadmin

hdfs haadmin -transitionToActive
<serviceId> [--forceactive]

hdfs haadmin -transitionToStandby
<serviceId>

hdfs haadmin -failover [--forcefence]
[--forceactive] <serviceId> <serviceId>

hdfs haadmin -getServiceState
<serviceId>

hdfs haadmin -getAllServiceState

hdfs haadmin -checkHealth
<serviceId>

hdfs haadmin -help <command>

COMMAND_OPTION

Description

-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)

 

-help [cmd]

显示帮助信息

 

可以查看 HDFS HA with NFS 和 HDFS HA with QJM

3.3.9 journalnode

hdfs journalnode

启动journalnode,具体看 HDFS HA with QJM

3.3.10 mover

hdfs mover [-p <files/dirs> | -f <local file
name>]

COMMAND_OPTION

Description

-f <local
file>

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

-p <files/dirs>

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

执行数据迁移工具。查看 Mover

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

3.3.11 namenode

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 <rollback |started> ] |

[-importCheckpoint] |

[-initializeSharedEdits] |

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

[-recover [-force] ] |

[-metadataVersion ]

COMMAND_OPTION

Description

-backup

Start backup node.

-checkpoint

Start checkpoint node.

-format [-clusterid
cid]

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

-upgrade [-clusterid
cid] [-renameReserved <k-v pairs>]

Hadoop新版本更新

-upgradeOnly [-clusterid
cid] [-renameReserved <k-v pairs>]

更新指定的
NameNode 然后关闭.

-rollback

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

-rollingUpgrade<rollback|started>

See Rolling Upgrade document for the
detail.

-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]

从损坏的文件系统中恢复出元数据See HDFS User Guide for the detail.

-metadataVersion

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

3.3.12 nfs3

hdfs nfs3

启动NFS3
gateway 具体看: HDFS NFS3 Service

3.3.13 portmap

hdfs portmap

启动RPC protmap
具体看: HDFS NFS3 Service

3.3.14 secondarynamenode

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

COMMAND_OPTION

Description

-checkpoint [force]

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

-format

在启动时,格式化

-geteditsize

输出namenode uncheckpoint事务的个数

3.3.15 storagepolicies

hdfs storagepolicies

[-listPolicies]

[-setStoragePolicy -path
<path> -policy <policy>]

[-getStoragePolicy -path
<path>]

[-unsetStoragePolicy -path
<path>]

[-help <command-name>]

输出所有/gets/sets/unsets存储策略。查看 HDFS Storage Policy Documentation

3.3.16 zkfc

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

COMMAND_OPTION

Description

-formatZK

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

-h

显示帮助

3.4 Debug command

3.4.1 verifyMeta

hdfs debug verifyMeta -meta <metadata-file> [-block
<block-file>]

COMMAND_OPTION

Description

-block block-file

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

-meta metadata-file

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

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

3.4.2 computeMeta

hdfs debug computeMeta -block <block-file> -out
<output-metadata-file>

COMMAND_OPTION

Description

-block block-file

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

-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.

3.4.3 recoverLesse

hdfs debug recoverLease -path <path> [-retries
<num-retries>]

COMMAND_OPTION

Description

[-path path]

HDFS用来恢复lease的地址.

[-retries num-retries]

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

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

上一篇:写一个简单的 Linux Shell (C++)


下一篇:[HDFS Manual] CH2 HDFS Users Guide