开发者学堂课程【Hadoop 分布式计算框架 MapReduce:WordCount 案例在集群上运行】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/94/detail/1487
WordCount 案例在集群上运行
简介:
1、在集群上测试
2、测试结果
在集群上测试:
用 maven 打 jar 包,需要添加的打包插件依赖
注意:标记红.颜色的部分需要替换为自己工程主类
<build> IKplugins> <plugin> <artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version> <configuration> <sourCe>1.8</ source>w<target>1.8</target>v</configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin </artifactId><configuration> <descriptorRefs> <descriptorRef>jar-with dependencies</ descriptorRef> </ descriptorRefs>v<archive> <manifest> <mainclass>com.atguigu.mr.wordcountDriver</mainclass> </ manifest> </ archive> </ configuration>w<executions> <execution> <id>make-assembly</id>v<phase>package</phase>u<goalS> <goal>single</goal>e</goals> </execution>w</executions> </plugin> </plugins> </ build> |
注意:如果工程上显示红叉。在项目上右键 ->maven->update project 即可。
(1)将程序打成 jar 包,然后拷贝到 Hadoop 集群中
步骤详情:右键->Run as->maven install。等待编译完成就会在项目的 target 文件夹中生成 jar 包。如果看不到。在项目上右键-》Refresh,即可看到。修改不带依赖的 jar 包名称为 wc.jar,并拷贝该 jar 包到 Hadoop 集群。
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class wordcountDriver { public static void main(String[] args) throws IOException,ClassNotFoundException,Interrup Configuration conf = new Configuration(); //1获取 Job 对象 Job job = Job.getInstance(conf); /2设置 jar 存储位置 job.setJarByClass(wordcountDriver.class); //3关联 Map 和 Reduce 类 job.setMapperClass(WordcountMapper.class);job.setReducerClass(WordcountReducer.class); //4设置 Mappen 阶段输出数据的 key 和 value 类型 job.setMapoutputKeyClass(Text.class); job.setMapOutputValueclass ( Intwritable.class); |
测试结果: