`
zhao_rock
  • 浏览: 191162 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

python基于Hadoop Streaming实现简单的WordCount

 
阅读更多

1. Eclipse下配置python插件PyDev

参考:http://blog.chinaunix.net/uid-11121450-id-1476897.html

 

2. Hadoop Streaming编程

Hadoop Streaming是利用“标准输入”和“标准输出”与我们编写的Map和Reduce进行数据的交换。
那么,任何能够使用“标准输入”和“标准输出”的编程语言都应该可以用来编写MapReduce程序。
 
3. Python实现简单的Word Count程序
需要注意python中对分隔符的要求比较严格,尽量不要混用tab和空格,很容易导致编译失败
mapper.py
#!/usr/bin/python
import sys 
for line in sys.stdin:
 #去除字符串两边的空格 
 line = line.strip() 
 #按照空格去划分单词
 words = line.split()
  for word in words:
   print '%s %s' % (word, 1)
 
reducer.py
#!/usr/bin/python 
from operator import itemgetter
import sys 
word2count = {} 
for line in sys.stdin:
   line = line.strip() 
   word, count = line.split(' ', 1)   
   try:
    count = int(count)
    word2count[word] = word2count.get(word, 0) + count
   except ValueError:      
    pass 
   sorted_word2count = sorted(word2count.items(), key=itemgetter(0))
   for word, count in sorted_word2count:
    print '%s %s'% (word, count)
 
 
4. 在hadoop上运行python脚本
#在Hadoop Home路径下运行以下命令
 bin/hadoop jar contrib/streaming/hadoop-streaming-1.0.0.jar -mapper /usr/local/mapper.py -reducer /usr/local/reducer.py -input /test.txt -output /result
0
0
分享到:
评论

相关推荐

    Hadoop Streaming 官方中文文档

    Hadoop Streaming是Hadoop生态系统中的一个组件,它允许用户使用自定义的编程语言(如Python、Perl或Ruby)编写MapReduce程序,而不仅仅是Java。这一特性极大地扩展了Hadoop的适用范围,使得不同背景的开发者都能够...

    hadoop-streaming-2.8.0_jar_2.8.0_hadoop_streaming_

    4. **HadoopStreaming.class**: 这个类是 Hadoop Streaming 的核心,它实现了 MapReduce 框架,使得用户可以使用非Java语言编写 Map 和 Reduce 部分。 Hadoop Streaming 的标签 "jar 2.8.0 hadoop streaming" 强调...

    ( Hadoop Streaming编程实战(C++、PHP、Python).pdf )

    Hadoop Streaming是一个非常有用的工具,它能够使得任何用编程语言实现的程序能够在Hadoop MapReduce框架中运行。Hadoop Streaming利用标准输入和标准输出来实现程序与MapReduce框架之间的通信。这个特性使得已经...

    Hadoop Streaming程序实例

    Hadoop Streaming是一个强大的工具,它允许用户使用任何可执行文件(如Python脚本、Perl或Bash shell命令)作为MapReduce任务的Mapper和Reducer。这个技术使得非Java开发者也能利用Hadoop的大数据处理能力。在本文中...

    Hadoop Streaming 编程

    在分布式计算领域,Hadoop Streaming 是一个至关重要的工具,它使得开发者可以利用任何可执行文件或脚本(如 Java、Python、Shell 等)来编写 MapReduce 作业,而无需直接使用 Java API。Hadoop Streaming 的核心...

    Hadoop - Hadoop Streaming

    Hadoop Streaming 是一种允许用户利用任何可执行脚本或程序(如 Python、Perl 或其他脚本语言)作为 Map 和 Reduce 进程的技术。它通过提供一个框架来实现这一目标,该框架可以读取来自标准输入的数据,并将结果写入...

    词频统计(基于hadoop集群,python实现)

    本教程将深入探讨如何利用Hadoop集群和Python实现词频统计,这是一个经典的WordCount示例,适合初学者入门。在这个项目中,我们将通过Python编写MapReduce程序,并在Ubuntu系统上配置的Hadoop集群上运行它。 首先,...

    使用hadoop-streaming运行Python编写的MapReduce程序.rar

    Hadoop Streaming是Hadoop的一个重要组件,它允许用户使用任何可生成标准输入/输出的工具(如Python脚本)来实现MapReduce算法。这个压缩包“使用hadoop-streaming运行Python编写的MapReduce程序.rar”显然是一个...

    python hadoop

    2. **基于Python MapReduce Streaming进行快速并行编程**:Hadoop的MapReduce模型允许开发者使用自定义的Map和Reduce函数来处理数据。通过Python MapReduce Streaming,用户可以使用Python脚本来实现这些函数,从而...

    python hadoop mapreduce 相似用户|mapreduce.rar

    Python在Hadoop MapReduce中的使用,通常通过Hadoop Streaming实现。这是一个允许使用任何可生成输入/输出流的可执行程序(如Python脚本)作为Map和Reduce任务的框架。在Python脚本中,我们需要定义map()和reduce()...

    HadoopStreaming编程.doc

    Hadoop Streaming是一种编程接口,它允许开发者使用任意可执行文件或脚本(如Shell、Python、Perl等)作为MapReduce作业的Mapper和Reducer。这一技术极大地扩展了Hadoop的适用性,使得非Java程序员也能轻松地在...

    HadoopStreaming

    ### Hadoop Streaming 知识点详解 #### 一、Hadoop及Hadoop Streaming简介 **Hadoop** 是一个能够对大量数据进行分布式处理的软件框架,由Apache基金会维护。它支持大规模的数据集(TB级别及以上),并通过...

    hadoop_data_analysis:基于Hadoop Streaming的数据分析工具

    基于Hadoop Streaming的数据分析工具描述:这是一个数据分析工具,用于在 Hadoop Streaming 上运行的基本数据分析。 功能: 计算描述性统计量最小值,最大值直方图吝啬的变化标准变异

    python MapReduce的wordcount

    ### Python 实现 MapReduce 的 ...通过以上步骤,我们成功实现了基于 Python 的 MapReduce WordCount 示例。这种方法不仅有助于理解 MapReduce 的基本概念,还能够帮助开发者快速上手使用 Python 进行大数据处理任务。

    使用python实现mapreduce(wordcount).doc

    尽管Hadoop的原生实现是基于Java,但Hadoop Streaming允许我们使用任意语言(如Python)编写MapReduce程序。Hadoop Streaming的工作原理是,mapper和reducer程序只需从标准输入读取并写入标准输出即可。 1. **...

    hadoop streaming 表

    Hadoop Streaming是Hadoop的MapReduce编程模型的一个工具,它允许用户使用非Java语言编写MapReduce作业,使得其他编程语言如Python、Ruby和Perl等能够处理Hadoop上的大数据。Hadoop Streaming通过将数据流式传输到...

    基于hadoop对某网站日志分析部署实践课程设计报告参考模板.doc

    【基于Hadoop的大数据日志分析实践】 在大数据领域,Hadoop是一个不可或缺的分布式计算框架,尤其在处理大规模数据时,其优势尤为显著。本文档将详细介绍如何利用Hadoop进行网站日志分析的实践过程,涵盖了从数据...

Global site tag (gtag.js) - Google Analytics