作者:Jason204 |
可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址:http://jason204.iteye.com/admin/blogs/1677664
1. 背景
Hadoop支持Java以及C/C++开发,其中Hadoop Pipes(C++)支持MapReduce,而Hadoop
libhdfs(C)支持HDFS的访问。但Python的解决方案仅能支持Hadoop部分功能,具体如下。
- Hadoop Streaming:1.
Awkward编程风格;2.仅能编写Mapper和Reducer脚本,不能编写RecordReader/Writer,Partitioner脚本;3.
不能访问HDFS;4. 仅能处理文本数据流;
- Jython:1.支持不完整的标准库;2.大多数第三方包仅兼容CPython;3.不能使用C/C++扩展;
- Hadoop-based类:局限性类似于Hadoop Streaming/Jython。
- Non-Hadoop MR类:不成熟。
以上Python方案只支持hadoop部分功能,不能完全同时支持MapReduce/HDFS。因此CRS4提出了Pydoop
方案,用Python封装Hadoop Pipes和libhdfs,实现MapReduce和HDFS的访问。
2. Pydoop特性
Pydoop的特性如下:
- 支持访问多数MR组件(RecordReader/Writer/Partitioner);
- 获取configuration,设置counter和report status;
- Like Java编程;
- 支持CPython,支持Python模块;
- 支持Hadoop HDFS API。
综上所述,归纳了Hadoop Streaming-Jython-Pydoop类的特性,如下图。
3. Pydoop架构
Pydoop架构如下图所示,包括整合Pipes和整合C libhdfs两部分。
- 整合Pipes:方法调用流从Hadoop Framework开始,通过C++ Pipes和Python
API,最后到达用户自定义的方法;Boost封装结果后,返回至Hadoop Framework。
- 整合C libhdfs: 与Pipes相反,函数调用由Pydoop触发,通过C libhdfs,到达Hadoop
framework; Boost封装结果后返回Pydoop端。
4. Pydoop模块包
Pydoop包括pydoop.hdfs、pydoop.pipes、pydoop.utils、pydoop.hadut等模块包,包的详细功能如下:
- Hdfs:hdfs api模块,包括hdfs.path、hdfs.fs、
hdfs.file子包。主要有访问HDFS,读写文件,获取文件/目录/文件系统属性的信息功能。
-
Pipes:mapreduce模块包,用于编写Mapreduce程序,编写mapreduce组件(Mapper,
Reducer, RecordReader/Writer, Partitioner,etc.)。
- Utils: utility函数模块包。
- Hadut:hadoop shell命令模块包。
参考资料
Pydoop: a Python MapReduce and HDFS API for
Hadoop
Python MapReduce Programming with
Pydoop
Pydoop官网
- 大小: 22.2 KB
- 大小: 40.2 KB
- 大小: 31.7 KB
分享到:
相关推荐
资源分类:Python库 所属语言:Python 资源全名:pydoop-1.0.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Pydoop是用于的Python MapReduce和HDFS API。 版权所有 。 首先,请看一下 。
您可以在本地计算机上没有安装hadoop和pydoop的情况下运行map reduce pydoop任务,并检查它们是否不包含语法错误并返回有效数据。 Fake-Pydoop可以读取文本或hadoop序列文件作为输入,并在stdout或给定的输出文件上...
Pydoop 是用于 Hadoop 的 Python MapReduce 和 HDFS API。
股价走势预测 使用 Mahout 和 Pydoop+Scikit-learn 预测股价走势 我们网站上的详细信息: :
访问HDFS API Pydoop软件包(Python和Hadoop)使您可以访问Hadoop的HDFS API,从⽽可以编写Hadoop MapReduce程序和应⽤程序。HDFSAPI 对您有何好处? 所以,你去。 HDFS API使您可以轻松地在⽂件,⽬录和全局⽂件系统...
很棒的Hadoop 精选的超赞Hadoop和Hadoop生态系统资源列表。 受到 , 和启发 Hadoop -Apache Hadoop - 的对象存储 -Hadoop中基于YARN的数据处理... -Pydoop是一个为Hadoop提供Python API的软件包。 -HDFS-DU是Ha
利用Pydoop实现MapReduce以构建特征矩阵 使用Pig脚本生成功能 使用Python,Scikit-Learn,Pig,Hadoop,HDFS,AWS EMR,IPython构建 技术指标 Python 2.7 Hadoop 2.7.3 Scikit学习 大熊猫 线性回
我的分析工作主要是利用Python语言和它很棒的科学计算栈来进行的。但Apache Hadoop的生态系统大部分都是用Java来实现的,也是为Java准备的,这让我很恼火。所以,我的头等大事变成了寻找一些Python可以用的Hadoop...