基于DDS的MapReduce编程模式实现

 2022-06-16 09:06

论文总字数:26999字

摘 要

Map/Reduce是Google推出的一个并行编程框架,用于进行大规模数据集的并行运算。其基本思想便是将一个复杂的任务按照Map、Reduce的抽象模式去实现,便可以有效地对这个复杂的任务进行分解及并行计算。而目前在大多数Map/Reduce框架的实现中,采用了RPC的方式进行了分布式的集成。这种集成方式需要客户端知悉调用目标的主机名、端口号及调用方法名称,无法达到“即插即用”的集成程度。而如果采用DDS作为分布式集成方案,能够实现异构系统间的解耦,并可以给Map/Reduce中的各部件之间提供实时、可靠、高效的数据分发及通讯。因此,使用DDS作为分布式系统的集成方案,可以更好地支持Map/Reduce计算。本课题对Map/Reduce框架进行了研究,主要内容包括对Map/Reduce原理进行剖析,对Map/Reduce架构进行基于DDS上的设计,并对Map/Reduce框架进行了代码的实现。目前该框架已能够正常使用,并通过基础应用测试。

关键词:分布式计算、MapReduce

Abstract

Map/reduce is a parallel programming framework presented by Google, is used to perform parallel operations on large datasets. The basic idea is to abstract a complex task into two stages map and reduce, and then it can effectively decompose and compute this complex calculate task. At present, most Map/Reduce platforms use RPC to integrate the distributed system. This way requires the RPC client to be aware of the RPC Servers host name, port number, and method name of the calling target. Besides, it cannot reach the Plug and Play level. And if we integrate the distributed system with DDS, we enable to decoupling between each heterogeneous system, and provides real-time, reliable, and efficient data distribution and communication for the components in Map/reduce. Therefore, using DDS as the integration scheme for distributed system can support map/reduce better. This topic has done the research on the map/reduce architecture, includes the analysis of the map/reduce principle, made a design for the Map/reduce architecture based on the DDS, and also made it realize through programming. Currently, this MR framework has passed the basic tests, can be used properly.

KEY WORDS: distributed computing, MapReduce

目录

摘要 I

Abstract II

第一章 概述 1

1.1 引言 1

1.2 Map/Reduce计算模式研究现状 2

1.3 支撑软件现状 2

1.4 论文组织结构 3

第二章 MR原理剖析 4

2.1 MR工作原理 4

2.1.1 MR框架的使用流程 4

2.1.2 Map阶段 5

2.1.3 Reduce阶段 7

2.2 运行机制分析 9

2.2.1 架构及组成 9

2.2.2 部件分析 10

2.2.3 作业运行流程 10

第三章 系统设计 12

3.1 系统架构 12

3.2 用户接口 12

3.2.1 编程接口 13

3.2.2 系统配置 13

3.3 各部件设计 14

3.3.1 Client 14

3.3.2 JobTracker 15

3.3.3 TaskTracker 17

3.3.4 Task 17

第四章 系统关键点分析及功能测试 20

4.1 系统关键点分析 20

4.1.1 排序算法 20

4.1.2 数据本地化 21

4.2 功能测试 21

4.2.1 测试内容 21

4.2.2 测试步骤 22

4.2.3 测试结果 23

第五章 总结及展望 24

5.1 容错机制 24

5.2 任务调度 24

5.3 排序效率 24

致谢 25

参考文献 26

概述

引言

从工业化时代进入信息化时代后,以文字为载体的数据量以每三年翻一番的速度持续增长。而随着当前时代计算机技术及互联网的快速发展,半结构化、非结构化数据大量涌现,大数据计算的需求大量爆发,对处理数据能力的要求也变得越来越高。这意味着,如果采用传统的集中式计算方式对当前数据进行计算将会耗费大量的资源成本,不再符合当前新时代的要求。由此,基于多核、多线程并发以及基于大规模计算资源集群的分布式并行计算已成为提升计算性能的主要途径。

并行计算的概念是相对于串行计算而言的。并行计算在时间并行上采用流水线技术,空间并行上采用多个处理器执行并发计算,将大的任务化解成多个子任务同时计算,即并发计算。同理,分布式计算是相对于单机计算而言的。将待解决的计算问题通过分治的算法思想分解为碎片化的部分,并将需要进行大量计算的项目数据分割成小块,再由多台通过网络互连的计算资源分别进行计算处理,最后上传运算结果统一合并得出最终数据结论,这一过程便是分布式计算。

图 1 串行/并行计算及单机/分布式计算关系图

剩余内容已隐藏,请支付后下载全文,论文总字数:26999字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;