在linux环境中执行一个mapreduce的小Demo(使用安装时已存在的实例)
注意:mapreduce的测试数据和输出结果均来自hdfs文件系统
- 启动hadoop服务(当然要先启动zookeeper,不明白的宝子可以看看我之前有关的介绍)
- 执行命令
hadoop jar <执行的jar包的路径> <选择操作实例> <所选操作需要的参数>
其中:
- jar包:hadoop安装目录下share/hadoop/mapreduce我们选择hadoop-mapreduce-examples-2.7.3.jar这是一个实例jar包,里面有很多小Demo
- 操作实例:即jar包里面的小Demo(实质是一个java可执行文件)
- 参数:
(1)以wordcount为例参数为<测试所用的hdfs文件系统中的数据文件所在路径> <输出结果文件夹output路径>后两个是hdfs文件系统中的,路径建议同根
例:hadoop jar /usr/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /bigdata/109ma/a.txt /bigdata/109ma/output
运行结果:会创建出output目录(相反,若output目录已存在则会报错),并在此目录下生成_SUCCESS和part-r-00000两个文件,其中_SUCCESS文件中存放处理结果
(2)以pi为例参数为
自己写一个小Demo(Java程序)
- Windows环境下运行程序:
-
我们需要启用蓝色小象哦
-
在对应项目中导入commom,hdfs,yarn,mapreduce四类jar包
详细方法请见
-
然后我们就可以写具体实例程序了(注意:代码中建立连接的机器ip和一些文件路径请根据自己实际情况作出正确变更)
点击查看代码
package mapreduceDemo;
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
public class MyWordCount{
public static class MyMapper extends Mapper
- linux环境下运行程序:
- 详细程序推荐林子雨老师的大数据技术原理与应用这本书,很详细!!!
- 运行就按第一种在linux下运行的方法即可