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中查找特定命名方案的所有文件   java需要帮助在这个程序中查找错误,编译但不是计算机所必需的数字   java Androidsocket连接被拒绝   java在单元测试中使用Intent类   sql server 2008换行转义序列在Java中没有以正确的方式回避   嵌入十六进制编码的unicode Java字符串   java无法为类实现tester程序   为json字符串创建通用java映射器   java如何将2个TextView与Android中的if-else条件放在同一位置   java如何初始化锁?   为什么我的多项式类加法函数不起作用?   java Intellij不使用库构建JavaFX   java为什么在EJB类上同时使用@LocalBean和接口?   java无法在Spring Security中登录   Java中的文件创建   运行servlet需要哪个JRE。。服务器JRE还是客户端JRE?   来自Windows命令行的SOAP Web服务中的java SSL证书问题   java JPA如何为实体实施OneOnOne关系?