logo资料库

计算机大三 大数据期末考试必备复习资料,.docx

第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
资料共19页,剩余部分请下载后查看
大数据基础与应用知识总结 第一章 大数据的 5V Volume(数据容量) Variety(数据类型) Viscosity(价值密度) Velocity(速度) Veracity(真实性) 第二章 第一范式:主要描述自然现象,以观察和实验为依据的研究,可称为经验范式 第二范式:以建模和归纳为基础的理论学科和分析范式,又称为理论范式 第三范式:模拟复杂现象为基础的计算科学范式,又称为模拟范式。 第四范式:以数据考察为基础,联合理论、实验和模拟一体的数据密集计算的 范式。 第三章 可伸缩性的概念:通过扩展系统规模来提高性能并处理更大数量的用户和通过 扩展系统规模提高系统的容错能力等 可伸缩性的实现: 1、横向扩展:指向逻辑单元之外的扩展,增加更多逻辑单元的资源并使它们像 一个单元一样工作,即在原有的分布系统添加一个新机器。 优点:可利用初始硬件成本,不需要更改应用程序 2、纵向扩展:指在同一个逻辑单元内增加资源来提高处理能力,即在原有的机 器添加 CPU、内存等软硬件资源。 优点:在单一系统上扩展,不需要进行复杂的配置,不需要对数据库进行重大 更改。 CAP 理论: 一致性(Consistency):所有节点在同一时间具有相同的数据。 可用性(Availablity):保证每个请求的成功或者失败都有响应。 分区容错性(Partition Tolerance)系统中任意信息的丢失或者失败不影响系 统的继续运行。 CAP 定理:一个分布式系统不可能同时满足一致性、可用性、分区容错性三个系 统需求,最多能同时满足两个系统需求。 CAP 的证明过程
1、CAP 定理的证明 如左图,是我们证明 CAP 的基本场景,网络中有两个节点 N1 和 N2,可以简单的 理解 N1 和 N2 分别是两台计算机,他们之间网络可以连通,N1 中有一个应用程 序 A,和一个数据库 V,N2 也有一个应用程序 B2 和一个数据库 V。现在,A 和 B 是分布式系统的两个部分,V 是分布式系统的数据存储的两个子数据库。 在满足一致性的时候,N1 和 N2 中的数据是一样的,V0=V0。在满足可用性的时 候,用户不管是请求 N1 或者 N2,都会得到立即响应。在满足分区容错性的情况 下,N1 和 N2 有任何一方宕机,或者网络不通的时候,都不会影响 N1 和 N2 彼此 之间的正常运作。 如上图,是分布式系统正常运转的流程,用户向 N1 机器请求数据更新,程序 A 更新数据库 Vo 为 V1,分布式系统将数据进行同步操作 M,将 V1 同步的 N2 中 V0, 使得 N2 中的数据 V0 也更新为 V1,N2 中的数据再响应 N2 的请求。 这里,可以定义 N1 和 N2 的数据库 V 之间的数据是否一样为一致性;外部对 N1 和 N2 的请求响应为可用性;N1 和 N2 之间的网络环境为分区容错性。这是正常 运作的场景,也是理想的场景,然而现实是残酷的,当错误发生的时候,一致性 和可用性还有分区容错性,是否能同时满足,还是说要进行取舍呢? 作为一个分布式系统,它和单机系统的最大区别,就在于网络,现在假设一种极 端情况,N1 和 N2 之间的网络断开了,我们要支持这种网络异常,相当于要满足 分区容错性,能不能同时满足一致性和响应性呢?还是说要对他们进行取舍。
假设在 N1 和 N2 之间网络断开的时候,有用户向 N1 发送数据更新请求,那 N1 中的数据 V0 将被更新为 V1,由于网络是断开的,所以分布式系统同步操作 M, 所以 N2 中的数据依旧是 V0;这个时候,有用户向 N2 发送数据读取请求,由于 数据还没有进行同步,应用程序没办法立即给用户返回最新的数据 V1,怎么办 呢?有二种选择: 第一,牺牲数据一致性,响应旧的数据 V0 给用户; 第二,牺牲可用性,阻塞等待,直到网络连接恢复,数据更新操作 M 完 成之后,再给用户响应最新的数据 V1。 这个过程,证明了要满足分区容错性的分布式系统,只能在一致性和可 用性两者中,选择其中一个。 BASE 模型 Basically Available(基本可用) Soft-state( 软状态/柔性事务) Eventual Consistency(最终一致性) BASE 模型是传统 ACID 模型的反面,不同与 ACID,BASE 强调牺牲高一致性,从 而获得可用性,数据允许在一段时间内的不一致,只要保证最终一致就可以了。 基本可用:是系统能够基本运行、始终提供服务。BASE 模型与 ACID 模型相反, 通过牺牲高一致性,获得可用性分区容错性。 软状态:指系统不要求一直保持强一致状态,可以有一段时间不同步。软状态 也可以理解为无连接的,而硬状态是有连接的。 最终一致性:系统需要在某一个时刻后达到一致性要求。 ACID 原子性(atomicity,或称不可分割性) :一个事务(transaction)中的所 有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在 执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个 事务从来没有执行过一样。 一致性(consistency) :在事务开始之前和事务结束以后,数据库的完 整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资 料的精确度、串联性以及后续数据库可以自发性地完成预定的工作 隔离性(isolation,又称独立性) :数据库允许多个并发事务同时对齐数
据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行 而 导 致 数 据 的 不 一 致 。 事 务 隔 离 分 为 不 同 级 别 , 包 括 读 未 提 交 ( Read uncommitted)、读提交(read committed)、可重复读(repeatable read) 和串行化(Serializable)。 持久性(durability) :事务处理结束后,对数据的修改就是永久的,即 便系统故障也不会丢失。 第七章大数据搜索技术 搜索引擎的定义:根据一定的策略、运用特定的计算机程序,从互联网上搜集 信息,在对信息进行组织和处理之后为用户提供检索服务,将用户检索的相关 信息展示给用户的系统。 搜索引擎的组成:搜索器、检引器、检索器和用户接口四部分组成。 搜素引擎的组成: 全文搜索引擎、目录索引引擎、元搜索引擎、垂直搜索引擎、集合式搜索引擎、 门户搜索引擎。 搜素引擎的评价指标: 查全率、查准率、响应时间、覆盖范围、用户方便性 大数据预处理:数据抽取、数据清洗、数据集成、数据转换与约简。 大数据分析:用准确适宜的分析方法和工具来分析经过处理的数据,提取具有 价值的信息,进而形成有效的结论并通过可视化展现出来的过程。 数据分析方法:基本分析方法、高级分析方法、数据挖掘方法。 大数据安全的定义: 数据本身的安全 数据防护的安全 数据安全的基本特点:保密性、完整性、可用性 威胁数据安全的主要因素:数据信息存储介质的损坏、人为因素、黑客、病毒
核心篇章 Hadoop 的特点:Hadoop 是一个能够对大量数据进行分布式处理的软件框架,并 且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特 性: 高可靠性 高效性 高可扩展性 高容错性 成本低 运行在 Linux 平台上 支持多种编程语言 一个基本的 Hadoop 集群中的节点主要有 NameNode:负责协调集群中的数据存储 DataNode:存储被拆分的数据块 JobTracker:协调数据计算任务 TaskTracker:负责执行由 JobTracker 指派的任务 SecondaryNameNode:帮助 NameNode 收集文件系统运行的状态信息 HDFS 目标: 兼容廉价的硬件设备 流数据读写 大数据集 简单的文件模型 强大的跨平台兼容性 HDFS 的思想: 当数据集的大小超过单台计算机的存储能力时,有必要进行分区并存储于多台 单独的计算机上 管理网络中跨多台计算机存储的文件系统称为分布式文件系统(distribute filesystem) 分布式文件系统比普通文件系统更复杂,如,节点故障不能丢失数据 HDFS 的架构: HDFS 采用了主从(Master/Slave)结构模型,一个 HDFS 集群包括一个名称节点 (NameNode)和若干个数据节点(DataNode)。名称节点作为中心服务器,负 责管理文件系统的命名空间及客户端对文件的访问。集群中的数据节点一般是 一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在名 称节点的统一调度下进行数据块的创建、删除和复制等操作。每个数据节点的 数据实际上是保存在本地 Linux 文件系统中的
HDFS 块大小 64M HDFS 写数据: HDFS client 上传数据到 HDFS 时,首先,在本地缓存数据,当数据达到一个 block 大小时,请求 NameNode 分配一个 block NameNode 会把 block 所在的 DataNode 的地址告诉 HDFS client HDFS client 会直接和 DataNode 通信,把数据写到 DataNode 节点一个 block 文件中 Namenode Namenode 是整个文件系统的管理节点。它维护着整个文件系统的文件目录树, 文件/目录的元信息和每个文件对应的数据块列表, 接收用户的操作请求
文件包括 ①fsimage:元数据镜像文件。存储某一时段 NameNode 内存元数据信息 ②edits:操作日志文件 ③fstime:保存最近一次 checkpoint 的时间 在 NameNode 内存中存在两张很重要的映射表: 1. 文件系统的命名空间(文件目录树) 主要是文件和 Block 映射关系 (保存 在 FSDirectory) 2. Block 和 INodeFile & DataNode 的映射关系 (保存在 FSNamesystem) SecondaryNameNode 用于定期合并命名空间镜像和命名空间的编辑日志的辅助守护进程 一般情况下单独运行在一台服务器上 默认情况下,namenode 和 SecondaryNameNode 每小时进行一次日志合并 作为一个分布式文件系统,为了保证系统的容错性和可用性,HDFS 采用了多副 本方式对数据进行冗余存储,通常一个数据块的多个副本会被分布到不同的数 据节点上,如图 3-5 所示,数据块 1 被分别存放到数据节点 A 和 C 上,数据块 2 被存放在数据节点 A 和 B 上。这种多副本方式具有以下几个优点: (1)加快数据传输速度 (2)容易检查数据错误 (3)保证数据可靠性 HDFS 具有较高的容错性,可以兼容廉价的硬件,它把硬件出错看作一种常态, 而不是异常,并设计了相应的机制检测数据错误和进行自动恢复,主要包括以 下几种情形:名称节点出错、数据节点出错和数据出错。 1. 名称节点出错 名称节点保存了所有的元数据信息,其中,最核心的两大数据结构是 FsImage 和 Editlog,如果这两个文件发生损坏,那么整个 HDFS 实例将失效。 因 此 , HDFS 设 置 了 备 份 机 制 , 把 这 些 核 心 文 件 同 步 复 制 到 备 份 服 务 器 SecondaryNameNode 上 。 当 名 称 节 点 出 错 时 , 就 可 以 根 据 备 份 服 务 器 SecondaryNameNode 中的 FsImage 和 Editlog 数据进行恢复。 数据节点出错 每个数据节点会定期向名称节点发送“心跳”信息,向名称节点报告自己的状 态 当数据节点发生故障,或者网络发生断网时,名称节点就无法收到来自一些数 据节点的心跳信息,这时,这些数据节点就会被标记为“宕机”,节点上面的 所有数据都会被标记为“不可读”,名称节点不会再给它们发送任何 I/O 请求 这时,有可能出现一种情形,即由于一些数据节点的不可用,会导致一些数据 块的副本数量小于冗余因子 名称节点会定期检查这种情况,一旦发现某个数据块的副本数量小于冗余因子, 就会启动数据冗余复制,为它生成新的副本 HDFS 和其它分布式文件系统的最大 区别就是可以调整冗余数据的位置。
. 数据出错 网络传输和磁盘错误等因素,都会造成数据错误 客户端在读取到数据后,会采用 md5 和 sha1 对数据块进行校验,以确定读取到 正确的数据 在文件被创建时,客户端就会对每一个文件块进行信息摘录,并把这些信息写 入到同一个路径的隐藏文件里面 当客户端读取文件的时候,会先读取该信息文件,然后,利用该信息文件对每 个读取的数据块进行校验,如果校验出错,客户端就会请求到另外一个数据节 点读取该文件块,并且向名称节点报告这个文件块有错误,名称节点会定期检 查并且重新复制这个块 HDFS 只设置唯一一个名称节点,这样做虽然大大简化了系统设计,但也带来了 一些明显的局限性,具体如下: (1)命名空间的限制:名称节点是保存在内存中的,因此,名称节点能够 容纳的对象(文件、块)的个数会受到内存空间大小的限制。 (2)性能的瓶颈:整个分布式文件系统的吞吐量,受限于单个名称节点的 吞吐量。 (3)隔离问题:由于集群中只有一个名称节点,只有一个命名空间,因此, 无法对不同应用程序进行隔离。 (4)集群的可用性:一旦这个唯一的名称节点发生故障,会导致整个集群 变得不可用 MapReduce 的基本过程
分享到:
收藏