大数据复习提纲

第一章

大数据特征

数据量大: 信息社会中,数据以自然方式增长,数据每两年增加一倍。
数据种类繁多: 数据类型丰富,包括结构化数据和非结构化数据,如 邮件,音频,视频等,给数据处理和分析技术提出了新的挑战
处理速度快: 由于很多应用都需要基于快速生成的数据给出实时分析结果,因此新型的数据分析技术通常采用集群处理和独特的内部设计
价值密度低: 有价值的数据分布在海量数据中

云计算分类:

公有云: 面向所有用户提供服务
私有云: 只为特定用户提供服务
混合云: 将一些重要的东西放于私有云,不重要的东西放于公有云。

大数据的影响:

​ 大数据对科学研究思维方式社会发展都具有重要而深远的影响,

在科学研究方面,大数据使得人类科学研究在经历了实验、理论、计算3种范式之后,迎来了第四种范式数据:

在思维方式方面,大数据具有“全样而非抽样、效率面非精确、相关而非因果”三大是著特征,完全颠覆了传统的思维方式:

在社会发展方面。大数据决策逐渐成为一种新的决策方式, 大数据应用有力促进了信息技术与各行业的深度融合,大数据开发大大推动了新技术和新应用的不断涌现:

在就业市场方面,大数据的兴起使得数据科学家成为热门人才;

在人才培养方面,大数据的兴起将在很大程度上改变我国高校信息技术相关专业的现有教学和科研*。

大数据与云计算和物联网的联系:

​ 物联网是大数据的重要来源,大数据根植于云计算,大数据分析的很多技术来源于云计算;大数据为云计算提供用武之地,供云计算发挥价值,物联网借助与云计算和大数据技术,实现物联网大数据的存储、分析和处理。

大数据与传统数据库的区别与联系:

​ 数据仓库以关系型数据库为基础,受到数据类型和和数据量方面的限制。大数据决策可以面向类型繁多、非结构化的海量数据进行决策分析。

第二章

Hadoop特征:

高可靠: 采用冗余数据存储方式,即使一个副本发生故障,其他副本也可以保证正常对外提供服务
高效性: 作为并行分布式计算平台,Hadoop采用分布式存储和分布式处理两大核心,能够高效处理PB级数据
高可扩展性: Hadoop目标可以高效稳定的运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点上
高容错性: 采用冗余节点的存储方式,自动保存多个副本能够自动的将多个失败的任务进行重新分配
成本低: 运行在廉价的计算机集群上
运行在Linux平台上
支持多种语言开发

第三章

分布式文件系统的设计需求:

​ 透明性、并发控制、文件复制、硬件和操作系统的异构性、可收缩性、容错、安全。

分布式文件系统的结构:

​ 分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,
​ 这些节点分为两类,一类叫“主节点”或“名称节点”,
​ 一类叫“从节点”或“数据节点”。通过名称节点管理文件和目录并管理数据结点和文件块的映射关系,数据结点负责数据的存储和读取。

HDFS采用抽象的块概念,什么是块,有什么优势:

​ 默认为64 MB。与单一磁盘上的文件系统相似,HDFS上的文件也被分为以块为大小的分块,作为单独的单元存储。
​ 但与其不同的是,HDFS中小于一个块大小的文件不会占据整个块的空间。如果没有特殊指出,"块"在本书中就指代HDFS中的块。
优势:
支持大规模文件存储:
​ 文件以块为单位作为存储,一个大规模文件可以被分拆成若干个文件块,不同文件块可以分发到不同的节点上,因此一个文件块的大小不会受到单个节点的存储容量限制,可以远远大于网络中任意节点的存储容量
简化系统设计:
​ 简化存储管理,因为文件块是固定的,这样可以很容易的计算出一个节点可以存储多少文件块,
​ 其次,方便元数据的管理,元数据不需要和文件块一起存储,可以由其他系统负责管理源数据。
适合数据备份

名称节点和数据节点概念及其作用:

​ 通过名称节点管理文件和目录并管理数据结点和文件块的映射关系,
​ 数据结点负责数据的存储和读取。

第二名称节点的作用及其工作原理:

作用: 为了有效解决EditLog逐渐变大带来的问题,
​ 1.可以完成EditLog和FsImage的合并操作,减小EditLog文件大小,缩短名称节点重启时间.
​ 2.可以作为名称节点的检查点,保存节点中的元数据信息.

工作原理:
1. 使用新的日志
2. 从名称节点上获得FsImage和EditLog
3. 合并
4. 把检查节点回传给名称节点
5. 用FsImage.ckpt 替换FsImage 用EditLog.new 替换EditLog

第四章

Hbase特征:

海量存储
​ Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。
​ 这与Hbase的极易扩展性息息相关。正式因为Hbase良好的扩展性,才为海量数据的存储提供了便利。
列式存储
​ 这里的列式存储其实说的是列族存储,Hbase是根据列族来存储数据的。
​ 列族下面可以有非常多的列,列族在创建表的时候就必须指定。
极易扩展:
​ Hbase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。

通过横向添加RegionSever的机器,进行水平扩展,提升Hbase上层的处理能力,提升Hbsae服务更多Region的能力。

高并发
由于目前大部分使用Hbase的架构,都是采用的廉价PC,因此单个IO的延迟其实并不小,一般在几十到上百ms之间。这里说的高并发,主要是在并发的情况下,Hbase的单个IO延迟下降并不多。能获得高并发、低延迟的服务。
稀疏
稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。

HBase的三层结构(各层次名称、作用)

层次 名称 作用
第一层 Zookeeper文件 记录了-ROOT-表的位置信息
第二层 -ROOT-表 记录了.META.表Region位置信息 -ROOT-表只能有一个Region,通过-ROOT-表,就可以访问 .META.表中的数据
第三层 .META.表 记录了用户数据表的Region位置信息,.META表可以有多个Region, 保存了HBase中所有用户数据表的Region 位置信息

HBASE的列存储有什么优势:

​ 可以降低IO开销,支持大量并发用户查询,其数据处理速度比传统方法快100倍,因为仅需要处理可以回答这些查询的列,而不是分类整理与查询无关的行,具有较高的数据压缩比,较传统数据行更加有效。

HBASE实现原理(功能组件、表和region、region定位原理及能力计算)

大数据复习提纲

表和Region

大数据复习提纲

大数据复习提纲

大数据复习提纲

大数据复习提纲

Hbase系统架构

大数据复习提纲

Hlog工作原理

HBase系统为每个Region服务器配置了一个HLog文件,用户更新数据必须首先被计入日志后才能写入MemStore缓存,并且直到MemStore缓存内容对应的日志已经被写入磁盘之后,该缓存内容才会被刷新写入磁盘。

第五章

NoSQL数据库类型及其特征;

键值数据库:使用一个哈希表,表中有一个特定的Key和一个指针指向特定的Value,Key可以用来定位Value,即存储和检索具体的Value。
列族数据库:采用列族数据模型,数据库由多行构成,每行数据包括多个列族,不同行可以拥有不同数量的列族,属于同一列族的数据会被存放在一起。
文档数据库:文档作为最小单位,文档以某种标准化格式封装并对数据进行加密。
图数据库:使用图作为数据模型来存储数据

CAP概念及其相关选择原则;

C(Consistency):一致性,多点分布环境中,多点的数据是一致的。
A(Availability):可用性,指能够快速获取数据,可以在确定的时间内返回操作结果。
P(Tolerance of Network Partition):分区容忍性,指出现网络分区的情况时,分离的系统也能正常运行。

选择原则
CA:放弃分区容忍性,即影响系统的可扩展性,传统的关系数据库都采用了这种设计原则;
CP:放弃可用性,当出现网络分区的时候,受影响的服务需要等待数据一致,即在等待期间无法对外提供服务, Neo4J、BigTable等NoSQL数据库采用;
AP:放弃一致性,允许系统返回会不一致的数据,在Web2.0应用中是可行的。

NoSQL数据库与关系数据库的比较:

(1)关系数据库
优势:以完善的关系代数理论作为基础,有严格的标准,支持事务ACID四性,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持
劣势:可扩展性较差,无法较好支持海量数据存储,数据模型过于死板、无法较好支持Web2.0应用,事务机制影响了系统的整体性能等
(2)NoSQL数据库
优势:可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web2.0应用,具有强大的横向扩展能力等
劣势:缺乏数学理论基础,复杂查询性能不高,大都不能实现事务强一-致性,很难实现数据完整性,技术尚不成熟,缺乏专业团队的技术支持,维护较困难等
关系数据库和NoSQL数据库各有优缺点,彼此无法取代
关系数据库应用场景:电信、银行等领域的关键.业务系统,需要保证强事务一致性.

NoSQL数据库应用场景:互联网企业、传统企业的非关键业务(比如数据分析)

第七章

MapReduce中Shuffle的作用

将Map输出结果进行分区、排序、合并等处理并交给Reduce的过程,减少磁盘I/O的读写次数,并减小从Map到Reduce之间的数据传递量。

Map端和Reduce端Shuffle工作过程

Map端:输入数据和执行map任务、写入缓存、溢写(分区、排序和合并)、文件归并
Map的输出结果首先被写入缓存,当缓存满时就启动溢写操作,把缓存中的数据写入磁盘文件,并清空缓存。当启动溢写操作时,首先需要把缓存中的数据进行分区,然后对每个分区的数据进行排序和合并,之后再写入磁盘文件。每次溢写操作会生成一个新的磁盘文件,随着Map任务的执行,磁盘中就会生成多个溢写文件。在Map任务全部结束之前,这些溢写文件会被归并成一个大的磁盘文件,然后通知相应的Reduce任务来领取自己处理的数据。
Reduce端:领取数据、归并数据、把数据输入给Reduce任务
Reduce任务从Map端的不同Map机器领会属于自己处理的那部分数据,然后对数据进行归并后交给Reduce处理。

shuffle溢写操作种类

分区,排序,合并

实例分析与计算

由于移动数据需要大量的网络传输开销,因此移动计算比移动数据更加实惠,即将计算节点和存储节点放在一起运行。
本地计算:在一个集群中,只要有可能,MapReduce框架就会将Map程序就近地在HDFS数据所在的节点运行,从而减少节点间的数据移动开销。

第八章

Hadoop的局限与不足

抽象层次低

表达能力有限

开发者自己管理作业之间的依赖关系

难以看到程序的整体逻辑

执行迭代操作效率低

资源浪费

实时性差

HDFS HA作用及其原理

请描述HDFS HA架构构成组件及其具体功能

HA架构中,一般设置了两个名称节点。一个为活跃的名称节点,负责对外处理所有客户端的请求;一个为待命的名称节点,作为备用节点,保存了足够多的系统元数据,当名称节点出现故障时提供快速恢复能力。

请分析HDFS HA架构中数据节点如何和名称节点保持通信

当一个数据节点加入HDFS集群时,会把自己所包含的数据块列表报告给两个名称节点(数据节点配置时会给出两个名称节点的地址),此后通过“心跳”的方式定期执行这种告知操作,以确保名称节点的块映射是最新的。

第九章

Spark运行架构

RDD概念及依赖关系

一个RDD就是一个分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可分成多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群的不同节点上进行并行计算。

大数据复习提纲

窄依赖:每个父RDD的一个Partition最多被子RDD的一个Partition所使用。如map,filter,union操作都会产生窄依赖。
宽依赖:一个父RDD的Partition会被多个子RDD的Partition所使用。如groupByKey,reduceByKey,sortByKey等操作都会产生宽依赖。宽依赖会产生Shuffle操作。
也就是说,如果父RDD的一个Partition被一个子RDD的Partition所使用就是窄依赖,或者,对父RDD的Partition依赖的子RDD的Partition数量不会随着RDD数据规模的改变而改变,也是窄依赖,否则就是宽依赖。
join操作有两种情况:如果在join操作时,每个Partition只和已知的Partition进行join(确定的Partition数量的依赖关系),此时为窄依赖,其他情况的join操作是宽依赖。只要是确定的Partition数量的依赖关系,就是窄依赖。窄依赖不仅仅包含一对一的情况,还有一对固定个数的情况,也就是对父RDD的依赖Partition的数量不会随着RDD数据规模的改变而改变。

上一篇:Spark学习(一)RDD理解与操作


下一篇:RDD编程初级实践