一、命令简介
所有的hadoop命令均由bin/hadoop脚本引发。不指定参数运行hadoop脚本会打印所有命令的描述。实际上很多命令运行的时候虽然可以运行成功但是会有类似如下告警提示,这是因为调用文件系统的命名改为了hdfs,对hadoop文件系统的操作使用hdfs命令和hadoop命令效果是一样的,且建议使用hdfs。
WARNING: Use of this script to execute fsck is deprecated.
WARNING: Attempting to execute replacement “hdfs fsck” instead.
二、使用示例
1、获取命令帮助
[wuhs@s142 ~]$ hadoop --help
2、查看命令版本
[wuhs@s142 ~]$ hadoop version
Hadoop 3.3.1
Source code repository https://github.com/apache/hadoop.git -r a3b9c37a397ad4188041dd80621bdeefc46885f2
Compiled by ubuntu on 2021-06-15T05:13Z
Compiled with protoc 3.7.1
From source with checksum 88a4ddb2299aca054416d6b7f81ca55
This command was run using /home/wuhs/hadoop-3.3.1/share/hadoop/common/hadoop-common-3.3.1.jar
3、指定配置路径
&8195;&8195;hadoop配置文件路径是etc/hadoop目录下,通过hadoop环境变量配置文件可以看到,
[wuhs@s142 hadoop]$ cp -r etc/hadoop hadoopbak[wuhs@s142 hadoop]$ hadoop --config hadoopbak version[wuhs@s142 hadoop]$ vim +69 etc/hadoop/hadoop-env.sh
5、创建一个归档文件
创建存档文件,包括 input,output目录,存档到 /wordcount 下,创建存档文件会生成一个 MapReduce 作业,因此需要有可运行 MapReduce 任务的集群。
[wuhs@s142 hadoop]$ hadoop archive -archiveName test.har -p /wordcount/ input output /wordcount
…
2021-12-20 22:09:59,146 INFO mapreduce.Job: map 0% reduce 0%
2021-12-20 22:10:06,402 INFO mapreduce.Job: map 100% reduce 0%
2021-12-20 22:10:11,446 INFO mapreduce.Job: map 100% reduce 100%
2021-12-20 22:10:12,495 INFO mapreduce.Job: Job job_1640054187614_0001 completed successfully
…
6、查看hadoop目录下的文件
[wuhs@s142 hadoop]$ hdfs dfs -ls -R /wordcount
…
/wordcount/test.har
-rw-r–r-- 2 wuhs supergroup 0 2021-12-20 22:10 /wordcount/test.har/_SUCCESS
-rw-r–r-- 3 wuhs supergroup 730 2021-12-20 22:10 /wordcount/test.har/_index
-rw-r–r-- 3 wuhs supergroup 23 2021-12-20 22:10 /wordcount/test.har/_masterindex
-rw-r–r-- 3 wuhs supergroup 213 2021-12-20 22:10 /wordcount/test.har/part-0
7、运行jar文件
[wuhs@s142 hadoop]$ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar pi 15 15
Number of Maps = 10
Samples per Map = 10
…
Job Finished in 41.243 seconds
Estimated value of Pi is 3.12888888888888888889
8、检查指定目录文件是否受损
[wuhs@s142 hadoop]$ hadoop fsck /wordcount
…
FSCK ended at Mon Dec 20 22:20:48 EST 2021 in 6 milliseconds
The filesystem under path ‘/wordcount’ is HEALTHY
9、运行运行集群平衡工具
[wuhs@s142 hadoop]$ hadoop balancer
…
2021-12-20 22:24:09,430 INFO net.NetworkTopology: Adding a new node: /default-rack/192.168.0.143:9866
2021-12-20 22:24:09,430 INFO net.NetworkTopology: Adding a new node: /default-rack/192.168.0.142:9866
2021-12-20 22:24:09,430 INFO net.NetworkTopology: Adding a new node: /default-rack/192.168.0.144:9866
2021-12-20 22:24:09,432 INFO balancer.Balancer: 0 over-utilized: []
2021-12-20 22:24:09,432 INFO balancer.Balancer: 0 underutilized: []
Dec 20, 2021 10:24:09 PM 0 0 B 0 B 0 B 0 hdfs://s142:9000
The cluster is balanced. Exiting…
Dec 20, 2021 10:24:09 PM Balancing took 1.437 seconds
10、获取namenode守护进程的日志级别
[wuhs@s142 hadoop]$ hadoop daemonlog -getlevel 192.168.0.142:9870 info
Connecting to http://192.168.0.142:9870/logLevel?log=info
Submitted Class Name: info
Log Class: org.apache.commons.logging.impl.Log4JLogger
Effective Level: INFO
三、使用语法及参数说明
1、使用语法
用法:hadoop [–config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
Hadoop有一个选项解析框架用于解析一般的选项和运行类。
命令选项 | 描述 |
–config confdir | 覆盖缺省配置目录。缺省是${HADOOP_HOME}/etc/hadoop。 |
GENERIC_OPTIONS | 多个命令都支持的通用选项。 |
COMMAND | 命令选项S 各种各样的命令和它们的选项会在下面提到。这些命令被分为 用户命令、管理命令两组。 |
2、参数说明
1)、常规选项参数说明
常规选项 | 描述 |
-conf <configuration file> | 指定应用程序的配置文件。 |
-D <property=value> | 为指定property指定值value。 |
-fs <local|namenode:port> | 指定namenode。 |
-jt <local|jobtracker:port> | 指定job tracker。只适用于job。 |
-files <逗号分隔的文件列表> | 指定要拷贝到map reduce集群的文件的逗号分隔的列表。 只适用于job。 |
-libjars <逗号分隔的jar列表> | 指定要包含到classpath中的jar文件的逗号分隔的列表。 只适用于job。 |
-archives <逗号分隔的archive列表> | 指定要被解压到计算节点上的档案文件的逗号分割的列表。 只适用于job。 |
2)、用户命令参数说明
- archive
创建一个hadoop档案文件。
用法:hadoop archive -archiveName NAME <src>* <dest> - distcp
递归地拷贝文件或目录。
用法:hadoop distcp <srcurl> <desturl> - fs
运行一个常规的文件系统客户端。
用法:hadoop fs [GENERIC_OPTIONS] [COMMAND_OPTIONS] - fsck
运行HDFS文件系统检查工具。
用法:hadoop fsck [GENERIC_OPTIONS] [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]
命令选项 | 描述 |
检查的起始目录。 | |
-move | 移动受损文件到/lost+found |
-delete | 删除受损文件。 |
-openforwrite | 打印出写打开的文件。 |
-files | 打印出正被检查的文件。 |
-blocks | 打印出块信息报告。 |
-locations | 打印出每个块的位置信息。 |
-racks | 打印出data-node的网络拓扑结构。 |
- jar
运行jar文件。用户可以把他们的Map Reduce代码捆绑到jar文件中,使用这个命令执行。
用法:hadoop jar [mainClass] args… - job
用于和Map Reduce作业交互和命令。 - pipes
运行pipes作业。 - version
打印版本信息。 - CLASSNAME
hadoop脚本可用于调调用任何类。
3)、管理命令参数说明
- balancer
运行集群平衡工具。管理员可以简单的按Ctrl-C来停止平衡过程。
用法:hadoop balancer [-threshold ] - daemonlog
获取或设置每个守护进程的日志级别。
用法:hadoop daemonlog -getlevel <host:port> <name>
用法:hadoop daemonlog -setlevel <host:port> <name> <level> - datanode
运行一个HDFS的datanode。
用法:hadoop datanode [-rollback] - dfsadmin
运行一个HDFS的dfsadmin客户端。 - jobtracker
运行MapReduce job Tracker节点。
用法:hadoop jobtracker - namenode
运行namenode。 - secondarynamenode
运行HDFS的secondary namenode。
用法:hadoop secondarynamenode [-checkpoint [force]] | [-geteditsize] - tasktracker
运行MapReduce的task Tracker节点。
用法:hadoop tasktracker
关于用户命令和管理命令更详细的用法和参数说明见官网:https://hadoop.apache.org/docs/r1.0.4/cn/commands_manual.html