首页 理论教育 Hadoop相关命令介绍

Hadoop相关命令介绍

时间:2023-06-24 理论教育 版权反馈
【摘要】:表3.2Hadoop 脚本参数解释下面列举出几个Hadoop 脚本使用方法。检查Hadoop 本地代码可用性使用命令“hadoop checknative -a”查看Hadoop 本地代码的可用性,在默认情况下,此命令只检查libhadoop 的可用性,也可以使用该命令检查环境的安装情况。除此之外,也可以使用“hadoop checknative -h”查看命令的具体解释情况。由于编写的程序是依赖于Hadoop 环境的,因此使用命令“hadoop jar xxx. jar”来运行Jar 包。

Hadoop相关命令介绍

本书使用的是“/home/apache/soft/hadoop-2.7.7/bin”目录下的Hadoop 脚本,但是如果按照本书第2章已经配置过环境变量以后可以直接输入“hadoop”查看命令,该脚本的使用方法如下:

Usage: hadoop [--config confdir][COMMAND | CLASSNAME]

Hadoop 脚本命令的参数解释见表3.2,CLASSNAME 是要运行的类名,而对于Hadoop 脚本的参数有很多种,其中包括:fs、version、jar、checknative、distcp、daemonlog、credential 等,这些命令在此就不逐一进行解释,可以通过使用“hadoop”命令查看这些命令的具体解释与用法。

表3.2 Hadoop 脚本参数解释

下面列举出几个Hadoop 脚本使用方法。

(1)查看Hadoop 版本

使用命令“hadoop version”查看Hadoop 运行版本,可以看到使用的是Hadoop 2.7.7 版本,正在运行的Jar 包的位置等信息。

(2)检查Hadoop 本地代码可用性

使用命令“hadoop checknative -a”查看Hadoop 本地代码的可用性,在默认情况下,此命令只检查libhadoop 的可用性,也可以使用该命令检查环境的安装情况。除此之外,也可以使用“hadoop checknative -h”查看命令的具体解释情况。

(3)执行Jar 包

当写好一个Java 代码,然后通过编译生成Jar 包以后,通常使用“java -jar xxx.jar”的命令来运行Jar 包。如果编写了一个Hadoop 的Java 程序,就不能简单地使用上述的命令。由于编写的程序是依赖于Hadoop 环境的,因此使用命令“hadoop jar xxx. jar”来运行Jar 包。在本书第2章进行环境测试的过程中,就使用了Hadoop 已经提前编写好的一段程序,这段程序已经打包成“hadoop-mapreduce-examples-2.7.7. jar”。因此,需要运行命令“hadoop jar hadoop-mapreduce-examples-2.7.7.jar pi 10 10”,通过启动10 个“map”和10 个“reduce”任务求pi 值。(www.xing528.com)

(4)修改与查看Log 日志级别

会查看Log 日志是一名程序员的基本技能之一,只有学会查看Log 日志,才能分析问题并找到解决方法。在Hadoop 中,由于进行大量的计算,每次运行程序都会产生大量的日志,为了能够对日志进行筛选,可以通过设置日志级别的方式来进行日志的过滤。

日志库将日志分为5 个级别,分别为DEBUG、INFO、WARN、ERROR 和FATAL。这5 个级别对应的日志信息重要程度不同,它们的重要程度由低到高依次为DEBUG<INFO<WARN<ERROR<FATAL。日志输出规则为:只输出级别不低于设定级别的日志信息。例如,级别设定为INFO,则INFO、WARN、ERROR 和FATAL 级别的日志信息都会被输出,但级别比INFO低的DEBUG 则不会被输出。因此,使用“hadoop daemonlog -getlevel”获取日志级别,使用“hadoop daemonlog -setlevel”设置日志级别,可以设置的节点包括HDFS、NameNode、Secondary NameNode、DataNode、JournalNode、YARN、ResourceManager、NodeManager。举例如下:

查看NameNode 的Log 日志级别使用命令“hadoop daemonlog -getlevel 127.0.0.1:50070 org.apache.hadoop.hdfs.server.namenode.NameNode”。

使用命令“hadoop daemonlog -setlevel 127.0.0.1:50070 org.apache.hadoop.hdfs.server.namenode.NameNode WARN”将NameNode 的日志级别从“INFO”改为“WARN”级别。

(5)集群间拷贝DistCP

DistCP 是Apache Hadoop 上下文中的Distributed Copy(分布式拷贝)的缩写。它是一个用于大规模集群内部和集群之间拷贝的工具。DisctCP 使用MapReduce 实现文件分发、数据错误处理与恢复、报告生成等功能。由于其MapReduce 的使用,使得DisctCP 可以在集群中的多个可用节点上进行操作,从而提高效率。

DistCp 常用于在集群之间的拷贝:

hadoop distcp hdfs:/ /nn1:8020/source hdfs:/ /nn2:8020/destination

上述命令会将nn1 集群的“/source”目录下的所有文件或目录展开并存储到一个临时文件中,这些文件内容的拷贝工作被分配给多个Map 任务,然后每个NodeManager 分别执行从nn1 到nn2 的拷贝操作。

(6)其他命令

除了上述已经介绍的命令,Hadoop 还提供了一些其他命令,其包括:Archive(创建档案文件)、Classpath(查看Hadoop 类路径)、Credential(管理凭证)、NameNode(管理NameNode 命令)、SecondaryNameNode(管理SecondaryNameNode 命令)等,在此就不再进行详细的介绍了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈