Hadoop MapReduce(一)
- Hadoop MapReduce是一个使用简易的框架。一个Map/Reduce作业通常会将输入的数据集切分成多个数据块,以Map方式并行的处理它们,框架会对map的输出先进行排序, 然后把结果输入给reduce任务。
- Hadoop框架是用java语言实现的,但是Map/Redudce不一定要用java
- Map/Reduce框架运转在<key, value> 键值对上,也就是说, 框架把作业的输入看为是一组<key, value> 键值对,同样也产出一组 <key, value> 键值对做为作业的输出,这两组键值对的类型可能不同。
单词统计例子
- 首先在HDFS中创建用户目录,执行下面命令
./bin/hdfs dfs -mkdir -p /version/hadoop/user/hadoop
- 在 HDFS 中创建输入目录,这里使用的是 hadoop 用户,并且已创建相应的用户目录 /user/hadoop ,因此在命令中就可以使用相对路径如 input,其对应的绝对路径就是 /user/hadoop/input:
./bin/hdfs dfs -mkdir input
- 将jar包复制到HDFS目录下面,即放到/version/hadoop/user/hadoop/input下面
./bin/hdfs dfs -put ../code/hadoop.jar /version/hadoop/user/hadoop/input
- 复制完成后,可以通过如下命令查看文件列表:
./bin/hdfs dfs -ls /version/hadoop/user/hadoop/input
- 运行MapReduce重点
-jar 后面为本地的hadoop.jar文件所在的位置
-wordCount.WordCount为单词统计例子的运行类
-后面的input 和output为在hdfs中的位置
- 运行结果
./bin/hdfs dfs -cat output/*
- 删除hdfs中的文件夹
./bin/hdfs dfs -rm -r output