1、启动集群
start-all.sh
mapreduce编程wordcount,实现统计一个超大文件中每个单词出现的个数
========================
新建java工程
点击next
finish完成
导入jar包
hadoop-2.5.2\share\hadoop\common
hadoop-2.5.2\share\hadoop\common\lib
hadoop-2.5.2\share\hadoop\hdfs
hadoop-2.5.2\share\hadoop\hdfs\lib
hadoop-2.5.2\share\hadoop\mapreduce
hadoop-2.5.2\share\hadoop\mapreduce\lib
hadoop-2.5.2\share\hadoop\yarn
hadoop-2.5.2\share\hadoop\yarn\lib
右击工程Build PathConfigure Build Path
点击Add Library
选择User Library
再点击User Libraries按钮
点击new,新建一个用户自定义类库
输入类库的名称mrlib,点击OK
选择mrlib,点击AddExternal JARs
选择整理好的所有jar包(lib文件夹下)导入,然后依次选择完成
完成之后可以看到所有导入的jar包。
定义三个类,一个map类,一个reduce类,一个runjob类
Map类
Reduce类
Job类,需要指定map类,reduce类,输入与输出路径等
执行
- 需要拷贝org目录到工程src目录下
- 代码中Configuration类需要指定两个属性,如上图
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://node1:8020");
conf.set("yarn.resourcemanager.hostname", "node1");
可以看到控制台的日志情况,说明map-reduce任务已成功执行
刷新输出目录output/wc,可以看到生成了两个文件,打开part-文件,可以看到输出结果。