在Hadoop-1.x版本中主要使用hadoop脚本执行各种命令,包括运行jar文件(jar),运行文件系统客户端(fs),运行HDFS管理客户端(dfsadmin)等,但Hadoop-2.x将hadoop脚本拆分为hadoop、hdfs、mapred几个脚本,并新增了yarn脚本用于执行与yarn有关的命令。在命令行直接执行上述脚本都会输出该脚本的使用方法,比如hadoop。其中--config选项用于指定配置文件的目录以覆盖默认配置文件目录(${HADOOP_HOME}/etc/hadoop)。
Usage: hadoop [--config confdir] COMMAND where COMMAND is one of: fs run a generic filesystem user client version print the version jar <jar> run a jar file checknative [-a|-h] check native hadoop and compression libraries availability distcp <srcurl> <desturl> copy file or directories recursively archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive classpath prints the class path needed to get the Hadoop jar and the required libraries daemonlog get/set the log level for each daemon or CLASSNAME run the class named CLASSNAME Most commands print help when invoked w/o parameters.
dfsadmin、dfs(fs)、fsck、job和fetchdt等命令都支持如下的通用命令行选项:
-conf <configuration file> 指定应用程序的配置文件 -D <property=value> 为执行属性设置值 -fs <local|namenode:port> 指定namenode -jt <local|jobtracker:port> 指定job tracker -files <comma separated list of files> 将被复制到MapReduce集群用逗号分隔的文件 -libjars <comma separated list of jars> 被包含在类路径中的用逗号分隔的jar文件 -archives <comma separated list of archives> 在计算机上被解压缩的用逗号分隔的压缩文件
除了上述的通用命令行选项外,有些命令还有特有的命令行选项,这些选项将会在介绍具体命令时学习。下面介绍一些使用较频繁的命令,比如dfs、jar、namenode等。
hadoop脚本中的fs命令已经被hdfs dfs命令取代,虽然仍然可以使用fs,但推荐使用dfs。在hadoop脚本中比较常用的命令有:
jar <jar> 运行jar文件 checknative [-a|-h] 检查本地hadoop库和压缩包的可用性 distcp <srcurl> <desturl> 从srcurl到desturl复制文件或者目录 archive -archiveName NAME -p <parent path> <src>* <dest> 创建hadoop存档 CLASSNAME 运行名称为CLASSNAME的类
hdfs脚本中的命令如下所示,在此仅列出了该命令的名称及主要功能,至于如何这些命令的具体用法可以通过在命令行输入hdfs 命令名称-h获取详细信息。
dfs 在hadoop上运行文件系统命令,比如cat、chmod等 namenode -format 格式化DFS文件系统 secondarynamenode 运行secondary namenode namenode 运行 namenode journalnode 运行journalnode datanode 运行 datanode dfsadmin 运行DFS 的管理客户端 haadmin 运行 DFS 的HA管理客户端 fsck 运行 DFS文件系统的检查工具 balancer 运行集群的负载均衡工具 oiv 将离线的fsimage保存为指定的文件 oev 将离线的edits保存为指定的文件 fetchdt 从NameNode取得委托令牌 getconf 从配置管理中获取配置参数的值 groups 获取用户所属的组,如:hadoop : hadoop
mapred脚本中的命令如下:
pipes 运行管道作业 job 操作MapReduce 作业 queue 获取关于JobQueues 的信息 historyserver 以独立的守护进程运行作业历史服务器 hsadmin 作业历史服务器的管理接口
yarn脚本中的命令如下:
resourcemanager 运行ResourceManager nodemanager 在每个slave上运行nodemanager historyserver 运行应用程序的历史服务器 rmadmin 管理员工具 application 打印应用程序报告或者杀死应用程序 applicationattempt 打印应用程序尝试报告 container 打印容器报告 node 打印节点报告 logs dump 容器日志
Hadoop-2.x提供了丰富的命令用于管理NameNode、DataNode、ResourceManager和NodeManager,要想充分掌握这些命令势必需要花费一些时间和精力,同时还需要了解Hadoop中的各个组件。