大数据复习

下载项目资源:
官方参考答案 (PDF, 2.4MB)

1.大数据的四个特点

P7

查看内容
  • 数据量大 Volume
  • 数据类型繁多 Variety总体分成三类:结构化、半结构化、非结构化,细分类型更加丰富
  • 处理速度快 Velocity
  • 价值密度低 Value很多情况,虽数据量很大,但是有价值的信息很少

2.大数据、云计算、物联网的关系

P28-29

查看内容
  • 三者的区别:
    ①大数据侧重数据的存储、处理和分析,从海量数据中发现价值
    ②云计算旨在整合优化资源,并通过网络以服务的方式廉价地提供给用户
    ③物联网的发展目标是实现“物物相连”,应用创新是物联网发展的核心
  • 三者的联系:
    整体上看,三者相辅相成
    具体联系如上图

3.Hadoop的特性

P32

查看内容
  • 高可靠性
  • 高效性
  • 高扩展性
  • 高容错性
  • 成本低
  • 支持运行在Linux操作系统上
  • 支持多种编程语言

4.数据块

P49

查看内容
  • 磁盘块:磁盘空间中每512B空间为一组,这一组就是一个磁盘块,是系统进行读写的最小单位
  • 数据块:磁盘块大小(512B)的整数倍的块

考点:

1.HDFS中的数据块与普通文件系统的数据快有什么区别(最可能考)

  • HDFS中的数据块要比普通文件系统中的数据块大得多
  • 在HDFS中,若文件大小小于数据块大小,该文件并不占用整个数据块存储空间

2.什么是分布式系统

  • 采用数据块的概念
  • 文件被分成若干个数据块进行存储
  • 分布式文件系统的数据块要比普通文件系统中的数据块大得多
  • HDFS默认的数据块大小是128MB
  • 若文件大小小于数据块大小,该文件并不占用整个数据块的存储空间

3.分布式文件系统的结构

  • 由主节点(名称节点)和从节点(数据节点)构成
  • 名称节点负责文件和目录的创建、删除和重命名,管理数据节点和数据块的映射关系
  • 数据节点负责数据的存储和读取
  • 用户先访问名称节点然后获得数据节点和数据块的映射关系

5.第二名称节点的工作过程(如何工作)

P53

查看内容
  • 名称节点的核心文件:FsImage文件和EditLog文件
  • FsImage文件:用于管理文件和文件夹中的元数据
  • EditLog文件:用于记录所有对于文件的操作
  • 核心文件的工作过程:当名称节点启动时,根据EditLog文件中记录的操作,用FsImage文件进行逐步执行,使得元数据保持最新,全部执行后,FsImage文件进行同步更新,然后创建一个空的EditLog文件记录后续操作。(HFDS中的操作都会先写进EditLog文件,而不直接写进FsImage文件)

第二名称节点

  • 作用:减小EditLog文件的大小,对名称节点进行定期备份
  • 工作流程:
    ①第二名称节点定期与名称节点通信,令名称节点停止使用EditLog文件(t1时刻)
    ②后续HDFS中新的操作记录在EditLog.new文件中
    ③第二名称节点将FsImage和EditLog拉回本地(备份t1时刻文件),加载到内存进行合并,逐条执行EditLog的操作,得到最新的FsImage文件(FsImage.ckpt),将其发送给名称节点
    ④名称节点接受后,用新的FsImage.ckpt替换旧的FsImage,同时用EditLog.new替换EditLog(t2时刻)
  • 缺点:无法处理t1到t2之间发生的故障

6.数据冗余的解决方法多副本方式的优点

P56

查看内容
  • 加快数据传输速度
  • 容易检查数据错误
  • 保证数据的可靠性

7.数据模型的相关概念

P73

查看内容
  • 行键:HBase表由若干行组成,每行由行键标识。行键可以是任意字符串(一般10-100B),在HBase内部,行键保存为字节数组。存储时数据按照行键的字典序存储
  • 列族:HBase表被分为很多列族的集合,一般只能有几十个列族,需要在表创建时就定义好且不能频繁修改。存储在一个列族中的数据通常是同一种数据类型
  • 列限定符:列族里的数据通过列限定符来定位,没有数据类型,总被视为字节数组byte[]
  • 时间戳:每个单元格中保存着同一个数据的不同版本,不同版本采用时间戳索引。每次操作,HBase会自动生成并存储一个时间戳(一般是64位整形数据)。用户可自定义赋值时间戳。

8.NoSQL数据库的三大基石(二考一)

P109

第一大基石

第一大基石:CAP

具体内容

C:一致性,各节点数据是一致的
A:可用性,快速获取数据并在确定时间内返回操作结果
P:分区容忍性,系统中部分节点无法通信时,分离的系统也能正常运行
CAP理论:分布式系统不能同时满足C、A、P三种特性,最多同时满足两个

  • CA:放弃分区容忍性(P)。把所有与事务相关的内容放到同一台机器上,但可扩展性差
  • CP:放弃可用性(A)。节点无法通信时,受影响的服务需要等待数据一致,等待期间不可用
  • AP:放弃一致性(C)。允许系统返回不一样的数据,一般对于Web2.0可行,首先确保服务可用,数据更新的时间不会过于影响用户体验
第三大基石

第三大基石:最终一致性

具体内容
  • 最终一致性:只要经过一段时间后能够访问到更新后的数据即可。
  • 不一致性窗口:更新操作完成后续可以访问更新的值 的时间间隔
  • 最终一致性的分类:
    ①因果一致性:进程A通知进程B它更新了一个数据项,进程B后续访问可以立刻获得A的最新值,而无因果关系的进程C,无法立刻获得,而是最终获得。
    ②读己之所写一致性:是因果一致性的特例。进程A更新后,它自己总是可以访问到更新过后的值
    ③会话一致性:把访问存储系统的进程放到会话的上下文中(会话:一段有始有终的交互期),只要会话存在,系统就要保证读己之所写一致性
    ④单调读一致性:若进程B已经看到进程A的某个值,则后续任何访问都不会返回以前的值
    ⑤单调写一致性:系统保证同一个各进程的多个写操作要按顺序进行(必须保证)
    注:一个进程A在会话S中成功写入一个v值到k键,后续在当前会话中读取k键时,必须访问到v值或者是v值更新之后的值(并发其他会话写入的)

9.云数据库的特点(简单阐述)

P121

查看内容
  • 动态可扩展性
  • 高可用性
  • 较低的使用代价
  • 易用
  • 高性能
  • 免维护
  • 安全

10.Shuffle详细过程(大题,关键点)

P138

了解即可,可以不看

MapReduce 并行编程模型

  • 核心:Map和Reduce函数
    • Map对分布式系统的数据块中的元素进行处理,转换成的形式
    • Reduce把Map处理后的数据中具有相同键的键值对以某种方式组合起来,然后输入对应的Reduce任务进行处理
  • 工作流程
    ①对要处理的数据进行逻辑上的切分,没有对文件进行实际切分,只是记录处理数据的位置和长度
    ②处理数据,将其转化成适合Map任务的键值对,然后输入给Map任务
    ③根据映射规则,输出一系列为中间结果
    ④Map端的shuffle:对中间结果进行分区、排序、归并(和合并),得到,然后交给Reduce
    ⑤Reduce以作为输入,执行用户定义的逻辑,输入结果交给输出模块
    ⑥输出模块验证输出目录,然后输出Reduce的结果到分布式文件系统

Shuffle过程详解

Shuffle过程(大题,要写出关键点)
Map端

Map端的Shuffle过程(4步)

  • ①输入数据和执行Map任务
    输入的数据是数据块中的元素,数据块格式任意;通过RR将数据块中的数据转成Map任务可以处理的< key1,value1 >,然后Map任务按一定规则将其转成多个< key2i,value2i >
  • ②写入缓存

    每个Map任务处理后的数据会写入缓存,累计一定数量后再一次性写入磁盘,减少对磁盘I/O的影响,数据写入缓存之前,键值会被序列化成字节数组

  • ③溢写(分区、排序、合并)

    • 缓存容量一般是100MB,一般设置比例如0.8,当缓存80%空间被填入数据就启动溢写(把缓存中的内容一次性写入磁盘并清空这80%的缓存),剩余的20%空间供Map任务不断写入数据
    • 溢写到磁盘之前,缓存中的数据首先被分区,采用哈希函数对键进行映射,然后均匀的分配给n个Reduce任务
    • 根据每个分区内的键值对进行内存排序,排序后有个可选的合并操作
    • 合并是指将具有相同键的键值加起来,< xmu,1 >和< xmu,1 >合并成< xmu,2 >,与Reduce的功能相似,一般只有累加和求最大值可以使用合并
    • 每次溢写后会生成一个新的溢写文件,写入溢写文件的所有键值对都是经过分区和排序的
  • ④文件归并
    溢写文件会越来越多,Map任务全部结束之前,系统会对所有溢写文件中的数据进行归并
Reduce端

Reduce端的Shuffle过程(3步)

  • ①“领取”数据
    Reduce从Map端领取自己需要处理的分区数据
  • ②归并数据
    • 领取的数据存放在缓存中,如缓存占满需要把数据溢写到磁盘。
    • 缓存中的数据来着不同Map机器,一般存在很多可以合并的键值对,启动溢写时,具有相同键的键值归并
    • 溢写产生溢写文件,一般每10个归并成一个大文件
  • ③把数据输入到Reduce任务
    • 已经归并后的大文件不会继续合并成新的大文件,而是直接输入Reduce任务

11.HDFS联邦相对于HDFS1.0的优势

P161

查看内容
  • 使HDFS集群具有更好的可扩展性
  • 系统整体性能更高
  • 良好的隔离性

12.湖仓一体架构的特性

P174

查看内容
  • 事务支持
  • 数据治理
  • BI支持
  • 存算分离
  • 开放性
  • 支持多种数据类型

13.Spark的主要特点

P194

查看内容
  • 运行速度快
  • 容易使用
  • 通用
  • 运行模式多样

Linux系统常用命令

点击展开

1.熟悉常用的Linux操作
1)cd命令:切换目录
2)ls命令:查看文件与目录
3)mkdir命令:新建目录
4)rmdir命令:删除空的目录
5)cp命令:复制文件或目录
6)mv命令:移动文件与目录,或更名
7)rm命令:移除文件或目录
8)cat命令:查看文件内容
9)tac命令:反向查看文件内容
10)more命令:一页一页翻动查看
11)head命令:取出前面几行
12)tail命令:取出后面几行
13)touch命令:修改文件时间或创建新文件
14)chown命令:修改文件所有者权限
15)find命令:文件查找
16)tar命令:压缩命令
17)grep命令:查找字符串