zoukankan      html  css  js  c++  java
  • 使用Python实现Map Reduce程序

    使用Python实现Map Reduce程序

    起因

    想处理一些较大的文件,单机运行效率太低,多线程也达不到要求,最终采用了集群的处理方式。

    详细的讨论可以在v2ex上看一下。

    步骤
    • MapReduce程序要分为两部分,即Map和Reduce部分,所以Python代码也是要分为两部分
    • 程序运行
    hadoop jar contrib/streaming/hadoop-streaming-1.1.2.jar   
    -mapper /usr/local/hadoop/mapper.py   
    -reducer /usr/local/hadoop/reducer.py   
    -input book/*   
    -output book-output 
    
    • jar文件要在本机上找到,可以使用find命令搜索
    • input和output目录要在hdfs上
    • mapper和reducer代码放在本机即可
    • Map 和 Reduce间传递数据通过STDIN (标准输入)和STDOUT (标准输出)
    程序实例
    • 可以写一个什么都不做的程序,即获得输入,然后输出
    • mapper.py如下
    import sys
    
    for line in sys.stdin:
        print line
    
    • reducer.py如下
    import sys
    
    for line in sys.stdin:
        print line
    
    • 赋予代码可运行权限 chmod即可
    • 然后运行即可在output位置查看输出
    参考
  • 相关阅读:
    Linux进阶之Linux中的标准输入输出
    PermCheck
    FrogRiverOne
    PermMissingElem
    FrogJmp
    TapeEquilibrium
    恒生电子长沙2016实习生笔试题
    接口和抽象类的异同点?
    C#实现二叉树
    C#实现栈和队列
  • 原文地址:https://www.cnblogs.com/wswang/p/7718141.html
Copyright © 2011-2022 走看看