微信号:shiyanlou-com

介绍:实验楼(www.shiyanlou.com)官微,面向IT学习者,每天分享Linux、Python、Java、Android、WEB…等IT编程干货+教程.实验楼——专业的IT在线实训平台,网站提供在线开发环境及课程,让程序员学习更高效!

MRJob 极速入门,Python玩转Hadoop你会么?

2018-09-28 18:46 实验楼


想要Hadoop乖巧地运行Python程序,学习mrjob可能是最直接、最简单的方法了,你甚至都不要按安装部署Hadoop集群。mrjob拥有很多优秀的特性比如:

  • 支持多步骤的MapReduce任务工作流

  • 支持内嵌、本地、远程亚马逊以及Hadoop

  • 调试方便不需要任务环境支持

本教程通过 python 中 mrjob 模块来调用 hadoop 处理数据。通过本次实验,你可以初步入门mrjob,轻松编写mr来使用hadoop。主要知识点:

  • Python MRJob模块的安装

  • Hadoop——Python各模块介绍

  • 使用MRJob实现文本统计

  • Python MRJob的运行方式

  • 重写MRJob函数实现复杂数据处理


效果展示。该展示数据含义是通过mrjob将每个用户(cuid)看过哪些电影(vid)进行统计并输出。

mrjob支持python2和python3 。mrjob可以通过pip直接安装,也可以通过下载源码通过setup.py安装,可参考mrjob安装说明。 本实验中,使用shiyanlou账户通过sudo权限进行安装。pip安装指令:

目前常见的Python框架有以下几个,这里再简单介绍一下各框架的大体特点,想了解更多可去博客查阅。

Hadoop Streaming。提供了使用其他可执行程序来作为Hadoop的mapper或者reduce的方式,必须使用规定的语义从标准输入读取数据,然后将结果输出到标准输出。直接使用Streaming 的一个缺点是当reduce的输入是按key分组的时候,仍然是一行行迭代的,必须由用户来辨识key与key之间的界限。


mrjob。开源的Python框架,封装Hadoop的数据流,并积极开发Yelp的。由于Yelp的运作完全在亚马逊网络服务,mrjob的整合与EMR是令人难以置信的光滑和容易(使用 boto包)。

dumbo。同样使用Hadoop流包装的框架。dumbo出现的较早,但由于缺少文档,造成开发困难。这也是不如mrjob的一点。dumbo通过typedbytes执行序列化,能允许更简洁的数据传输,也可以更自然的通过指定JavaInputFormat读取SequenceFiles或者其他格式的文件

hadoopy。是一个兼容dumbo的Streaming封装,也使用typedbytes序列化数据,并直接把 typedbytes 数据写到HDFS。它有一个很棒的调试机制, 在这种机制下它可以直接把消息写到标准输出而不会干扰Streaming过程。它和dumbo很相似,但文档要好得多。

pydoop。与其他框架相比,pydoop 封装了Hadoop的管道(Pipes),这是Hadoop的C++ API。 正因为此,该项目声称他们能够提供更加丰富的Hadoop和HDFS接口,以及一样好的性能。需要注意de所有的输入输出都必须是字符串。

其他  -happy、Disco、octopy、Mortar、Luigi 等。

后面便是使用mrjob实现词组统计以及mrjob多种运行方式等等的介绍。完整的教程已经配套的练习可以在实验楼的主站去学习。

说明:该教程仅限实验楼会员学习。因为是刚上线的新课,目前还1天的免费时间,任何人都可以学习;感兴趣的同学可以去看看。






 
实验楼 更多文章 白色阉鸡的故事。 到底哪种语言才是未来?Python? Java?Go?R?JS?C++? 【电台Vol.01】所有的背井离乡,都只为荣归故里 爆照!!!以及不吃月饼的5大理由。 优秀的程序员都不写博客?这就推荐6个优秀博客给你看
猜您喜欢 挑战App Store,微信通过“跳一跳”秀了一下“小程序”的肌肉 .NET Core 2.0版本预计于2017年春季发布 留一交叉验证及SAS代码 Adobe 宣布放弃 Flash,视频播放将进入 HTML5 时代 Openshift高阶探索实验