`
jason204
  • 浏览: 41662 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Pydoop 架构和模块包介绍

阅读更多

 

作者: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库 | pydoop-1.0.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pydoop-1.0.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    pydoop:适用于HadoopPython MapReduce和HDFS API

    Pydoop是一个强大的开源工具,它为Python程序员提供了一个接口,可以轻松地利用Apache Hadoop的MapReduce编程模型和HDFS(Hadoop分布式文件系统)API。这个框架使得Python开发者无需深入理解Java,就能参与到Hadoop...

    pydoop-开源

    1. 数据分析:Pydoop常用于大规模数据的预处理、清洗和转换,利用Python丰富的数据分析库如Pandas和NumPy,可以高效地完成数据处理任务。 2. 学术研究:在学术领域,Pydoop可以帮助研究人员快速处理海量数据,进行...

    fake-pydoop:伪pydoop实现用于测试

    您可以在本地计算机上没有安装hadoop和pydoop的情况下运行map reduce pydoop任务,并检查它们是否不包含语法错误并返回有效数据。 Fake-Pydoop可以读取文本或hadoop序列文件作为输入,并在stdout或给定的输出文件上...

    信息流算法在微博机器学习平台(WML)的实践_于翔@新浪微博.pdf

    首先,文章介绍了微博机器学习平台(WML)的背景和架构,包括WeiFlow统一架构、WeiLearn深度学习平台和WeiServing在线推理框架。WML是微博机器学习平台,旨在解决业务场景高度相似性、重复人力投入、成果共享有阻力...

    Python基础与大数据应用-习题答案.zip

    包则是一个组织模块的方式,如numpy用于数值计算,pandas用于数据分析。 4. **异常处理**:通过try-except-finally结构处理程序运行中的错误。 5. **文件操作**:学习如何读写文件,包括文本文件和二进制文件。 6...

    Stock-price-Movement-Prediction:使用 Mahout 和 Pydoop+Scikit-learn 预测股价走势

    在本项目中,Pydoop可能用于处理和预处理大量股票交易数据,以便进一步输入到机器学习模型中。这包括数据清洗、缺失值填充、异常值处理等步骤,确保输入数据的质量和准确性。 Scikit-learn是Python中最受欢迎的机器...

    信息流算法在机器学习中的实践.pptx

    针对性能优化,WeiLearn 不断更新 TensorFlow 版本,引入 pydoop、多进程 grpc,甚至使用 MPI 和 NCCL2 支持多 GPU 通信,以应对大数据量的挑战。 WeiServing 是在线推理服务框架,负责模型的实时应用。它的系统...

    如何在python中用HDFS文件系统实现高效存储

    Python在HDFS文件系统上实现高效存储的过程不仅限于使用H5Py库,还可以借助其他工具和库,比如Pydoop,这是一个支持在Python中操作HDFS的库。Pydoop允许用户以Python的方式编写MapReduce任务,并与HDFS进行交互,...

    Python库 | pooch-1.1.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pooch-1.1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    hadoop-2.9.2-Windows.zip

    1. **Hadoop架构**:Hadoop主要由两个核心组件组成——HDFS(Hadoop Distributed File System)和MapReduce。HDFS是一个分布式文件系统,用于存储大量数据;MapReduce则是一种并行处理模型,用于对HDFS中的数据进行...

    python hadoop

    5. **JPython MapReduce框架Pydoop等**:Pydoop是一个Python接口,用于Hadoop的MapReduce,它允许开发者使用Python编写MapReduce程序,从而充分利用Python的灵活性和易用性。 #### 四、Python结合Hadoop构建数据...

    Python-分布式系统资源大列表

    分布式系统是多个计算机通过网络协同工作,共同处理一个任务的架构。这个"Python-分布式系统资源大列表"集合了一整套用于构建、理解和优化分布式系统的宝贵资料,对于Python开发者来说是不可多得的学习宝典。 首先...

    Mapreduce-1python中的MapReduce的孙子祖父母对.zip

    在Python中,虽然没有官方的原生实现,但有很多第三方库如Hadoop的PyDoop或Apache Spark的PySpark提供了MapReduce的接口,使得Python开发者也能利用这种强大的数据处理工具。我们来深入了解一下MapReduce的基本概念...

    MapReduce2.0程序设计多语言编程(理论+实践)

    例如,`org.apache.hadoop.mapreduce`包下的各种类和接口,如Job、TaskAttemptID等,用于配置和管理MapReduce作业。 4. **多语言编程**:除了Java,MapReduce还支持其他编程语言,如使用Python的`hadoop streaming`...

    Python中Hadoop MapReduce的一个简单示例.zip

    Pydoop提供了Python接口,允许开发者以Python代码编写Map和Reduce函数,然后提交到Hadoop集群运行。例如,Map函数可能会解析文本行,寻找关键词,而Reduce函数则会计算关键词的频率。 总的来说,这个压缩包提供的...

    Python库 | pgo-0.1.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pgo-0.1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python+Spark 2.0+Hadoop机器学习与大数据

    在Python和Spark中,可以通过Hadoop的Python接口(PyDoop)或者使用Spark的Hadoop兼容层与HDFS进行交互,实现对Hadoop集群的数据访问。 书中可能会涵盖以下内容: 1. Hadoop生态系统的介绍,包括HDFS、MapReduce、...

    BigDataLabWorks

    在大数据项目中,了解Python的基本语法,如变量、数据类型、控制结构(循环、条件语句)、函数和模块,是必要的。 2. **Numpy**:Numpy是Python中的科学计算库,提供了多维数组对象和矩阵运算功能。在处理大数据时...

    Hadoop实战源代码

    综上所述,《Hadoop实战源代码》这份资料通过各种语言的实践代码,全面介绍了Hadoop的使用和开发,是提高Hadoop技能和解决实际问题的重要参考资料。通过深入研究这些源代码,开发者不仅可以了解Hadoop的工作原理,还...

Global site tag (gtag.js) - Google Analytics