分布式编程模式MapReduce应用[参考].pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
分布式编程模式MapReduce应用 分布式编程模式 MapReduce 是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。这种模式允许程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大的分布式系统资源。 作为 Hadoop 程序员,需要做的事情包括: 1、定义 Mapper,处理输入的 Key-Value 对,输出中间结果。 2、定义 Reducer,可选,对中间结果进行规约,输出最终结果。 3、定义 InputFormat 和 OutputFormat,可选, InputFormat 将每行输入文件的内容转换为 Java 类供 Mapper 函数使用,不定义时默认为 String。 4、定义 main 函数,在里面定义一个 Job 并运行它。 Hadoop 的架构包括 HDFS 和 MapReduce。HDFS 实现了 Google 的 GFS 文件系统,NameNode 作为文件系统的负责调度运行在 master,DataNode 运行在每个机器上。MapReduce 实现了 Google 的 MapReduce,JobTracker 作为 MapReduce 的总调度运行在 master,TaskTracker 则运行在每个机器上执行 Task。 在编写 MapReduce 程序时,需要创建 JobConf,定义 Mapper、Reducer、InputFormat 和输出文件目录,最后把 Job 提交给 JobTracker,等待 Job 结束。JobTracker 创建一个 InputFormat 的实例,调用它的 getSplits() 方法,把输入目录的文件拆分成 FileSplits 作为 Mapper 任务的输入,生成 Mapper 任务加入 Queue。TaskTracker 向 JobTracker 索求下一个 Map/Reduce 任务,Mapper 任务从 InputFormat 创建 RecordReader,循环读入 FileSplits 的内容生成 Key 与 Value,传给 Mapper 函数,处理完后中间结果写成 SequenceFile。Reducer 任务从运行 Mapper 任务的 TaskTracker 的 Jetty 上使用 HTTP 协议获取所需的中间内容,Sort/Merge 后,执行 Reducer 函数,最后按照 OutputFormat 写入结果目录。 通过使用 MapReduce,程序员可以轻松地处理超大的分布式系统资源,不需要有什么并发处理或者分布式系统的经验。MapReduce 的 run-time 系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。 在 Hadoop 中,Nutch 项目的全部数据处理都构建在 Hadoop 之上,详见 Scalable Computing with Hadoop。程序员可以使用 Hadoop 实现分布式的 Grep,简单对输入文件进行逐行的正则匹配,如果符合就将该行打印到输出文件。
- 粉丝: 2
- 资源: 12万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 柯尼卡美能达Bizhub C266打印机驱动下载
- java游戏之我当皇帝那些年.zip开发资料
- 基于Matlab的汉明码(Hamming Code)纠错传输以及交织编码(Interleaved coding)仿真.zip
- 中国省级新质生产力发展指数数据(任宇新版本)2010-2023年.txt
- 基于Matlab的2Q-FSK移频键控通信系统仿真.zip
- 使用C++实现的常见算法
- travel-web-springboot【程序员VIP专用】.zip
- 基于Matlab, ConvergeCase中部分2D结果文件输出至EXCEL中 能力有限,代码和功能极其简陋.zip
- java桌面小程序,主要为游戏.zip学习资源
- Java桌面-坦克大战小游戏.zip程序资源