1. 首页
  2. 编程语言
  3. Python
  4. 用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试

用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试

上传者: 2022-03-20 11:23:06上传 PDF文件 259.43 KB 热度 17次

MapReduce与HDFS简介Google为自己的业务需要提出了编程模型MapReduce和分布式文件系统Google File System,并发布了相关论文。Doug Cutting和Mike Cafarella在开发搜索引擎Nutch时对这两篇论文做了自己的实现,即同名的MapReduce和HDFS,合起来就是Hadoop。MapReduce的Data flow如下图,原始数据经过mapper处理,再进行partition和sort,到达reducer,输出最后结果。因此,我们只需要在其他语言编写的程序里,通过stdin接收数据,再将处理过的数据输出到stdout,Hadoop streaming就能通过这个Java的wrapper帮我们解决中间繁琐的步骤,运行分布式程序。因此,mapper和reducer也不必是同一类的程序。注意itemgetter的效率比lambda表达式要高,所以如果需求不是很复杂的话,尽量用itemgetter比较好。我在编写Hadoop Streaming程序时的基本模版是如果对输入输出格式有不同于默认的控制,主要会在read_input()里调整。

下载地址
用户评论