本片使用MapReduce——统计输出给定的文本文档每一个单词出现的总次数的案例进行,jar包在集群上测试
1、添加打包插件依赖
代码语言:javascript复制 <build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.2</version> //这里换成对应版本
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin </artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.lizhengi.mr.WordcountDriver</mainClass> // 此处要换成自己工程的名字
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2、更改WcDriver
将
代码语言:javascript复制FileInputFormat.setInputPaths(job, "/Users/marron27/test/input");
FileOutputFormat.setOutputPath(job, new Path("/Users/marron27/test/output"));
更改为
代码语言:javascript复制 FileInputFormat.setInputPaths(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
3、将程序打成jar包,然后拷贝到Hadoop集群中
- 选中maven工程
- 选择Hadoop_API>>Lifecycle>>package
完成打包
4、修改不带依赖的jar包名称为wc.jar,并拷贝该jar包到Hadoop集群
mv Hadoop-API-1.0-SNAPSHOT.jar wc.jar
scp wc.jar root@Carlota1:/root/test/input
5、新建测试用例,并上传到HDFS
ssh root@Carlota1
hadoop fs -copyFromLocal hello.txt /demo/test/input
6、执行WordCount程序
- hadoop jar wc.jar com.lizhengi.mapreduce.WcDriver /demo/test/input /demo/test/output
- 这里我是遇到了一个卡在INFO mapreduce.Job: Running job: job_1595222530661_0003的问题,然后通过修改 mapred-site.xml解决
- 执行结束后,下载结果到本地
hadoop fs -copyToLocal /demo/test/output /root/test/output
-
cat /root/test/output part-r-00000
flume 2
hadoop 2
hdfs 1
hive 1
kafka 2
mapreduce 1
spark 1
spring 1
take 2
tomcat 2