当前位置: 代码迷 >> 综合 >> # Hadoop MapReduce(一)
  详细解决方案

# Hadoop MapReduce(一)

热度:110   发布时间:2023-10-31 21:50:33.0

Hadoop MapReduce(一)


  1. Hadoop MapReduce是一个使用简易的框架。一个Map/Reduce作业通常会将输入的数据集切分成多个数据块,以Map方式并行的处理它们,框架会对map的输出先进行排序, 然后把结果输入给reduce任务。
  2. Hadoop框架是用java语言实现的,但是Map/Redudce不一定要用java
  3. Map/Reduce框架运转在<key, value> 键值对上,也就是说, 框架把作业的输入看为是一组<key, value> 键值对,同样也产出一组 <key, value> 键值对做为作业的输出,这两组键值对的类型可能不同。

单词统计例子
  1. 首先在HDFS中创建用户目录,执行下面命令
./bin/hdfs dfs -mkdir -p /version/hadoop/user/hadoop
  1. 在 HDFS 中创建输入目录,这里使用的是 hadoop 用户,并且已创建相应的用户目录 /user/hadoop ,因此在命令中就可以使用相对路径如 input,其对应的绝对路径就是 /user/hadoop/input:
./bin/hdfs dfs -mkdir input
  1. 将jar包复制到HDFS目录下面,即放到/version/hadoop/user/hadoop/input下面
./bin/hdfs dfs -put ../code/hadoop.jar /version/hadoop/user/hadoop/input
  1. 复制完成后,可以通过如下命令查看文件列表:
./bin/hdfs dfs -ls /version/hadoop/user/hadoop/input
  1. 运行MapReduce重点
-jar 后面为本地的hadoop.jar文件所在的位置
-wordCount.WordCount为单词统计例子的运行类
-后面的input 和output为在hdfs中的位置
# ./bin/hadoop jar ../code/hadoop.jar wordcount.WordCount /version/hadoop/user/root/input /version/hadoop/user/root/output
  1. 运行结果
./bin/hdfs dfs -cat output/*
  1. 删除hdfs中的文件夹
./bin/hdfs dfs -rm -r output    # 删除 output 文件夹