咱们一般写mapreduce是通过java和streaming来写的,身为pythoner的我,
java不会,没办法就用streaming来写mapreduce日志分析。 这里要介绍一个
模块,是基于streaming搞的东西。
mrjob 可以让用 Python 来编写 MapReduce 运算,并在多个不同平台上运行,你可以:
使用纯 Python 编写多步的 MapReduce 作业
在本机上进行测试
在 Hadoop 集群上运行
pip 的安装方法:
我测试的脚本
用法算简单:
python i.py -r inline input1 input2 input3 > out 命令可以将处理多个文件的结果输出到out文件里面。
本地模拟hadoop运行:python 1.py -r local output
这个会把结果输出到output里面,这个output必须写。
hadoop集群上运行:python 1.py -r hadoop output
执行脚本 ~
执行的时候,资源的占用情况。
发现一个很奇妙的东西,mrjob居然调用shell下的sort来排序。。。。