0006 - Hadoop&HDFS命令指南大全

网友投稿 325 2022-11-22

0006 - Hadoop&HDFS命令指南大全

1 - Hadoop 命令指南

1.1 - archive

创建一个 Hadoop 归档文件,其扩展名是 *.har。创建 archive 是一个 Map/Reduce 任务。

Usage: hadoop archive <-archiveName .har> <-p > [-r ] * -archiveName 归档文件的名称(.har)。 -p 需要归档的父路径,可以有多个源路径。 -r 所需的副本系数(默认为 3)。

示例:

hadoop archive -archiveName foo.har /user/hadoop dir1 dir2 -r 3 /user/zoo/

1.2 - checknative

此命令检查 Hadoop 本机代码的可用性。默认情况下,此命令仅检查 libhadoop 的可用性。

Usage: hadoop checknative [-a] [-h] -a 检查所有库是否可用。 -h 打印帮助。

示例:

hadoop checknative -a

1.3 - conftest

验证配置 XML 文件。

Usage: hadoop conftest [-conffile |-h|--help] -conffile 要验证的配置文件或目录的路径。 如果未指定 -conffile 选项,将验证${HADOOP_CONF_DIR} 中名称以 .xml 结尾的文件。 如果指定,将验证该路径,可以指定文件或目录。如果指定目录,将验证该目录中名称以 .xml 结尾的文件。

1.4 - credential

用于管理凭据提供程序中的凭据、密码和其它的命令。

Usage: hadoop credential [options] [-help] [create [-value alias-value] [-provider provider-path] [-strict]] [delete [-f] [-provider provider-path] [-strict]] [list [-provider provider-path] [-strict]] [check [-value alias-value] [-provider provider-path] [-strict]] create 提示用户将凭据存储为给定的别名。 delete 使用提供的别名删除凭据。 list 列出所有的凭证别名的。 check 检查给定别名的密码。

示例:

hadoop credential list -provider jceks://file/tmp/test.jceks

1.5 - distch

一次更改多个文件的所有权和权限。

Usage: hadoop distch [-f urilist_url] [-i] [-log logdir] path:owner:group:permissions -f 要更改的对象列表。 -i 忽略失败。 -log 记录输出的目录。

1.6 - distcp

distcp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。它使用 Map/Reduce 实现文件分发,错误处理和恢复,以及生成报告。可以指定多个源目录。

Usage: distcp OPTIONS [source_path] -append 具有相同名称但不同长度的文件的增量副本。 -update 如果源和目标文件大小、块大小或校验和不同,则覆盖。 -async 异步运行 distcp。Hadoop 作业启动后立即退出。 -p[rbugpcaxt] 保留权限(r:副本系数;b:块大小;u:用户;g:用户组;p:权限;c:校验和类型;a:ACL;x:XAttr;t:时间戳)。 -m 同时复制的最大数量。 -log 将日志写入。 -f 多个源文件列表。 -i 忽略失败。 ...

示例:

hadoop distcp hdfs://nn1:8020/foo/bar hdfs://nn2:8020/bar/foo hadoop distcp hdfs://nn1:8020/foo/a hdfs://nn1:8020/foo/b hdfs://nn2:8020/bar/foo hadoop distcp distcp -update hdfs://nn1:8020/source/first hdfs://nn1:8020/source/second hdfs://nn2:8020/target # srclist 的内容是 hdfs://nn1:8020/foo/a 和 hdfs://nn1:8020/foo/b hadoop distcp -f hdfs://nn1:8020/srclist hdfs://nn2:8020/bar/foo

1.7 - dtutil

在凭证文件中获取和管理 Hadoop 委托令牌的实用程序。它旨在替换更简单的命令 fetchdt。有多个子命令,每个子命令都有自己的标志和选项。

Usage: hadoop dtutil [-keytab -principal ] subcommand (help|print|get|edit|append|cancel|remove|renew) [-format (java|protobuf)] [-alias ] filename...

hadoop dtutil print [-alias ] filename... hadoop dtutil get URL [-service ] [-format (java|protobuf)][-alias ] [-renewer ] filename hadoop dtutil edit -service -alias [-format (java|protobuf)]filename... hadoop dtutil append [-format (java|protobuf)]filename... hadoop dtutil cancel -alias [-format (java|protobuf)] filename... hadoop dtutil remove -alias [-format (java|protobuf)] filename... hadoop dtutil renew -alias filename... hadoop dtutil import [-alias ] [-format (java|protobuf)] filename

1.8 - fs

该命令在《Hadoop-Shell命令指南大全》有详细说明。当使用 HDFS 时,等同于 hdfs dfs。

1.9 - gridmix

Gridmix 是 Hadoop 集群的基准测试工具。

Usage: hadoop gridmix [-generate ] [-users URI] [-Dname=value ...]

1.10 - jar

通过 MapReduce 运行一个 jar 文件。

Usage: hadoop jar [mainClass] args

示例

hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-examples.jar pi -D mapreduce.job.queuename=root.B 2 10

1.11 - jnipath

打印出的 java.library.path 路径。

Usage: hadoop jnipath

1.12 - kerbname

通过 auth_to_local 规则将命名主体转换为 Hadoop 用户名。

Usage: hadoop kerbname principal

示例

hadoop kerbname user@EXAMPLE.COM

1.13 - kdiag

诊断 Kerberos 问题。

Usage: hadoop kdiag

1.14 - key

通过 KeyProvider 管理密钥。

Usage: hadoop key [options]

示例

# 作为密钥管理员,将密钥滚动到新版本 hadoop key roll exposedKey

1.15 - kms

运行 KMS,即密钥管理服务器。

Usage: hadoop kms

1.16 - trace

查看和修改 Hadoop 跟踪设置。

Usage: hadoop trace [options]

示例

hadoop trace -add -class org.apache.htrace.core.LocalFileSpanReceiver -Chadoop.htrace.local.file.span.receiver.path=/tmp/htrace.out -host 171.16.1.2:9000 hadoop trace -remove 1 -host 171.16.1.2:9000 hadoop trace -list -host 171.16.1.2:9000 hadoop trace -list -host NN1:8020 -principal namenode/NN1@EXAMPLE.COM

1.17 - CLASSNAME

运行名为 CLASSNAME 的类。类必须是包的一部分。

Usage: hadoop CLASSNAME

2 - HDFS 命令指南

2.1 - classpath

打印获取 Hadoop jar 和所需库所需的类路径。如果不带参数调用,则打印由命令脚本设置的类路径,它可能在类路径条目中包含通配符。其它选项在通配符扩展后打印类路径或将类路径写入 jar 文件的清单。后者在不能使用通配符并且扩展的类路径超过支持的最大命令行长度的环境中很有用。

Usage: hdfs classpath [--glob |--jar |-h |--help] --glob 扩展通配符。 --jar 在名为路径的 jar 中将类路径写为清单。 -h, --help 打印帮助。

2.2 - dfs

该命令在《Hadoop-Shell命令指南大全》有详细说明。当使用 Hadoop 时,等同于 hadoop fs。

Usage: hdfs dfs [COMMAND [COMMAND_OPTIONS]]

2.3 - envvars

输出 Hadoop 的环境变量。

Usage: hdfs envvars

示例

hadoop envvars hdfs envvars

2.4 - fetchdt

从 NameNode 获取委托令牌。

Usage: hdfs fetchdt --webservice NN_Url Url 用于联系 NN 的 URL(以 或 开头)。 --renewer name 委托令牌更新者的名称。 --cancel 取消委托令牌。 --renew 续订委托令牌。必须使用 -renewer name 选项获取委托令牌。 --print 打印委托令牌。 token_file_path 存储令牌的文件路径。

2.5 - fsck

运行 HDFS 文件系统的检查工具。

Usage: hdfs fsck [-list-corruptfileblocks | [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks | -replicaDetails | -upgradedomains]]] [-includeSnapshots] [-showprogress] [-storagepolicies] [-maintenance] [-blockId ] [-replicate] path 检查的起始目录。 -delete 删除损坏的文件。 -files 打印出被检查的文件。 -files -blocks 打印出块信息报告。 -files -blocks -locations 打印出每个块的位置信息。 -files -blocks -racks 打印出 data-node 的网络拓扑结构。 -files -blocks -replicaDetails 打印出每个副本的详细信息。 -files -blocks -upgradedomains 打印出每个块的升级域。 -includeSnapshots 如果给定的路径指示一个可快照目录或在其下有可快照目录,则包括快照数据。 -list-corruptfileblocks 打印出它们所属的丢失块和文件的列表。 -move 移动受损文件到 `/lost+found`。 -openforwrite 打印为写入而打开的文件。 -showprogress 已弃用。使用或不使用此开关处理每 100 个文件打印一个点。 -storagepolicies 打印出块的存储策略摘要。 -maintenance 打印维护状态节点详细信息。 -blockId 打印出有关块的信息。 -replicate 启动复制工作,使错误复制的块满足块放置策略。

示例

hdfs fsck /

2.6 - getconf

从配置文件中获取配置信息的工具。

Usage: hdfs getconf [OPTIONS] -namenodes 获取集群中的 NameNodes 节点列表。 -secondaryNameNodes 获取集群中的 SecondaryNameNodes 节点列表。 -backupNodes 获取集群中的 backupNodes 节点列表。 -journalNodes 获取集群中的 journalNodes 节点列表。 -includeFile 获取可以加入集群的 DataNode 节点的包含文件路径。 -excludeFile 获取定义需要退役的 DataNode 节点的排除文件路径。 -nnRpcAddresses 获取 NameNodes RPC 地址。 -confKey [key] 从配置中获取秘钥。

示例

hdfs getconf -namenodes hdfs getconf -secondaryNameNodes hdfs getconf -backupNodes hdfs getconf -journalNodes hdfs getconf -includeFile hdfs getconf -excludeFile hdfs getconf -nnRpcAddresses hdfs getconf -confKey [key]

2.7 - groups

返回给定一个或多个用户名的组信息。

Usage: hdfs groups [username ...]

示例

hdfs groups hdfs

2.8 - HttpFS 服务器,即 HDFS HTTP 网关。

Usage: hdfs - lsSnapshottableDir

获取可快照目录的列表。当它以超级用户身份运行时,返回所有可快照目录。否则,它返回当前用户拥有的那些目录。

Usage: hdfs lsSnapshottableDir [-help]

2.10 - jmxget

从服务获取 JMX 信息。

Usage: hdfs jmxget [-localVM ConnectorURL | -port port | -server mbeanserver | -service service] -help 打印帮助。 -localVM ConnectorURL 连接到同一台机器上的虚拟机。 -port mbean server port 指定 mbean 服务器端口,如果缺少它将尝试连接到同一 VM 中的 MBean 服务器。 -server 指定 mbean 服务器(默认为 localhost)。 -service NameNode|DataNode 指定 jmx 服务。默认为 NameNode。

2.11 - oev

转换查看 Edits 文件

Usage: hdfs oev [OPTIONS] -i INPUTFILE -o OUTPUTFILE -i 要转换的文件。 -o 转换后的文件路径。 -p 转换格式:binary(hadoop 二进制格式), xml(默认 XML 格式), stats(打印关于编辑文件的统计信息)。

示例

hdfs oev -p XML -i edits_inprogress_0000000000087833757 -o ./localdir/edits.xml

2.12 - oiv

转换查看 FsImage 文件。

Usage: hdfs oiv [OPTIONS] -i INPUTFILE -o OUTPUTFILE -i 要转换的文件。 -o 转换后的文件路径。 -p 转换格式(XML|FileDistribution|ReverseXML|Web|Delimited)。

示例

hdfs oiv -p Delimited -i ./localdir/fsimage_0000000000088684994 -o ./localdir/fsimage.csv

2.13 - oiv_legacy

用于旧版本的 Hadoop 离线图像查看器。

Usage: hdfs oiv_legacy [OPTIONS] -i INPUTFILE -o OUTPUTFILE

2.14 - snapshotDiff

确定 HDFS 快照之间的差异。

Usage: hdfs snapshotDiff

2.15 - version

输出 Hadoop 的版本信息。

Usage: hdfs version

示例

hadoop version hdfs version

3 - Admin命名指南

3.1 - balancer

运行集群平衡实用程序。管理员只需按 Ctrl+C 即可停止重新平衡过程。只能使用 HDFS 超级用户执行该命令。

Usage: hdfs balancer [-policy ] [-threshold ] [-exclude [-f | ]] [-include [-f | ]] [-source [-f | ]] [-blockpools ] [-idleiterations ] [-runDuringUpgrade] [-asService]

示例

# 10 为各节点存储的浮动比例 10% 上下浮动 hdfs balancer -threshold 10

3.2 - cacheadmin

管理员和用户可以通过 hdfs cacheadmin 子命令与缓存池和指令进行交互。

Usage: hdfs cacheadmin [-addDirective -path -pool [-force] [-replication ] [-ttl ]] [-modifyDirective -id [-path ] [-force] [-replication ] [-pool ] [-ttl ]] [-listDirectives [-stats] [- path ] [-pool ] [-id ]] [-removeDirective ] [-removeDirectives -path ] [-addPool [- owner ] [-group ] [-mode ] [-limit ] [-maxTtl ]] [-modifyPool [-owner ] [ -group <组>] [-mode <模式>] [-limit ] [-maxTtl ]] [-removePool ] [-listPools [-stats] []] [-help ]

3.3 - crypto

HDFS 透明加密。

Usage: hdfs crypto -createZone -keyName -path -listZones -provisionTrash -path -help

示例

hdfs crypto -listZones hdfs crypto -reencryptZone -start -path /zone hdfs crypto -listReencryptionStatus hdfs crypto -getFileEncryptionInfo -path /zone/helloWorld

3.4 - daemonlog

动态获取/设置由守护程序中的限定类名标识的日志的日志级别。默认情况下,该命令发送 HTTP 请求,但可以通过使用参数 -protocol 发送 HTTPS 请求来覆盖。

Usage: hadoop daemonlog [-getlevel [-protocol (http|https)] [-setlevel [-protocol (daemonlog -setlevel 127.0.0.1:9870 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG hadoop daemonlog -getlevel 127.0.0.1:9871 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG -protocol - datanode

运行 HDFS 的 DataNode 节点。

Usage: hdfs datanode [-regular | -rollback | -rollingupgrade rollback] -regular 正常启动 DataNode (默认)。 -rollback 将 DataNode 回滚到以前的版本。这应该在停止 DataNode 并分发旧的 hadoop 版本后使用。 -rollingupgrade rollback 回滚滚动升级操作。

3.6 - dfsadmin

运行 HDFS 的 dfsadmin 客户端,只能使用 HDFS 超级用户执行该命令。

Usage: hdfs dfsadmin [-report [-live] [-dead] [-decommissioning] [-enteringmaintenance] [-inmaintenance]] [-safemode enter | leave | get | wait | forceExit] [-saveNamespace [-beforeShutdown]] [-rollEdits] [-restoreFailedStorage true |false |check] [-refreshNodes] [-setQuota ...] [-clrQuota ...] [-setSpaceQuota [-storageType ] ...] [-clrSpaceQuota [-storageType ] ...] [-finalizeUpgrade] [-rollingUpgrade [ | |]] [-upgrade [query | finalize] [-refreshServiceAcl] [-refreshUserToGroupsMappings] [-refreshSuperUserGroupsConfiguration] [-refreshCallQueue] [-refresh [arg1..argn]] [-reconfig ] [-printTopology] [-refreshNamenodes datanodehost:port] [-getVolumeReport datanodehost:port] [-deleteBlockPool datanode-host:port blockpoolId [force]] [-setBalancerBandwidth ] [-getBalancerBandwidth ] [-fetchImage ] [-allowSnapshot ] [-disallowSnapshot ] [-shutdownDatanode [upgrade]] [-evictWriters ] [-getDatanodeInfo ] [-metasave filename] [-triggerBlockReport [-incremental] [-namenode ]] [-listOpenFiles [-blockingDecommission] [-path ]] [-help [cmd]]

示例

# 查看整个 HDFS 的健康情况 hdfs dfsadmin -report # 限制 test.db 数据库的 HDFS 使用空间为 10T hdfs dfsadmin -setSpaceQuota 10T /user/hive/warehouse/test.db # 临时设置 DataNode 网络带宽 hdfs dfsadmin -setBalancerBandwidth 104857600 # 从 NameNode 节点获取最新的 fsimage 文件至本地指定目录 hdfs dfsadmin -fetchImage ./localdir/fsimage_0000000000088684994 # 查看安全模式状态 hdfs dfsadmin -safemode get # 进入安全模式状态 hdfs dfsadmin -safemode enter # 离开安全模式状态 hdfs dfsadmin -safemode leave # 等待安全模式状态 hdfs dfsadmin -safemode wait

3.7 - dfsrouter

运行 DFS 路由器。

Usage: hdfs dfsrouter

3.8 - dfsrouteradmin

用于管理基于路由器的联合的命令。

Usage: hdfs dfsrouteradmin [-add [-readonly] [-faulttolerant] [-order HASH|LOCAL|RANDOM|HASH_ALL] -owner -group -mode ] [-update [ ] [-readonly true|false] [-faulttolerant true|false] [-order HASH|LOCAL|RANDOM|HASH_ALL] -owner -group -mode ] [-rm ] [-ls [-d] ] [-getDestination ] [-setQuota -nsQuota -ssQuota ] [-setStorageTypeQuota -storageType ] [-clrQuota ] [-clrStorageTypeQuota ] [-safemode enter | leave | get] [-nameservice disable | enable ] [-getDisabledNameservices] [-refresh] [-refreshRouterArgs [arg1..argn]] [-refreshSuperUserGroupsConfiguration]

3.9 - diskbalancer

用于将数据均匀分布到 DataNode 的所有磁盘上的一种命令工具。只能使用 HDFS 超级用户执行该命令。

Usage: hdfs diskbalancer [-plan -fs ] [-execute ] [-query ] [-cancel ] [-cancel -node ] [-report -node | [,...]] [-report -node -top ] -plan 创建一个平衡器计划。 -execute 在 DataNode 节点上执行给定的计划。 -query 从 DataNode 节点获取当前磁盘平衡器状态。 -cancel 取消计划。 -report 报告来自 DataNode 节点的信息。

示例

hdfs diskbalancer -plan node1.mycluster.com hdfs diskbalancer -execute /system/diskbalancer/nodename.plan.json hdfs diskbalancer -query nodename.mycluster.com hdfs diskbalancer -cancel /system/diskbalancer/nodename.plan.json hdfs diskbalancer -cancel planID -node nodename hdfs diskbalancer -fs -report -node | [,...] hdfs diskbalancer -fs -report -top topnum

3.10 - ec

运行 ErasureCoding CLI。

Usage: hdfs ec [generic options] [-setPolicy -policy -path ] [-getPolicy -path ] [-unsetPolicy -path ] [-listPolicies] [-addPolicies -policyFile ] [-listCodecs] [-enablePolicy -policy ] [-disablePolicy -policy ] [-removePolicy -policy ] [-verifyClusterSetup -policy ...] [-help [cmd ...]]

3.11 - haadmin

HA NameNode 已配置并启动,将可以访问一些额外的命令来管理 HA HDFS 集群。具体来说,用 “hdfs haadmin” 命令的所有子命令。不带任何附加参数运行此命令将显示以下用法信息:

Usage: hdfs haadmin [-ns ] [-checkHealth ] [-failover [--forcefence] [--forceactive] ] [-getAllServiceState] [-getServiceState ] [-help ] [-transitionToActive [--forceactive] ] [-transitionToObserver ] [-transitionToStandby ] -checkHealth 检查给定 NameNode 的健康状况。 -failover 在两个 NameNode 之间启动故障转移。 -getServiceState 确定给定的 NameNode 是 Active 还是 Standby。 -getAllServiceState 返回所有 NameNode 的状态。 -transitionToActive 将给定 NameNode 的状态转换为 Active(警告:未完成防护)。 -transitionToStandby 将给定 NameNode 的状态转换为 Standby(警告:未完成防护)。 -transitionToObserver 将给定 NameNode 的状态转换为 Observer(警告:未进行防护)。 -help [cmd] 如果没有指定,则显示给定命令或所有命令的帮助。

3.12 - journalnode

运行 HDFS 的 journalnode 节点。

Usage: hdfs journalnode

3.13 - mover

运行数据迁移实用程序。

Usage: hdfs mover [-p | -f ] -f <本地文件> 指定包含要迁移的 HDFS 文件/目录列表的本地文件。 -p <文件/目录> 指定要迁移的 HDFS 文件/目录的空格分隔列表。

3.14 - namenode

运行 HDFS 的 NameNode 节点。

Usage: hdfs namenode [-backup] | [-checkpoint] | [-format [-clusterid cid ] [-force] [-nonInteractive] ] | [-upgrade [-clusterid cid] [-renameReserved] ] | [-upgradeOnly [-clusterid cid] [-renameReserved] ] | [-rollback] | [-rollingUpgrade ] | [-importCheckpoint] | [-initializeSharedEdits] | [-bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck] ] | [-recover [-force] ] | [-metadataVersion ]

3.15 - nfs3

启动 NFS3 网关以与 HDFS NFS3 服务一起使用。

Usage: hdfs nfs3

3.16 - portmap

启动用于 HDFS NFS3 服务的 RPC 端口映射。

Usage: hdfs portmap

3.17 - secondarynamenode

运行 HDFS 的 SecondaryNameNode 节点。

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

3.18 - storagepolicies

列出所有/获取/设置/取消设置存储策略。

Usage: hdfs storagepolicies [-listPolicies] [-setStoragePolicy -path -policy ] [-getStoragePolicy -path ] [-unsetStoragePolicy -path ] [-satisfyStoragePolicy -path ] [-isSatisfierRunning] [-help ]

3.19 - zkfc

启动 Zookeeper 故障转移控制器进程。

Usage: hdfs zkfc [-formatZK [-force] [-nonInteractive]] -formatZK 格式化 Zookeeper 实例。 - -force 如果 znode 存在,则格式化 znode。 - -nonInteractive 如果 znode 存在,则格式化 znode 中止,除非指定了 -force 选项。 -H 显示帮助

4 - Debug 命令指南

4.1 - verifyMeta

验证 HDFS 元数据和块文件。如果指定了块文件,将验证元数据文件中的校验和是否与块文件匹配。

Usage: hdfs debug verifyMeta -meta [-block ]

4.2 - computeMeta

从块文件计算 HDFS 元数据。如果指定了块文件,将从块文件中计算校验和,并将其保存到指定的输出元数据文件中。

Usage: hdfs debug computeMeta -block -out

4.3 - recoverLease

恢复指定路径上的租约。该路径必须位于 HDFS 文件系统上。默认重试次数为 1。

Usage: hdfs debug recoverLease -path [-retries ]

::: hljs-center

扫一扫,我们的故事就开始了。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【日常干货】 USB2.0 PCB布线关键与经验教训分享
下一篇:教你用JAVA写文本编辑器(三)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~