mrjob使用 Python 编写 MapReduce 作业
mrjob 可以让用 Python 2.5+ 来编写 MapReduce 作业,并在多个不同平台上运行,你可以:
- 使用纯 Python 编写多步的 MapReduce 作业
- 在本机上进行测试
- 在 Hadoop 集群上运行
- 使用 Amazon Elastic MapReduce (EMR) 在云上运行
一些重要功能:
- 在EMR,Google Cloud Dataproc,您自己的Hadoop群集或本地(用于测试)上运行作业。
- 编写多步骤作业(将一个映射减少步骤馈入下一个步骤)
- 在EMR或您自己的Hadoop集群上轻松启动Spark作业
- 在Hadoop中复制您的生产环境
- 上传您的源代码树并将其放入您的工作
$PYTHONPATH
- 运行make和其他安装脚本
- 设置环境变量(例如
$TZ
) - 从tarball轻松安装python软件包(仅适用于EMC)
- 安装程序由
mrjob.conf
配置文件透明处理
- 上传您的源代码树并将其放入您的工作
- 自动解释错误日志
- SSH隧道到hadoop作业跟踪器(仅适用于EMC)
- 最少的设置
- 要在EMR上运行,请设置
$AWS_ACCESS_KEY_ID
和$AWS_SECRET_ACCESS_KEY
- 要在Dataproc上运行,请设置
$GOOGLE_APPLICATION_CREDENTIALS
- 无需设置即可在自己的Hadoop集群上使用mrjob
- 要在EMR上运行,请设置
pip 的安装方法:pip install mrjob
示例代码:
from mrjob.job import MRJob class MRWordCounter(MRJob): def mapper(self, key, line): for word in line.split(): yield word, 1 def reducer(self, word, occurrences): yield word, sum(occurrences) if __name__ == '__main__': MRWordCounter.run()
评论
测试开发面试题:使用python编写数据结构队列
题目描述: 使用python模拟实现数据结构:队列注意:要想实现必须了解一下队列的特点,如下:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和...
兜兜里的糖糖
0
妙不可言!使用 Python 管道 Pipe 编写代码如此优雅!
大家好,今天这篇文章我将详细讲解 Pipe 如何让你的代码更加简洁的方法,喜欢本文欢迎收藏学习、点赞支持,文末提供技术交流群,欢迎交流我们知道 map 和 filter 是两种有效的 Python 方法来处理可迭代对象。 但是,...
Python学习与数据挖掘
0
Descartes使用 JavaScript 编写 CSS
Descartes可以让你用JavaScript来编写网页的CSS样式。使用对象文字和JavaScript来计算网页元素的层叠以及内建样式。其速度非常的快。示例代码:new Descartes({
Descartes使用 JavaScript 编写 CSS
0
CannoliRust 编写的 Python 编译器
Cannoli是一个Rust编写的Python(Python3.6.5)编译器,旨在评估对性能有负面影响的Python语言特性。Cannoli使用Rust编写,并将Python编译为Rust,选择Ru
CannoliRust 编写的 Python 编译器
0
JaspyJavaScript 编写的 Python 虚拟机
Jaspy 是一款采用JS编写的Python VM。Jaspy支持多个线程,配有一个集成的调试器远程
JaspyJavaScript 编写的 Python 虚拟机
0
JaspyJavaScript 编写的 Python 虚拟机
Jaspy是一款采用JS编写的PythonVM。Jaspy支持多个线程,配有一个集成的调试器远程调试,并提供一个灵活的基于预处理器架构。速度不是Jaspy的目标,Jaspy旨在探索新的web编程方式。
JaspyJavaScript 编写的 Python 虚拟机
0