理解MapReduce

Posted 127li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解MapReduce相关的知识,希望对你有一定的参考价值。

1. 用Python编写WordCount程序并提交任务

A编写map函数,reduce函数

map函数

import sys
for line in sys.stdin:
     line=line.strip()
     words=line.split()
     for word in words:
          print (‘%s\\t%s‘ % (word,1))

 

Reduce函数

from operator import itemgetter
import sys
current_word=None
current_count=0
word=None

for line in sys.stdin:
     line=line.strip()
     word,count=line.split(‘\\t‘,1)
     try:
          count=int(count)
     except ValueError:
          continue
     if current_word==word:
          current_count+=count
     else:
          if current_word:
              print (‘%s\\t%s‘ % (current_word,current_count))
          current_count=count
          current_word=word
if current_word==word:
     print (‘%s\\t%s‘ % (current_word,current_count))

  B将其权限作出相应修改

chmod a+x /home/hadoop/wc/mapper.py
chmod a+x /home/hadoop/wc/reduce.py

  

2. 用mapreduce 处理气象数据集

编写程序求每日最高最低气温,区间最高最低气温

  1. 气象数据集下载地址为:ftp://ftp.ncdc.noaa.gov/pub/data/noaa
  2. 按学号后三位下载不同年份月份的数据

技术分享图片

  1. 解压数据集,并保存在文本文件中
  2. 技术分享图片
  3. 对气象数据格式进行解析
  4. 编写map函数,reduce函数

    技术分享图片

    技术分享图片

  5. 将其权限作出相应修改
  6. 本机上测试运行代码
  7. 放到HDFS上运行
    1. 将之前爬取的文本文件上传到hdfs上技术分享图片
    2. 用Hadoop Streaming命令提交任务技术分享图片
  8. 查看运行结果
  9. 技术分享图片

以上是关于理解MapReduce的主要内容,如果未能解决你的问题,请参考以下文章

理解MapReduce计算构架

理解MapReduce计算构架

理解MapReduce

理解MapReduce

理解MapReduce

理解Mapreduce