1、前言
本文写于2018年02月份,以当前HDFS版本2.9.0为主,主要参考为官方文档,其中加入了一些自己的理解,如有不对之处,还请多多指教,感谢!
所有HDFS命令都可以用bin/hdfs脚本调用。不带任何参数运行hdfs脚本将打印所有命令的描述信息。
用法:hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS]
Hadoop有一个选项解析框架,它会去解析选项,并运行其对应的类方法。
命名选项 | 描述 |
---|---|
–config –loglevel | 常用的一组shell选项。这些记录在“命令手册”页面上。 |
GENERIC_OPTIONS | 多个命令支持的一组常用选项。有关更多信息,请参阅Hadoop命令手册 |
COMMAND COMMAND_OPTIONS | 以下各节介绍了各种命令及其选项。这些命令分为两组,用户命令和管理命令。 |
2、用户命令
对hadoop集群用户有帮助的命令。
classpath
用法: hdfs classpath [--glob |--jar <path> |-h |--help]
命名选项 | 描述 |
---|---|
–glob | 扩展通配符 |
–jar path | 将类路径写入mainfest中,并生成一个jar包 |
该命令主要为打印Hadoop jar中所加载的类路径。如果不带参数调用,则打印由命令脚本中所有配置的类路径。路径中包含分隔符。另外一个选项是,将classpath写入到mainfest中,生成一个jar包,这个命令是很有用的,尤其是当类太多时,控制台无法完整打印时。
dfs
用法: hdfs dfs [COMMAND [COMMAND_OPTIONS]]
在HDFS上运行文件操作相关命令。COMMAND_OPTIONS选项可以在页面File System Shell Guide上找到。
fetchdt
用法: hdfs fetchdt <opts> <token_file_path>
命名选项 | 描述 |
---|---|
–webservice NN_Url | 与NameNode连接的地址(以http或https开头) |
–renewer name | 令牌更新者的名称 |
–cancel | 取消委派令牌 |
–renew | 续订授权令牌。委托令牌必须使用-renewer name 选项获取。 |
打印授权令牌信息 | |
token_file_path | 指定令牌存储的文件路径 |
该命令主要从从NameNode获取授权令牌。有关更多信息,请参阅fetchdt。
fsck
用法:
hdfs fsck <path>
[-list-corruptfileblocks |
[-move | -delete | -openforwrite]
[-files [-blocks [-locations | -racks | -replicaDetails | -upgradedomains]]]
[-includeSnapshots]
[-storagepolicies] [-maintenance] [-blockId <blk_Id>]
命名选项 | 描述 |
---|---|
path | 指定路径下进行操作 |
-delete | 删除损坏的文件 |
-files | 打印出正在检查的文件 |
-files -blocks | 打印块报告 |
-files -blocks -locations | 打印每个块的位置 |
-files -blocks -racks | 打印出数据节点位置的网络拓扑 |
-files -blocks -replicaDetails | 打印出每个副本的详细信息 |
-files -blocks -upgradedomains | 为每个块打印升级域 |
-includeSnapshots | 如果指定路径下已经包含快照数据,则包含快照数据。 |
-list-corruptfileblocks | 打印缺失块和文件列表信息 |
-move | 将损坏的文件移至/lost+found目录 |
-openforwrite | 打印正在打开写入的文件 |
-storagepolicies | 打印块的存储策略摘要 |
-maintenance | 打印维护状态节点的详细信息。 |
-blockId | 打印出块的信息 |
运行HDFS文件系统检查工具。更多信息,请参阅fsck。
getconf
hdfs getconf -namenodes
hdfs getconf -secondaryNameNodes
hdfs getconf -backupNodes
hdfs getconf -includeFile
hdfs getconf -excludeFile
hdfs getconf -nnRpcAddresses
hdfs getconf -confKey [key]
命名选项 | 描述 |
---|---|
-namenodes | 获取集群中namenode节点列表 |
-secondaryNameNodes | 获取集群中secondaryNameNode节点列表 |
-backupNodes | 获取群集中备份节点的列表 |
-includeFile | 获取dfs.hosts文件路径,该文件中定义了可以加入集群的数据节点列表 |
-excludeFile | 获取dfs.exclude文件路径,该文件中定义了不加入集群的数据节点列表 |
-nnRpcAddresses | 获取namenode rpc地址 |
-confKey [key] | 从配置获取特定的密钥 |
该命令主要从配置目录获取配置信息,进行后续处理。
groups
用法: hdfs groups [username ...]
返回一个或多个用户的组信息。
lsSnapshottableDir
用法: hdfs lsSnapshottableDir [-help]
命名选项 | 描述 |
---|---|
-help | 打印帮助信息 |
获取快照目录的列表。如果以超级用户的身份运行时,它会返回所有可快照的目录。否则,它只会返回当前用户所拥有的快照目录。
jmxget
用法: hdfs jmxget [-localVM ConnectorURL | -port port | -server mbeanserver | -service service]
命名选项 | 描述 |
---|---|
-help | 打印帮助信息 |
-localVM ConnectorURL | 连接到同一台机器上的虚拟机 |
-port mbean server port | 指定mbean服务器端口,如果没有它将尝试连接到同一个VM中的MBean Server |
-server | 指定mbean服务器(默认为localhost) |
-service NameNode|DataNode | 指定jmx服务。 NameNode默认情况下。 |
该命令主要从服务转储JMX信息。
oev
用法: hdfs oev [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE
执行命令必须的参数:
命名选项 | 描述 |
---|---|
–i,–inputFile arg | 输入edits文件,如果是xml后缀,表示XML格式,其他表示二进制。 |
-o,–outputFile arg | 输出文件的名称。如果指定的文件存在,会被覆盖,文件的格式由-p选项确定 |
执行命令可选的参数:
命名选项 | 描述 |
---|---|
-f,–fix-txids | 重置输入edits文件中的transaction IDs |
-h,–help | 显示帮助信息 |
-r,–recover | 使用recovery模式,跳过eidts中的错误记录。 |
-p,–processor arg | 选择对文件应用哪种格式进行处理,当前支持的格式是:二进制(Hadoop使用的本机二进制格式),xml(默认,XML格式),统计信息(打印关于edits文件的统计信息) |
-v,–verbose | 打印更多详细信息,默认为false)。 |
该命令主要用于离线查看edits文件。更多信息,请查看Offline Edits Viewer Guide
oiv
命令hdfs oiv用于将fsimage文件转换成其他格式的进行存储和查看,如文本文件、XML文件。
用法: hdfs oiv [OPTIONS] -i INPUT_FILE
执行命令必须的参数:
命名选项 | 描述 |
---|---|
-i|–inputFile input file | 如果使用ReverseXML处理器)进行处理,需要指定输入fsimage文件(或XML文件) |
执行命令可选的参数:
命名选项 | 描述 |
---|---|
-o,–outputFile output file | 指定输出文件名,如果指定了输出处理器,则会自己生成一个。如果指定的文件已经存在,它将被无提示地覆盖。 (默认情况下输出到stdout)如果输入文件是XML文件,它还会创建 .md5。 |
-p,–processor processor | 指定要应用于映象文件(image file)处理器。目前可选项是Web(默认),XML,分隔符,FileDistribution和ReverseXML。 |
-addr address | 指定要监听的地址(主机:端口)。 (默认为localhost:5978)。该选项与Web处理器一起使用。 |
-maxSize size | 指定要分析的文件大小的范围[0,maxSize](以字节为单位)(默认为128GB)。该选项与FileDistribution处理器一起使用。 |
-step size | 以字节为单位指定分布的粒度(默认为2MB)。该选项与FileDistribution处理器一起使用。 |
-format | 以可读的方式格式化输出结果而不是多个字节。 (默认为false)。该选项与FileDistribution处理器一起使用。 |
-delimiter arg | 分隔字符串以与分隔处理器一起使用。 |
-t,–temp temporary dir | 使用临时目录来缓存中间结果以生成分隔输出。如果未设置,分隔处理器在输出文本之前在内存中构造namespace。 |
-h,–help | 显示工具使用和帮助和退出信息 |
oiv_legacy
用法:hdfs oiv_legacy [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE
命名选项 | 描述 |
---|---|
-i,–inputFile input file | 指定要处理的输入fsimage文件。 |
-o,–outputFile output file | 指定输出文件名,如果指定了输出处理器,则会自动生成一个。如果指定的文件已经存在,它将被无提示地覆盖。 |
执行命令可选的参数:
命名选项 | 描述 |
---|---|
-p|–processor processor | 指定要应用于(image file)映像文件的图像处理器。有效的选项有Ls(默认),XML,分隔符,缩进,FileDistribution和NameDistribution。 |
-maxSize size | 指定要分析的文件大小的范围[0,maxSize](以字节为单位)(默认为128GB)。该选项与FileDistribution处理器一起使用。 |
-step size | 以字节为单位指定分布的粒度(默认为2MB)。该选项与FileDistribution处理器一起使用。 |
-format | 以可读的方式格式化输出结果而不是多个字节。 (默认为false)。该选项与FileDistribution处理器一起使用。 |
-skipBlocks | 不枚举文件中的各个块。当namespaces文件特别大时,这可以节省非常多的时间和空间当。 使用Ls处理器读取块时,将会准备的确认文件大小并忽略此选项。 |
-printToScreen | 处理器输出到控制台以及指定的文件。在非常大的namespaces上,这可能会将处理时间增加一个数量级。 |
-delimiter arg | 与分隔处理器一起使用时,将默认制表符分隔符替换为由arg指定的字符串。 |
-h|–help | 显示工具使用和帮助和退出信息 |
用于旧版本的Hadoop离线image文件查看器,请查看 oiv_legacy Command 更多信息。
snapshotDiff
用法:hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>
用于确认HDFS快照之间的差异。有关更多信息,请参阅 HDFS Snapshot Documentation 文档。
version
用法: hdfs version
打印版本信息。
3、管理命令
对hadoop集群管理员有用的命令。
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]
命名选项 | 描述 |
---|---|
-policy | datanode(默认):如果每个datanode是平衡的,则集群是平衡的。 blockpool:如果每个数据节点中的每个块池均衡,则集群将保持平衡 |
-threshold | 磁盘容量的百分比。这会覆盖默认的阈值。 |
-exclude -f | | 排除指定的数据节点不被平衡器平衡。 |
-include -f | | 仅平衡指定datanode。 |
-source -f | | 只选取指定的datanode作为源节点。 |
-blockpools | 只在列表中包含的blockpools上运行。 |
-idleiterations | 退出前的最大空闲迭代次数。这会覆盖默认值(默认值:5)。 |
-runDuringUpgrade | 集群升级时,是否进行平衡。 |
-h | –help |
运行集群平衡程序时。管理员可以简单地按下Ctrl-C来停止重新平衡过程。有关更多详情,请参阅Balancer。
请注意,数据块控制策略比数据节点的控制策略更严格。
除了上述命令选项外,还从2.7.0开始引入了一个固定功能,以防止某些副本被(balancer/mover)平衡器/移动器移动。此功能在默认情况下处于禁用状态,可通过配置属性“dfs.datanode.block-pinning.enabled”
进行启用。启用后,此功能仅影响写入create()方法调用中指定的有利节点的块。当我们想要维护数据局部性时,这个特性非常有用,适用于HBase regionserver等应用程序。
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文档。
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文档。
datanode
用法: hdfs datanode [-regular | -rollback | -rollingupgrade rollback]
命名选项 | 描述 |
---|---|
-regular | 正常的datanode启动(默认) |
-rollback | 将datanode回滚到以前的版本。使用该命令前,应该停止Datanode,并分发旧的hadoop版本后使用。 |
-rollingupgrade rollback | 回滚滚动升级操作 |
运行HDFS数据节点。
dfsadmin
用法:
hdfs dfsadmin [-report [-live] [-dead] [-decommissioning] [-enteringmaintenance] [-inmaintenance]]
hdfs dfsadmin [-safemode enter | leave | get | wait | forceExit]
hdfs dfsadmin [-saveNamespace]
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]]
命名选项 | 描述 |
---|---|
-report [-live] [-dead] [-decommissioning] [-enteringmaintenance] [-inmaintenance] | 报告基本的文件系统信息和统计信息.dfs与“du”这两个命令统计的结果会不同,因为它可以测量复制,校验和,快照等使用的原始空间。 |
-safemode enter|leave|get|wait|forceExit | 安全模式维护命令。安全模式是Namenode中的其中一个状态:1.不接受对命名空间的更改(只读)2、不会复制或删除块。3、Namenode启动时会自动进入安全模式,当配置的块的最小百分比满足最小复制条件时,会自动离开安全模式。如果Namenode检测到任何异常,那么它将在安全模式下逗留直到问题解决。 如果该异常是特意操作导致的,则管理员可以使用-safemode forceExit退出安全模式。可能需要forceExit的情况是:a、Namenode元数据不一致。如果Namenode检测到元数据已被修改,则Namenode将进入forceExit状态。此时,用户可以去修复这个问题,使用正确的元数据文件或forceExit重新启动Namenode(如果接受数据丢失的情况话)。b、回滚会导致元数据被替换,很少会在Namenode中触发安全模式forceExit状态。在这种情况下,您可以继续执行-safemode forceExit。 安全模式也可以手动执行命令进入,同时也只能手动关闭。 |
-saveNamespace | 将当前命名空间保存到存储目录并重置edits log。该命令需要安全模式。 |
-rollEdits | 在活动的NameNode上滚动编辑日志。 |
-restoreFailedStorage true|false|check | 该选项将打开/关闭自动尝试恢复失败的存储副本。如果失败的存储器变为可用状态,则系统将在检查点期间尝试恢复编辑fsimage文件。’check’选项将返回当前设置。 |
-refreshNodes | 重新读取主机列列表、排除列表以更新允许连接到Namenode的Datanode以及那些应该停用或重试的Datanode |
-setQuota … | 有关详细信息,请参阅HDFS Quotas Guide |
-clrQuota … | 有关详细信息,请参阅HDFS Quotas Guide |
-setSpaceQuota [-storageType ] … | 有关详细信息,请参阅HDFS Quotas Guide |
-clrSpaceQuota [-storageType ] … | 有关详细信息,请参阅HDFS Quotas Guide |
-finalizeUpgrade | 完成HDFS的升级。 Datanodes删除他们以前的版本工作目录,然后Namenode做相同的工作。致辞完成了升级的过程。 |
-rollingUpgrade [||] | 有关详细信息,请参阅Rolling Upgrade document |
-refreshServiceAcl | 重新加载服务级别授权策略文件。 |
-refreshUserToGroupsMappings | 刷新用户到组映射。 |
-refreshSuperUserGroupsConfiguration | 刷新超级用户代理组映射 |
-refreshCallQueue | 从配置重新加载调用队列。 |
-refresh [arg1..argn] | 运行时刷新触发上由指定的资源。所有其他参数都发送给指定主机。 |
-reconfig |
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>
命名选项 | 描述 |
---|---|
-checkHealth | 检查给定NameNode的健康状况 |
-failover | 在两个NameNode之间启动故障转移 |
-getServiceState | 确定给定的NameNode是Active还是Standby |
-getAllServiceState | 返回所有NameNode的状态 |
-transitionToActive | 将给定NameNode的状态转换为Active(警告:fencing还未完成) |
-transitionToStandby | 将给定NameNode的状态转换为Standby(警告:fencing还未完成) |
-help [cmd] | 如果没有指定,则显示给定命令或所有命令的帮助信息。 |
有关此命令的更多信息,请参见使用NFS的HDFS HA和 HDFS HA with QJM 。
journalnode
用法:hdfs journalnode
这个命令会启动HDFS HA with QJM。
mover
用法:hdfs mover [-p <files/dirs> | -f <local file name>]
命名选项 | 描述 |
---|---|
-f | 指定一个包含要迁移的HDFS文件/目录列表的本地文件。 |
-p | 指定要迁移的HDFS文件/目录列表,使用空格作为分隔符。 |
运行数据迁移实用程序。有关更多详情,请参阅Mover。
请注意,如果省略-p和-f选项,则默认路径是根目录。
此外,从2.7.0开始引入了一个固定功能,以防止某些副本被平衡器/移动器移动。此引脚功能在默认情况下处于禁用状态,可通过配置属性“dfs.datanode.block-pinning.enabled”启用。启用后,此功能只影响create()
方法调用中指定的节点的块。当我们想要维护数据局部性时,这个特性非常有用,适用于HBase regionserver等应用程序。
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|downgrade |started> ] |
[-finalize] |
[-importCheckpoint] |
[-initializeSharedEdits] |
[-bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck] ] |
[-recover [-force] ] |
[-metadataVersion ]
命名选项 | 描述 |
---|---|
-backup | 启动备份节点 |
-checkpoint | 启动检查点节点 |
-format [-clusterid cid] | 格式化指定的NameNode。它会启动NameNode,对其进行格式化,最后关闭它。如果目录dir已经存在,并且群集禁用了重新格式化,将抛出NameNodeFormatException。 |
-upgrade [-clusterid cid] [-renameReserved ] | 升级指定的NameNode,然后关闭它。 |
-upgradeOnly [-clusterid cid] [-renameReserved ] | 在发布新的Hadoop版本后,Namenode应该以升级选项启动。 |
-rollback | 将NameNode回滚到以前的版本。这应该在停止集群并分发旧的Hadoop版本后再使用。 |
-rollingUpgrade | 有关详细信息,请参阅Rolling Upgrade document |
-finalize | 不再支持该命令。改为使用dfsadmin -finalizeUpgrade 。 |
-importCheckpoint | 从检查点目录加载image文件并将其保存到当前目录中。检查点目录是从属性dfs.namenode.checkpoint.dir中读取的 |
-initializeSharedEdits | 格式化新的共享编辑目录并复制足够的编辑日志段,以便备用NameNode可以启动。 |
-bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck] | 允许通过复制活动NameNode中的最新命名空间快照来引导备用NameNode的存储目录。这在首次配置HA群集时使用。选项-force或-nonInteractive的含义与namenode -format命令中所述的含义相同。-skipSharedEditsCheck选项跳过编辑检查,确保在共享目录中已有足够的编辑可以从活动上的最后一个检查点启动。 |
-recover [-force] | 在损坏的文件系统上恢复丢失的元数据。详情请参阅HDFS用户指南。 |
-metadataVersion | 验证配置的目录是否存在,然后打印软件和image的元数据版本信息。 |
运行namenode。有关升级,回滚和完成的更多信息,请参阅Upgrade Rollback。
nfs3
用法:hdfs nfs3
这个命令会启动NFS3点网关以便与HDFS NFS3服务一起使用。
portmap
用法:hdfs portmap
这命令会启动RPC portmap用于HDFS NFS3服务
secondarynamenode
用法: hdfs secondarynamenode [-checkpoint [force]] | [-format] | [-geteditsize]
命名选项 | 描述 |
---|---|
-checkpoint [force] | 如果EditLog大小> = fs.checkpoint.size,则Checkpoint SecondaryNameNode。如果使用强制,则不考虑EditLog大小。 |
-format | 在启动期间格式化本地存储。 |
-geteditsize | 在NameNode上打印未勾选事务的数量。 |
运行HDFS secondary namenode. 更多信息,请参阅Secondary Namenode.
storagepolicies
用法:
hdfs storagepolicies
[-listPolicies]
[-setStoragePolicy -path <path> -policy <policy>]
[-getStoragePolicy -path <path>]
[-unsetStoragePolicy -path <path>]
[-help <command-name>]
列出 all/Gets/sets/unsets 存储策略。有关更多信息,请参阅HDFS存储策略文档。
zkfc
用法: hdfs zkfc [-formatZK [-force] [-nonInteractive]]
命名选项 | 描述 |
---|---|
-formatZK | 格式化Zookeeper实例。 -force :如果znode存在,则格式化znode。 -nonInteractive :如果znode存在,则格式化znode中止,除非指定了-force 选项。 |
-h | 显示帮助信息 |
该命令会启动一个Zookeeper Failover Controller进程,以便与HDFS HA with QJM一起使用。
4、调试命令
该组命令终于帮助管理员调试HDFS中出现的问题。这些命令仅适用于高级用户。
verifyMeta
用法: hdfs debug verifyMeta -meta <metadata-file> [-block <block-file>]
命名选项 | 描述 |
---|---|
-block block-file | 可选参数,用于指定数据节点本地文件系统上块文件的绝对路径。 |
-meta metadata-file | 数据节点的本地文件系统上元数据文件的绝对路径。 |
验证HDFS元数据和块文件。如果指定了块文件,将验证元数据文件中的校验和是否与块文件匹配。
computeMeta
用法: hdfs debug computeMeta -block <block-file> -out <output-metadata-file>
命名选项 | 描述 |
---|---|
-block block-file | 数据节点本地文件系统上块文件的绝对路径。 |
-out output-metadata-file | 输出元数据文件的绝对路径,用于存储块文件的校验和计算结果。 |
从块文件中计算HDFS元数据。如果指定了块文件,将计算块文件中的校验和,并将其保存到指定的输出元数据文件中。
意:使用风险该命令存在风险!如果块文件损坏并覆盖它的元文件,它将在HDFS中显示为“良好”,但无法读取数据。只能用作最后一项措施时进行使用,并且当您100%确定该块文件良好时。
recoverLease
用法: hdfs debug recoverLease -path <path> [-retries <num-retries>]
命名选项 | 描述 |
---|---|
[-path path] | 要为其恢复租约的HDFS路径 |
[-retries num-retries] | 客户端将重试调用recoverLease的次数。默认的重试次数是1 |
在指定的路径上恢复租约。路径必须驻留在HDFS文件系统上。默认的重试次数是1。