3.HDFS应用_Shell

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_15014327/article/details/83033266

一. 概述

  • 所有HDFS命令都由hadoop安装目录下的bin/hdfs脚本调用。运行不带任何参数的hdfs脚本会打印所有命令的描述。
  • 用法:hdfs [SHELL_OPTIONS]命令 [GENERIC_OPTIONS] [COMMAND_OPTIONS]
  • HDFS命令主要分为两类:用户命令和管理命令。

二. 用户命令

1. 用法:hadoop fs -appendToFile <localsrc> ... <dst>

将单个src或多个srcs从本地文件系统附加到目标文件系统。还从stdin读取输入并附加到目标文件系统。

  • hadoop fs -appendToFile localfile /user/hadoop/hadoopfile
  • hadoop fs -appendToFile localfile1 localfile2 /user/hadoop/hadoopfile
  • hadoop fs -appendToFile localfile hdfs://nn.example.com/hadoop/hadoopfile
  • hadoop fs -appendToFile - hdfs://nn.example.com/hadoop/hadoopfile                       //从stdin读取输入

2. 用法:hadoop fs -cat URI [URI ...]

将源路径复制到stdout。

例:

  • hadoop fs -cat hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2

3. 用法:hadoop fs -checksum URI

返回文件的校验和信息。

例:

  • hadoop fs -checksum hdfs://nn1.example.com/file1

4. 用法:hadoop fs -chgrp [-R] GROUP URI [URI ...]

更改文件的组关联。用户必须是文件的所有者,否则必须是超级用户。

选项

  • -R选项将通过目录结构递归地进行更改。

5. 用法:hadoop fs -chmod [-R] <MODE [,MODE] ... | OCTALMODE> URI [URI ...]

更改文件的权限。使用-R,通过目录结构递归更改。用户必须是文件的所有者,否则必须是超级用户。

选项

  • -R选项将通过目录结构递归地进行更改。

6. 用法:hadoop fs -chown [-R] [OWNER] [:[GROUP]] URI [URI]

更改文件的所有者。用户必须是超级用户。

选项

  • -R选项将通过目录结构递归地进行更改。

7. 用法:hadoop fs -chown [-R] [OWNER] [:[GROUP]] URI [URI]

更改文件的所有者。用户必须是超级用户。

选项

  • -R选项将通过目录结构递归地进行更改。

8. 用法:hadoop fs -copyFromLocal <localsrc> URI

与put命令类似,但源仅限于本地文件引用。

选项:

  • 如果目标已存在,则-f选项将覆盖目标。

9. 用法:hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>

与get命令类似,但目标仅限于本地文件引用。

10. 用法:hadoop fs -cp [-f] [-p | -p [topax]] URI [URI ...] <dest>

将文件从源复制到目标。此命令也允许多个源,在这种情况下,目标必须是目录。

选项:

  • 如果目标已存在,则-f选项将覆盖目标。

例:

  • hadoop fs -cp /user/hadoop/file1/user/hadoop/file2

11. 用法:hadoop fs -df [-h] URI [URI ...]

显示可用空间。

选项:

  • -h选项将以“人类可读”的方式格式化文件大小(例如64.0m而不是67108864)

例:

  • hadoop dfs -df /user/ hadoop/dir1

12. 用法:hadoop fs -du [-s] [-h] URI [URI ...]

显示给定目录中包含的文件和目录的大小或文件的长度。

选项:

  • -s选项将导致显示文件长度的汇总摘要,而不是单个文件。
  • -h选项将以“人类可读”的方式格式化文件大小(例如64.0m而不是67108864)

例:

  • hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://nn.example.com/user/hadoop/dir1

13. 用法:hadoop fs -get

<src> <localdst>

将文件复制到本地文件系统。

例:

  • hadoop fs -get /user/hadoop/file localfile
  • hadoop fs -get hdfs://nn.example.com/user/hadoop/file localfile

14. 用法:hadoop fs -ls [-d] [-h] [-R] [-t] [-S] [-r] [-u] <args>

选项:

  • -d:目录列为纯文件。
  • -h:以人类可读的方式格式化文件大小(例如64.0m而不是67108864)。
  • -R:递归列出遇到的子目录。
  • -t:按修改时间排序输出(最近的第一个)。
  • -S:按文件大小排序输出。
  • -r:反转排序顺序。
  • -u:使用访问时间而不是修改时间进行显示和排序。

15. 用法:hadoop fs -lsr <args>

ls的递归版本。

注意:不推荐使用此命令。而是使用hadoop fs -ls -R

16. 用法:hadoop fs -mkdir [-p] <paths>

将路径uri作为参数并创建目录。

选项:

  • -p选项行为与Unix mkdir -p非常相似,沿路径创建父目录。

17. 用法:hadoop fs -moveFromLocal <localsrc> <dst>

与put命令类似,只是在复制后删除了源localsrc。

18. 用法:hadoop fs -mv URI [URI ...] <dest>

将文件从源移动到目标。此命令也允许多个源,在这种情况下,目标需要是目录。不允许跨文件系统移动文件。

例:

  • hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2

19. 用法:hadoop fs -put <localsrc> ... <dst>

将单个src或多个srcs从本地文件系统复制到目标文件系统。还从stdin读取输入并写入目标文件系统。

  • hadoop fs -put localfile /user/hadoop/hadoopfile
  • hadoop fs -put localfile1 localfile2/user/hadoop/hadoopdir
  • hadoop fs -put localfile hdfs://nn.example.com/hadoop/hadoopfile
  • hadoop fs -put - hdfs://nn.example.com/hadoop/hadoopfile从stdin读取输入。

20. 用法:hadoop fs -rm [-f] [-r | -R] [-skipTrash] URI [URI ...]

删除指定为args的文件。

选项:

  • 如果文件不存在,-f选项将不显示诊断消息或修改退出状态以反映错误。
  • -R选项以递归方式删除目录及其下的任何内容。
  • -r选项等效于-R。

例:

  • hadoop fs -rm hdfs://nn.example.com/file / user / hadoop / emptydir

21. 用法:hadoop fs -rmdir [--ignore-fail-on-non-empty] URI [URI ...]

删除目录。

选项:

  • --ignore-fail-on-non-empty:使用通配符时,如果目录仍包含文件,请不要失败。

例:

  • hadoop fs -rmdir /user/hadoop/emptydir

22. 用法:hadoop fs -touchz URI [URI ...]

创建一个零长度的文件。

23. 用法:hadoop fs -usage 命令

返回单个命令的帮助。

24. 用法:hadoop jar <jar> [mainClass] args ...

运行一个jar文件。

使用yarn jar来代替启动YARN应用程序。

25. 用法:hdfs classpath

打印获取Hadoop jar和所需库所需的类路径

26. 用法:

hdfs getconf -namenodes

hdfs getconf -secondaryNameNodes

hdfs getconf -backupNodes

hdfs getconf -includeFile

hdfs getconf -excludeFile

hdfs getconf -nnRpcAddresses

hdfs getconf -confKey [key]

命令选项 描述
-namenodes 获取集群中的名称节点列表。
-secondaryNameNodes 获取群集中的辅助名称节点列表。
-backupNodes 获取群集中的备份节点列表。
-includeFile 获取包含文件路径,该路径定义可以加入群集的数据节点。
-excludeFile 获取排除文件路径,该路径定义需要停用的数据节点。
-nnRpcAddresses 获取namenode rpc地址
-confKey [key] 从配置中获取特定密钥

27. 用法:hdfs groups [username ...]

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

28. 用法:hdfs version

打印版本。

三. 管理命令

1. 用法:

hdfs balancer [-threshold <threshold>]

                      [-policy <policy>]

                     [-exclude [-f <hosts-file> | <以逗号分隔的主机列表>]]

                     [-include [-f <hosts-file> | <以逗号分隔的主机列表>]]

                     [-idleiterations <idleiterations>]

-policy <policy> datanode(默认值):如果每个datanode均衡,则群集是平衡的。
blockpool:如果每个datanode中的每个块池都是平衡的,则群集是平衡的。
-threshold <threshold> 磁盘容量的百分比。这会覆盖默认阈值。
-exclude -f <hosts-file> | <以逗号分隔的主机列表> 排除指定的数据节点不被平衡器平衡。
-include -f <hosts-file> | <以逗号分隔的主机列表> 仅包括由平衡器平衡的指定数据节点。
-idleiterations <iterations> 退出前的最大空闲迭代次数。这会覆盖默认的空闲状态(5)。

运行集群平衡实用程序。管理员只需按Ctrl-C即可停止重新平衡过程。

2. 用法:

hdfs dfsadmin [-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>]

[-clspSpaceQuota <dirname> ... <dirname>]

[-setStoragePolicy <path> <policyName>]

[-getStoragePolicy <path>

[-metasave filename]

[-refreshServiceAcl]

[-refreshUserToGroupsMappings]

[-refreshSuperUserGroupsConfiguration]

[-refreshCallQueue]

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

[-reconfig <datanode | ...> < host:ipc_port> <start | status>]

[-printTopology]

[-refreshNamenodes datanodehost:port]

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

[-setBalancerBandwidth <带宽,以每秒字节数为单位>] 

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

[-getDatanodeInfo <datanode_host:ipc_port>]

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

[-help [cmd]]

命令选项 描述
-report [-live] [-dead] [-decommissioning] 报告基本文件系统信息和统计信息。可选标志可用于过滤显示的DataNode列表。
-safemode enter| leave | get | wait 安全模式维护命令。安全模式是一种Namenode状态,其中:1.不接受对名称空间的更改(只读)2.不复制或删除块。
在Namenode启动时自动进入安全模式,并在配置的最小块百分比满足最小复制条件时自动离开安全模式。也可以手动输入安全模式,但也只能手动关闭。
-saveNamespace 将当前名称空间保存到存储目录并重置编辑日志。需要安全模式。
-rollEdits 在活动NameNode上滚动编辑日志。
-restoreFailedStorage true | false | check 此选项将打开/关闭自动尝试以还原失败的存储副本。如果故障存储再次可用,系统将尝试在检查点期间恢复编辑和/或fsimage。'check'选项将返回当前设置。
-refreshNodes 重新读取主机并排除文件以更新允许连接到Namenode的数据节点集以及应该停用或重新调试的数据节点集。
-setQuota <quota> <dirname> ... <dirname> 有关详细信息,请参阅HDFS配额指南。
-clrQuota <dirname> ... <dirname> 有关详细信息,请参阅HDFS配额指南。
-setSpaceQuota <quota> <dirname> ... <dirname> 有关详细信息,请参阅HDFS配额指南。
-clrSpaceQuota <dirname> ... <dirname> 有关详细信息,请参阅HDFS配额指南。
-setStoragePolicy <path> <policyName> 将存储策略设置为文件或目录。
-getStoragePolicy <path> 获取文件或目录的存储策略。
-finalizeUpgrade 完成HDFS的升级。Datanodes删除其先前版本的工作目录,然后Namenode执行相同操作。这样就完成了升级过程。
-rollingUpgrade [<query> | <prepare> | <finalize>] 有关详细信息,请参见滚动升级文档
-metasave 文件名 保存的Namenode的主要数据结构,文件名由hadoop.log.dir属性指定的目录。如果存在,则覆盖filename。filename将包含以下每一行的一行
1.使用Namenode心跳的数据节点
2.等待复制的
块3.当前正在复制的
块4.等待删除的块
-refreshServiceAcl 重新加载服务级别授权策略文件。
-refreshUserToGroupsMappings 刷新用户到组的映射。
-refreshSuperUserGroupsConfiguration 刷新超级用户代理组映射
-refreshCallQueue 从config重新加载呼叫队列。
-refresh <host:ipc_port> <key> [arg1..argn] 触发<host:ipc_port>上<key>指定的资源的运行时刷新。之后的所有其他args被发送到主机。
-reconfig <datanode | ...> <host:ipc_port> <start | status> 开始重新配置或获取正在进行的重新配置的状态。第二个参数指定节点类型。目前,仅支持重新加载DataNode的配置。
-printTopology 打印Namenode报告的机架树及其节点
-refreshNamenodes datanodehost:port 对于给定的datanode,重新加载配置文件,停止服务已删除的块池并开始提供新的块池。
-deleteBlockPool datanode-host:port blockpoolId [force] 如果传递force,则删除给定datanode上给定blockpool id的块池目录及其内容,否则仅当目录为空时才删除该目录。如果datanode仍在为块池提供服务,该命令将失败。请参阅refreshNamenodes以关闭datanode上的块池服务。
-setBalancerBandwidth <带宽,以每秒字节数为单位> 在HDFS块平衡期间更改每个datanode使用的网络带宽。<bandwidth>是每个datanode将使用的每秒最大字节数。此值将覆盖dfs.balance.bandwidthPerSec参数。注意:新值在DataNode上不是持久的。
-fetchImage <本地目录> 从NameNode下载最新的fsimage并将其保存在指定的本地目录中。
-shutdownDatanode <datanode_host:ipc_port> [upgrade] 提交给定datanode的关闭请求。
-getDatanodeInfo <datanode_host:ipc_port> 获取有关给定datanode的信息。
-triggerBlockReport [-incremental] <datanode_host:ipc_port> 触发给定datanode的块报告。如果指定'incremental',则是一个完整的块报告。
-help [cmd] 显示给定命令或所有命令的帮助(如果未指定)。

3. 用法:

hdfs haadmin -checkHealth <serviceId>

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

hdfs haadmin -getServiceState <serviceId>

hdfs haadmin -help <command>

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

hdfs haadmin -transitionToStandby <serviceId>

命令选项 描述
-checkHealth 检查给定NameNode的运行状况
-failover 在两个NameNode之间启动故障转移
-getServiceState 确定给定的NameNode是活动还是待机
-transitionToActive 将给定NameNode的状态转换为Active(警告:不执行防护)
-transitionToStandby 将给定NameNode的状态转换为Standby(警告:没有完成防护)

4. 用法:hdfs journalnode

此comamnd启动一个日志节点,用于与QJM一起使用HDFS HA

5. 用法:hdfs mover [-p <files / dirs> | -f <本地文件名>]

命令选项 描述
-f <本地文件> 指定包含要迁移的HDFS文件/目录列表的本地文件。
-p <files / dirs> 指定要迁移的HDFS文件/目录的空格分隔列表。

运行数据迁移实用程序。

请注意,当省略-p和-f选项时,默认路径是根目录。

6. hdfs namenode [-backup]

                              [-checkpoint]

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

                              [-upgrade [-clusterid cid] [-renameReserved <kv pairs>]]

                              [-upgradeOnly [-clusterid cid] [-renameReserved <kv pairs>]]

                              [-rollback] | [-rollingUpgrade <downgrade | rollback>] | [-finalize]

                              [-importCheckpoint] | [-initializeSharedEdits] | [-bootstrapStandby]

                              [-recover [-force]] | [-metadataVersion]

命令选项 描述
-backup 启动备份节点。
-checkpoint 启动检查点节点。
-format [-clusterid cid] [-force] [-nonInteractive] 格式化指定的NameNode。它启动NameNode,对其进行格式化然后将其关闭。如果名称目录存在,则为-force选项格式。如果名称目录存在,则-nonInteractive选项将中止,除非指定了-force选项。
-upgrade [-clusterid cid] [ -renameReserved <kv pairs>] 在分发新的Hadoop版本后,应该使用升级选项启动Namenode。
-upgradeOnly [-clusterid cid] [ -renameReserved <kv pairs>] 升级指定的NameNode然后关闭它。
-rollback 将NameNode回滚到以前的版本。这应该在停止集群并分发旧的Hadoop版本后使用。
-rollingUpgrade <downgrade | rollback | started> 有关详细信息,请参见滚动升级文档
-finalize Finalize将删除文件系统的先前状态。最近的升级将成为永久性。回滚选项将不再可用。完成后,它会关闭NameNode。
-importCheckpoint 从检查点目录加载图像并将其保存到当前目录中。从属性fs.checkpoint.dir读取检查点目录
-initializeSharedEdits 格式化新的共享编辑目录并复制足够的编辑日志段,以便备用NameNode可以启动。
-bootstrapStandby 允许通过从活动NameNode复制最新的命名空间快照来引导备用NameNode的存储目录。首次配置HA群集时使用此选项。
-recover [-force] 在损坏的文件系统上恢复丢失的元数据。有关详细信息,请参阅HDFS用户指南。
-metadataVersion 验证配置的目录是否存在,然后打印软件和映像的元数据版本。

7. 用法:hdfs storagepolicies

列出所有存储策略。

8. 用法:hdfs zkfc [-formatZK [-force] [-nonInteractive]]

命令选项 描述
-formatZK 格式化Zookeeper实例
-H 显示帮助

此comamnd启动Zookeeper故障转移控制器进程,以便与HDJ HA和QJM一起使用

9. 用法:hdfs debug verify [-meta <metadata-file>] [-block <block-file>]

命令选项 描述
-block 块的文件 可选参数,用于指定数据节点的本地文件系统上的块文件的绝对路径。
-meta 元数据文件 数据节点的本地文件系统上的元数据文件的绝对路径。

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

猜你喜欢

转载自blog.csdn.net/qq_15014327/article/details/83033266