背景
通过IDE可以直接运行hadoop程序,但是不能生成Job_Id。但是,通过命令行来运行Hadoop程序或作业,就可以生成Job_Id,从而可以在web界面看到相应的信息。
步骤
打包
第一步是把作业打成jar包,首先在项目的pom.xml文件里的<project>标签下加入以下的编译内容
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf8</encoding>
</configuration>
</plugin>
</plugins>
</build>
其中把<version>改成自己maven的版本
然后使用IDE编译整个项目,生成class文件
最后在命令行下cd到项目根目录下,运行以下命令
mvn package -DskipTests
就可以在项目根目录\target下看到生成的jar包
启动hadoop
运行start-all.cmd即可启动hadoop
运行作业
输入命令
hadoop jar .\target\szc_hadoop_reduce-2.0-SNAPSHOT.jar dm01
即可运行作业,其中****.jar是自己的jar文件,dm01是jar文件里的一个主类
图中箭头所指就是Job_Id
Web界面结果
如果要在web里查看作业运行情况,可以先通过Cygwin运行以下命令启动jobhistory
mr-jobhistory-daemon.sh start historyserver
然后在浏览器里输入url:http://localhost:19888/jobhistory,即可看到方才运行的作业情况
使用Job_Id
有了Job_Id,我们可以进行一些操作,比如统计计数器,代码在《Hadoop权威指南》第四版9.1.2节。这里只贴出运行结果