PythonMapReduce框架

mrjob的Python项目详细描述


https://github.com/Yelp/mrjob/raw/master/docs/logos/logo_medium.png

mrjob是一个python 2.7/3.5+包,可以帮助您编写和运行hadoop 流作业。

Stable version (v0.6.10) documentation

Development version documentation

https://travis-ci.org/Yelp/mrjob.png

mrjob完全支持amazon的弹性mapreduce(emr)服务,它允许您 以每小时为基础在hadoop集群上购买时间。mrjob对google cloud dataproc(dataproc)有基本支持 它允许您一分钟一分钟地在hadoop集群上购买时间。它也适用于你自己的 Hadoop群集。

一些重要功能:

  • 在emr、google cloud dataproc、您自己的hadoop集群或本地(用于测试)上运行作业。
  • 编写多步骤作业(将一个map reduce step feeds映射到下一个)
  • 在EMR或您自己的Hadoop群集上轻松启动Spark作业
  • 在hadoop中复制生产环境
    • 上载源代码树并将其放入作业的$PYTHONPATH
    • 运行make和其他设置脚本
    • 设置环境变量(例如$TZ
    • 从tarballs轻松安装python包(仅限emr)
    • 安装程序由mrjob.confconfig文件透明处理
  • 自动解释错误日志
  • ssh隧道到hadoop作业跟踪器(仅限emr)
  • 最小设置
    • 要在emr上运行,请设置$AWS_ACCESS_KEY_ID$AWS_SECRET_ACCESS_KEY
    • 要在dataproc上运行,请设置$GOOGLE_APPLICATION_CREDENTIALS
    • 在您自己的hadoop集群上使用mrjob不需要设置

安装

来自PYPI:

pip install mrjob

来源:

python setup.py install

一个简单的map reduce作业

此示例和更多示例的代码位于mrjob/examples中。

"""The classic MapReduce job: count the frequency of words.
"""
from mrjob.job import MRJob
import re

WORD_RE = re.compile(r"[\w']+")


class MRWordFreqCount(MRJob):

    def mapper(self, _, line):
        for word in WORD_RE.findall(line):
            yield (word.lower(), 1)

    def combiner(self, word, counts):
        yield (word, sum(counts))

    def reducer(self, word, counts):
        yield (word, sum(counts))


if __name__ == '__main__':
     MRWordFreqCount.run()

试试看!

# locally
python mrjob/examples/mr_word_freq_count.py README.rst > counts
# on EMR
python mrjob/examples/mr_word_freq_count.py README.rst -r emr > counts
# on Dataproc
python mrjob/examples/mr_word_freq_count.py README.rst -r dataproc > counts
# on your Hadoop cluster
python mrjob/examples/mr_word_freq_count.py README.rst -r hadoop > counts

在Amazon上设置EMR

在google上设置dataproc

高级配置

要在其他aws区域中运行,请上载源代码树,运行make,然后使用 其他高级mrjob功能,您需要设置mrjob.conf。MrJob看起来 其conf文件位于:

  • $MRJOB_CONF
  • 的内容
  • ~/.mrjob.conf
  • /etc/mrjob.conf

有关详细信息,请参见the mrjob.conf documentation

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用JDOM设置布尔字段   java准备语句和语句/查询缓存   java Jpanel与JFrame菜单栏重叠   java比较两个JodaTime DateTime对象   java为什么Android Room@Query LIKE不返回已知存在的数据   使用Java和COM4J的Quality Center V11脚本统计   java获取当前登录用户的详细信息   如果页面上存在元素,如何在控制台中显示   java在GUI不更新信息时使用SWING和多线程处理GUI   java LOG4J2 RollingFile Appender未写入文件   java“new TextToSpeech.OnInitListener()”的颜色不鲜艳,这表明它没有被使用,如何使其可用?   java在paint方法中绘制形状   JAVA木卫一。文件旅游目的地?   java Struts2 dojo锚定标记不起作用?   java JavaFX ObservalElist和提取器更新事件在应该时未触发