首先

要想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多种运行方式等等的介绍。完整的教程已经配套的练习可以在实验楼的主站去学习。

教程|要想Hadoop能够运行Python程序,就要会MRJob的更多相关文章

  1. 教你如何编写、保存与运行 Python 程序

    第一步 接下来我们将看见如何在 Python 中运行一个传统的“Hello World”程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Python 来运行的你的程 ...

  2. 运行python程序不显示cmd的方法

    运行python程序的时候会在背景显示一个cmd,要想不显示其实很简单(虽然是我找了1个小时...才了解的基本知识) 方法1:pythonw xxx.py 方法2:将.py改成.pyw (这个其实就是 ...

  3. 设置PATH 环境变量、pyw格式、命令行运行python程序与多重剪贴板

    pyw格式简介: 与py类似,我认为他们俩卫衣的不同就是前者运行时候不显示终端窗口,后者显示 命令行运行python程序: 在我学习python的过程中我通常使用IDLE来运行程序,这一步骤太过繁琐( ...

  4. 《Python学习手册 第五版》 -第3章 你应如何运行Python程序

    在这里,运行Python程序的前提是你的电脑已经配置Python相关的运行环境,如何配置可以通过本书的附件查看,也可以自行通过网络查询配置,在此不再赘述 运行一个Python程序,主要有6种方式 1. ...

  5. 运行python程序

    1 在windows下运行python程序 1)从DOS命令行运行python脚本 用python解释器来执行python脚本,在windows下面python解释器是python.exe,我的pyt ...

  6. editplus3运行Python程序

    editplus3是一款不错的编辑器,他可以编译,运行java,php等各种程序,现把他运行Python程序的方法贴出来,首先得安装python,然后打开editplug3,工具——配置用户工具——组 ...

  7. 如何使用sublime编辑器运行python程序

    现在越发喜欢sublime编辑器了,不仅界面友好美观.文艺,可扩展性还特别强. sublime本身是不具备运行python程序的能力的,需要做些设置才可以.以下是安装好sublime后设置的步骤: 点 ...

  8. Linux(9)后台运行python程序并输出到日志文件

    后台运行python程序并标准输出到文件 现在有test.py程序要后台部署, 里面有输出内容 使用命令: nohup python -u test.py > test.log 2>&am ...

  9. 周一02.3运行python程序的两种方式

    一.运行python程序的两种方式 方法一:交互式:                     优点:输入一行代码立刻返回结果                      缺点:无法永久保存代码 方法二: ...

随机推荐

  1. qbxt Day1 测试犯傻祭祀

    今天是2018/7/15 然后又是我最不喜乱的测试,期末考试爆炸仍在眼前. T1 van♂游戏 题意 小喵喵喜欢玩RPG游戏.在这款游戏中,玩家有两个属性,攻击和防御,现在小喵喵的攻击和防御都是1,接 ...

  2. HDU 1221 Rectangle and Circle(判断圆和矩形是不是相交)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1221 Rectangle and Circle Time Limit: 2000/1000 MS (J ...

  3. kinect v2

    http://www.tuicool.com/articles/NbmyyeU https://channel9.msdn.com/Blogs/raw-tech/Making-your-body-th ...

  4. 课时60.CSS的固定格式(掌握)

    CSS就是用来设置样式的,美化界面的 如何验证? 打开一个京东首页 删除掉css样式 发现页面变得非常难看 由此我们验证了一个说法,css就是用来美化界面的 1.格式: <style type= ...

  5. Spring知识点总结(四)之SpringAOP基础 - 代理设计模式

        1. 分析程序中存在的问题(高内聚,低耦合)        通过springIOC DI) 以及注解的使用,成功解决了在程序中层与层之间出现的耦合的问题,但是在很多地方仍然存在非该层应该实现的 ...

  6. Java研究

    Strap   箱线图  峰度  随机过程  马尔科夫  超几何分布  贝叶斯公式 随机变量    德摩根   功率谱   残差  吸收壁   平稳随机    chorst 深入JVM OSGI    ...

  7. motto - MySQL - 常用命令

    本文搜索关键字:motto mysql 登录数据库 mysql -uroot -proot -P3306 -h127.0.0.1 --prompt "\u@\h \d>" - ...

  8. ansible服务的部署与使用

      简介:   ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序 ...

  9. 进一步理解 frame 和 bounds

    总结一下 iOS中 frame 和 bounds之间的区别    综述 frame和bounds都是描述一块矩形区域,但是他们是有区别的 frame:可视范围,可以理解为控件的大小,把控件当作边缘很薄 ...

  10. 禁止鼠标点右键 - 防止刷新页面 - 禁止复制 chrome 和 firefox不能复制

    document.oncontextmenu = function () {//点右键,啥反应都没有了 return false; } document.onkeydown = function () ...