深入理解大数据期末复习

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

提高计算机性能的主要手段

✧提高处理器字长

✧提高集成度

✧流水线等微体系机构技术

✧提高处理器频率

迫切需要发展并行计算技术的主要原因

✧单处理器性能提升达到极限

✧应用规模和数据量急剧增大,超大的计算量/计算复杂度

并行计算技术的分类

1.按数据和指令处理结构:弗林(Flynn)分类

a)SISD:单指令单数据流

b)SIMD:单指令多数据流

c)MISD:多指令单数据流

d)MIMD:多指令多数据流

2.按并行类型

a)位级并行(Bit-Level Parallelism)

b)指令级并行(ILP: Instruction-Level Parallelism)

c)线程级并行(Thread-Level Parallelism)

i.数据级并行

ii.任务级并行

3.按存储访问构架

a)共享内存(Shared Memory)

b)分布共享存储体系结构

c)分布式内存(Distributed Memory)

4.按系统类型

a)多核/众核并行计算系统MC(Multicore/Manycore)

b)对称多处理系统SMP(Symmetric Multiprocessing)

c)大规模并行处理MPP(Massive Parallel Processing)

d)集群(Cluster)

e)网格(Grid)

5.按计算类型

a)数据密集型并行计算(Data-Intensive Parallel Computing)

b)计算密集型并行计算(Computation-Intensive Parallel Computing)

c)数据密集与计算密集混合型并行计算

6.按并行程序设计模型/方法

a)共享内存变量(Shared memory variables)

b)消息传递方式(Message Passing)

c)MapReduce方式

并行计算的主要技术问题

✧多核/多处理器网络互连结构技术

✧存储访问体系结构

✧分布式数据与文件管理

✧并行计算任务分解与算法设计

✧并行程序设计模型和方法

✧数据同步访问和通信控制

✧可靠性设计与容错技术

✧并行计算软件框架平台

✧系统性能评价和程序并行度评估

程序并行度评估

✧程序能得到多大并行加速依赖于该程序有多少可并行计算的比例。

✧经典的程序并行加速评估公式Amdahl定律:

✧根据Amdahl定律:一个并行程序可加速程度是有限制的,并非可无限加速,并非处理器越

多越好

MPI的功能

✧提供点对点通信

✧提供节点集合通信

✧提供用户自定义的复合数据类型传输

MPI并行程序设计接口

为什么需要大规模数据并行处理

✧处理数据的能力大幅落后于数据增长

✧海量数据隐含着更准确的事实

什么是MapReduce

✧基于集群的高性能并行计算平台(Cluster Infrastructure)

✧并行程序开发与运行框架(Software Framework)

✧并行程序设计模型与方法(Programming Model & Methodology)

为什么MapReduce如此重要?

✧高效的大规模数据处理方法

✧改变了大规模尺度上组织计算的方式

✧第一个不同于冯诺依曼结构的、基于集群而非单机的计算方式的重大突破

✧目前为止最为成功的基于大规模计算资源的并行计算抽象方法

MapReduce简介

✧对付大数据处理-分而治之

✧构建抽象模型-Map和Reduce

⏹主要设计思想: 为大数据处理过程中的两个主要处理操作提供一种抽象机制

✧上升到构架-自动并行化并隐藏底层细节

✧MapReduce的主要设计思想和特征

⏹向“外”横向扩展,而非向“上”纵向扩展

⏹失效被认为是常态

⏹把计算处理向数据迁移

⏹顺序处理数据、避免随机访问数据

⏹为应用开发者隐藏系统层细节

⏹平滑无缝的可扩展性

Hadoop MapReduce基本构架

⏹NameNode: 作为分布存储的主控节点,用以存储和管理分布式文件系统的元数据

⏹DataNode: 作为实际存储大规模数据的从节点,每个从节点基于底层的linux系统在本

节点上存储实际数据

⏹JobTracker: 作为MapReduce并行计算框架的主控节点,用以管理和调度作业的执行

⏹TaskTracker: 管理每个计算节点上计算任务的执行

Hadoop MapReduce程序执行过程

1.首先,用户程序客户端通过作业客户端接口程序JobClient提交一个用户程序。

2.然后JobClient向JobTracker提交作业执行请求并获得一个Job ID.

3.JobClient同时也会将用户程序作业和待处理的数据文件信息准备好并存储在HDFS中。

4.JobClient正式向JobTracker提交和执行该作业。

5.JobTracker接受并调度该作业,进行作业的初始化准备工作,根据待处理数据的实际分

片情况,调度和分配一定的Map和reduce节点来完成作业。

6.JobTracker启动TaskTracker节点开始执行具体的任务。

7.TaskTracker根据所分配的具体任务,获取相应的作业数据。

8.TaskTracker节点创建所需要的java虚拟机,并启动相应的Map(或Reduce)任务的执

行。

9.TaskTracker执行完所分配的任务后,若是Map任务,则把中间结果数据输出到HDFS中;

若是Reduce任务,则输出最终结果。

10.TaskTracker向JobTracker报告所分配的任务完成。若是Map任务完成并且后续还有

Reduce任务,则JobTracker会分配和启动Reduce节点继续处理中间结果并输出最终结果。

相关文档
最新文档