数据密集型计算的概念
计算数据量级为TB或PB级
数据密集型计算的应用:基因工程领域、天文计算领域、商业计算领域
数据本地性概念及意义
概念:数据本地性是指将数据存储在计算节点附近的存储设备中,以减少数据传输延迟和带宽需求。在数据密集型计算中,数据本地性对于提高系统吞吐量具有重要
MapReduce处理海量数据的并行编程模型
HDFS
HDFS采用一种称为块的存储机制,将数据分成多个块进行存储。每个块都有多个副本,以提高数据的可靠性和性能
读取流程:
Client向NameNode发送读取请求。NameNode返回文件位置信息给Client。Client连接到相应的DataNode上读取数据块
写入流程:
Client向NameNode发送写入请求。NameNode返回可写入的DataNode列表给Client。Client连接到一个DataNode,并写入数据块。HDFS自动复制数据块到其他DataNode,确保数据可靠性和性能。
MapReduce的定义与工作流程
MapReduce是一种编程模型,用于大规模数据集的并行处理。它包含两个主要阶段,Map阶段和Reduce阶段
工作流程:
在Map阶段,输入数据被分割成多个小的数据块,并由每个Mapper映射器并行处理,产生一系列键值对的输出。
Reduce阶段:
- 合并:在Reduce阶段,相似的值被合并在一起,以便进行批量处理。合并操作包括将多个键值对组合成一个新的键值对,并对值进行汇总、统计或其他形式的处理
- 规约器(Reducer)处理
Reducer将键值对转换成所需的形式或输出。 - 输出
Reduce阶段的输出包括转换后的数据或结果,他们可以被写入文件、数据库或其他存储介质中
云处理技术Spark
Spark是一种计算引擎,使用Spark RDD接口执行数据操作,可并行处理数据,提升处理速度
结论:
- 优点集成:Spark继承了Hadoop MapReduce的优点,如处理速度快、可扩展性强、容错率高等,确保了高效性和可靠性
- 中间结果内存存储:与Hadoop MapReduce不同,Spark的Job中间输出结果可保存在内存中,减少了对HDFS的读写需求,使其更适用于需要迭代的算法,如数据挖掘与机器学习
- 通用性与起源:Spark是一个通用的并行处理框架,由UC Berkeley AMP lab开源,旨在提供高效、可扩展的数据处理能力
Hadoop
作业
选择题
-
下列选项中,那个选项是用于处理海量数据的并行编程模式和大规模数据集的并行运算的软件架构
()
MapReduce
-
MapReduce是一种处理海量数据的并行编程模式,用于
()
大规模的并行运算通常大于1TB
-
()
是谷歌提出的用于处理海量数据的并行编程模式和大规模数据集的并行运算的软件架构MapReduce
-
MapReduce是
()
计算框架分布式并行
-
下列关于Hadoop的阐述,正确的是
()
是一个分布式数据库与并行计算系统
-
下列关于HDFS为存储MapReduce并行切分和处理的数据做的设计,错误的是
()
- 正确的有
FADataInputStream扩展了DataInputStream以支持随机读
、一台机器可能被指派从输入文件的任意位置开始处理一个分片
、输入分片是一种记录的逻辑划分,而HDFS数据块是对输入数据的物理分割
,而错误的是为实现细粒度并行,输入分片应该越小越好
- 正确的有
-
HDFS在设计上采取了多种机制保证在硬件出错的环境中实现数据的完整性。总体而言,HDFS要实现以下哪些目标
大数据集
、流数据读写
、、强大的跨平台兼容性
、兼容廉价的硬件设备
-
下列关于云数据库的特点,错误的是
()
- 正确的有:
高扩展性
、采用多租行驶
、支持资源有效分布
、错误的是高可靠性
- 正确的有:
-
HDFS Federation设计不能解决“单名称节点”存在的哪些问题
()
单点故障问题
判断题
- 分布式处理是建立在集中和分离两种信息服务都能实现的原则基础上的
(√)
- 信息中心是实现分布式数据处理必不可少的部分
(√)
- 协作计算的优点是处理能力强,允许多用户使用
(√)
- 数据并行,相比消息传递编程级别更低
(×)
- 更高
- Spark对于中间输出结果需要进行读/写HDFS
(×)
- 对中间结果存放到内存中
- Hadoop具有高可靠性、高扩展性、高效性
(√)
- 在数据密集型计算中,充分利用数据本地性可以提高系统吞吐量
(√)
- MapReduce和Hadoop是相互独立的,彼此之间难以进行配合
(×)
- MapReduce本身就是Hadoop的一部分
- 数据并行可以适用于分布式或共享内存
(×)
- 没有共享内存
- MapReduce现已成为使用最广泛的并行编程模型之一
(√)
填空题
- 目前两种最重要的并行编程模型是
()()
数据并行
、消息传递
- 比较主流和经典的并行编程模型包括
()()
MapReduce
、Hadoop
- 云计算是由分布式计算、
()
、()
发展而来的HDFS
、MapReduce
- Hadoop的框架最核心的设计就是
()
和()
HDFS
、MapReduce
- 在数据密集计算中,充分利用
()
可以提高系统的吞吐量数据本地性
- Hadoop集群包含一个
()
和大量()
Namenode
、大量Datanode
- 数据密集型计算主要包括有如下领域:基因工程领域、
()
、()
天文计算领域
、商业计算领域
()
是构建在Spark上处理Stream数据的框架Spark Streaming
- Hadoop实现了一个分布式文件系统,简称为
()
HDFS
- MapReduce是处理大量
()
的编程模型半结构化数据集