博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解MapReduce
阅读量:4505 次
发布时间:2019-06-08

本文共 2279 字,大约阅读时间需要 7 分钟。

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

程序

WordCount

输入

一个包含大量单词的文本文件

输出

文件中每个单词及其出现次数(频数),并按照单词字母顺序排序,每个单词和其频数占一行,单词和频数之间有间隔

  1. 编写map函数,reduce函数
  • #! /usr/bin/python3# Map函数import sysfor line in sys.stdin:     line=line.strip()     words=line.split()     for word in words:          print ('%s\t%s' % (word,1))
    #! /usr/bin/python3 # Reduce函数from operator import itemgetterimport syscurrent_word=Nonecurrent_count=0word=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=wordif current_word==word:     print ('%s\t%s' % (current_word,current_count))

     

  1. 将其权限作出相应修改
  • chmod a+x /home/hadoop/wc/mapper.pychmod a+x /home/hadoop/wc/reducer.py

     

  1. 查看运行结果

 

2. 用mapreduce 处理气象数据集

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

  1. 气象数据集下载地址为:
  2. 按学号后三位下载不同年份月份的数据(例如201506110136号同学,就下载2013年以6开头的数据,看具体数据情况稍有变通)
  3. 解压数据集,并保存在文本文件中
  4. 对气象数据格式进行解析
  5. 编写map函数,reduce函数
  6. 将其权限作出相应修改
  7. 本机上测试运行代码
  8. 放到HDFS上运行
    1. 将之前爬取的文本文件上传到hdfs上
    2. 用Hadoop Streaming命令提交任务
    • cd /usr/hadoopsodu mkdir hpcd /usr/hadoop/hp   wget -D --accept-regex=REGEX -P data -r -c ftp://ftp.ncdc.noaa.gov/pub/data/noaa/2008/3*   cd /usr/hadoop/hp/data/ftp.ncdc.noaa.gov/pub/data/noaa/2008sudo zcat 3*.gz >hptext.txtcd /usr/hadoop/hp      import sysfor line in sys.stdin:     line = line.strip()     dtext = line[15:23]     text = line[87:92]        print '%s\t%s' % (d,t)      from operator import itemggetterimport sys   current_word = Nonecurrent_count = 0word = 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:         if current_count > count:              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)   chmod a+x /usr/hadoop/hp/mapper.pychmod a+x /usr/hadoop/hp/reducer.py

       

  9. 查看运行结果

转载于:https://www.cnblogs.com/xung/p/9034734.html

你可能感兴趣的文章
自定义python web框架
查看>>
sqlserver生成随机数 2011-12-21 15:47 QQ空间
查看>>
jQuery禁止鼠标右键
查看>>
查询linux计算机的出口ip
查看>>
解决Android的ListView控件滚动时背景变黑
查看>>
laravel 多检索条件列表查询
查看>>
Java_基础—finally关键字的特点及作用
查看>>
SQLServer 日期函数大全
查看>>
Linux常用网络命令
查看>>
激活webstorm11
查看>>
mysql 行转列 和 列转行
查看>>
[Leetcode]
查看>>
再谈vertical-align与line-height
查看>>
有关时延扩展的双语句子
查看>>
docker跨主机通信扁平化网络的设计与实现
查看>>
工作多年后积累的设计灵活,稳定,优秀WinForms应用程序的最佳实践 WinForms best practice...
查看>>
iOS开发——高级篇——iOS键盘的相关设置(UITextfield)
查看>>
JVMGC机制
查看>>
安装了Anaconda之后,Maya运行报错,Python 找不到 Maya 的 Python 模块
查看>>
IAR for AVR 报array is too large错误 【已解决】
查看>>