桂林电子科技大学 大数据课程 复习笔记 考试范围: 教材:《大数据技术原理与应用》第三版 林子雨 第1章:大数据概述 🎉 第2章:大数据处理架构Hadoop 🎉 第3章:分布式文件系统HDFS 🎉 第4章:分布式数据库HBase🎉 第5章:NoSQL数据库🎉 第7章:MapReduce🤷?♂? 第9章:数据仓库Hive 第10章:Spark 第11章:流计算(Storm)
第1章 大数据概述
重要知识点: 1、大数据的4V 数据量大:在Web2.0时代、网络用户数目极大,在视频、照片社交软件火热的今天,用户产生的数据量非常大。 数据类型繁多:有金融大数据、医疗大数据、城市大数据等等。 处理速度快:1分钟,新浪微博产生2万条微博,Twitter产生10万条推文。 价值密度低:例如监控视频的存储,没有调取监控视频用时可能价值并没有体现,但在使用时可能会产生很大的价值。
2、大数据的应用 智能汽车、能源、体育与娱乐等等、大数据应用非常广泛。
3、大数据关键技术 数据采集与预处理、数据存储和管理(HDFS)、数据处理与分析(如MapReduce)、数据安全和隐私保护。
4、大数据计算模式 批处理计算:对大规模数据的批量处理 (MapReduce、Spark) 流计算:针对流数据的实时计算(Spark) 图计算:针对大规模图结构的数据的处理 查询分析计算:大规模数据的存储管理和查询分析(Hive)
5、大数据与云计算、物联网的关系
云计算为大数据提供技术基础、大数据为云计算提供用武之地。 物联网是大数据的重要来源、大数据技术为物联网数据分析提供支撑。 云计算为物联网提供海量数据存储能力,物联网为云计算技术提供了广阔的应用控件。
第2章 大数据处理架构Hadoop
1、Hadoop的核心 HDFS是分布式文件存储系统(Hadoop Distributed File System) 、也是Hadoop的核心。
2、Hadoop的特性 高可靠性 、高效性、高可扩展性 、高容错性 、成本低 、支持操作系统与编程语言广泛
3、HDFS常用命令 创建文件夹(-p 递归创建) hadoop fs -mkdir -p /user/hadop 显示文件内容 hadoop fs -cat hdfs文件 文件上传 hadoop fs -put 本地 hdfs文件 删除文件夹 hadoop fs -rm -r hdfs文件夹 删除文件 hadoop fs -rm hdfs文件 切换目录:cd 查看文件与目录:ls -R(-R在hdfs为递归查看) 删除空目录:rmdir 复制文件或目录:cp 裁剪:mv 创建文件:touchz 拉取文件 get
第3章 分布式系统 HDFS
1、 HDFS计算机集群结构 分布式文件系统把文件分布存储到多个计算机节点上、成千上万的计算机节点构成计算机集群。
2、 HDFS的结构 一个默认块大小为64MB,如果一个文件小于一个数据块的大小,在分布式文件系统,它并不占用整个数据块的存储空间。 名称节点负责文件和目录的创建、删除、和重命名等,同时管理着数据节点和文件快的映射关系。 数据节点负责数据的存储和读取,在存储时,由名称节点分配存储文职,客户端将数据直接写入相应数据节点。 为了保证数据的完整性,文件块会被赋值为多个副本存储到多个不同的节点上,而存储同一文件块的不同副本又会分布在不同的机架上。
3、 HDFS特点 优点: 兼容廉价的设备硬件。 流数据读写:支持流式方式来访问文件。 大数据集:单个文件可达到GB甚至TB级别 简单的文件模型:一次写入,多次读取。 强大的跨平台兼容性。 缺点: 不适合低延迟数据访问。 无法高效存储大量小文件。 不支持多用户写入及任意修改文件。
4、 HDFS的相关概念(重点) 重点:块、名称节点和数据节点与第二名称节点。 块:HDFS文件块的大小默认为64MB,一个文件会被拆分为多个块进行存储。(相关知识点:MapReduce中的Map任务一次只能处理一块中的数据。) 采用块抽象化的好处:支持大规模文件存储、简化系统设计、设和数据备份。 名称节点负责管理分布式文件系统的命名空间,保存了FsImage和EditLog. FsImage用于维护文件系统树以及文件树中所有的文件和问价夹的元数据。 EditLog(操作日志文件)记录了所有针对文件的创建、删除、重命名、等操作。 名称节点存储文件名与文件在数据节点中的位置的映射关系、但并不是持久化存储在名称节点,而是当名称节点启动时扫描分布式文件系统得到的。 名称节点启动?将FsImage加载到内存-> 重新执行EditLog->建立新的空FsImage和EditLog->工作记录时使用新的FsImage和EditLog当变大后系统写入到总的FsImage和EditLog内(工作模式请看第二名称节点)
数据节点 负责数据的存储和读取,根据客户端和名称节点的调度进行数据的存储和检索。也会定时向名称节点汇报自己的存储块列表信息。
第二名称节点: 功能:完成FsImage和EditLog的合并操作,减小EditLog文件大小。 EditLog和FsImage的合并操作:
5、 HDFS体系结构 主从结构 客户端向名称节点请求文件名或者数据块号,名称节点将数据块号、数据块位置发送至客户端。 客户端与数据节点通信进行数据的读写操作。HDFS集群只有一个名称节点,其带宽、计算性能会影响整个系统的性能。
HDFS命名空间管理 HDFS集群只有一个命名空间,即/ some/some /some /some… ,向Linux的文件目录结构一样。
通信协议 HDFS通信协议建立在TCP/IP基础之上。 名称节点与数据节点采用数据节点协议进行交互。 客户端与数据节点交互通过远程过程调用(RPC)
HDFS体系结构局限性 命名空间限制、性能瓶颈(原因靠名称节点)、隔离问题(一个命名空间、和一个名称节点无法做到读写权限分配等)、集群可用性(一个名称节点)
6、 HDFS的存储原理 多副本冗余存储,加快了数据传输的速率、容易检查数据错误、保证数据的可靠性。
存放策略 HDFS默认的冗余复制因子是3,每一个文件块被保存到3个地方。 (1) 如果是集群内发起的写操作,则把第1个副本放置发起写操作请求的数据节点上,实现就近写入数据,如果集群外发起写操作,则在集群内选一个磁盘空间充足且CPU不太忙的数据节点,做为第1个副本的存放位置。 (2) 第2个副本被放置在与第1个副本不同的机架的数据节点上。 (3) 第3个副本会被放置在与第1个副本相同的机架的其他节点上。 (4) 如果还有更多的副本、则继续从集群中随机选择数据节点进行存放。
读取策略 客户端请求名称节点获取文件块不同副本的存储位置,由客户端确定从哪里获取文件块。
数据复制 文件在客户端被切分成多个块,名称节点返回数据节点列表。 客户端向一个数据节点写入,同时把数据节点列表传给第一个数据节点,当第一个节点接收数据大小4KB时并像列表第二个数据接待你发起写请求,将数据写入第二个数据节点、当第二个数据节点接收到4KB时向第三个数据节点执行类似操作。最后当文件写完时,数据的复制也同时完成了。
名称节点出错补救方案 一:远程挂载到NFS上 二:运行一个第二名称节点,能够进行有限的补救(第二名称节点中由FsImage和EditLog),但还是会可能遗失拉去FsImage和EditLog后,名称节点的一系列操作。 数据节点出错补救方案 数据节点定期向名称节点发起”心跳“,没有”心跳”时,名称节点不再向其分配读写任务,且一旦发现某些块的复制因子小了,名称节点又会安排任务,进行文件块复制。 数据出错 客户端采用MD5和SHA-1校验,出错将向名称节点汇报,请求其他副本,名称节点也会定期检查块。
第4章 分布式数据库HBase
1、HBase是什么? 一个高可靠、高性能、面向列、可伸缩的分布式数据库。 2、HBase与Hadoop其他部分关系。 使用MapReduce处理海量数据,ZooKeeper作为协同服务。HDFS底层数据存储。Pig和Hive提供高级语言支持。 3、HBase与传统数据库对比。 数据类型:采用未经解释的字符串。 数据操作:行键查询、只有简单的插入、查询、删除、清空等。 存储模式:列式存储。 数据索引:行键索引。 数据维护:并不删除原来的数据。 横向可伸缩性:面向列存储。 缺陷:不支持事务、无法实现跨行原子性。 4、HBase数据模型 行键:任意字符串,最大64KB。 列族、列限定符(列名,不需要提前定义好)。 单元格,每个单元格可以存储多个版本、每个版本对应一个时间戳。 事件戳:每次对单元格执行操作,HBase会隐式自动生成并存储一个时间戳。 数据坐标:[行键、列族、列限定符、时间戳] 5、概念视图与物理视图 概念视图:逻辑模型,认为规定建立。
物理视图:
在物理视图中,空的列并不会被存储为null,而是不会存储,当请求空白的单元格时返回null。
6、 面向列的存储 从严格的关系数据库角度来看,HBase并不是一个列式存储的数据库,HBase是以列族为单位进行分解的,而不是每个列都单独存储。
7、 HBase实现原理 与HDFS具有很多相似之处、有一个Master节点负责HBase表的分区信息,表被分为Region存储到多个Region服务器,Master会检测Region服务器 工作状态、负责性能均衡。客户端并不从Master获得数据,从ZooKeeper获得Region位置,从Region服务器中拉取数据。
8、 表和Region、Region的定位
9、 HBase系统架构 客户端:缓存Region位置、与Master进行RPC通信、与Region服务器RPC通信进行数据的读写。 Zookeeper服务器:通常由集群组成,每个Region服务器要到Zookeeper服务器注册,Zookeeper实时监控Region,Master通过Zookeeper感知Region服务器状态。 Master服务器:管理用户对表操作、Region服务器的负载均衡、Region分裂与合并、Region迁移(如有Region服务器故障时) Region服务器:Region存储、向客户端提供访问接口。
10、 Region服务器工作原理
第5章 NoSQL数据库
1、 NoSQL特点 灵活的可扩展性、灵活的数据模型、与云计算紧密耦合。
2、 NoSQL与Web2.0 无法满足海量数据的管理需求、无法满足高并发的需求、无法满足高可扩展性和高可复用性的要求。 Web2.0网站系统通常不需要严格的数据库事务、并不要求严格的读写实时性、通常不包含大量复杂的SQL查询。
3、 NoSQL的四大类型 键值数据库、列族数据库、文档数据库、图数据库。
4、 NoSQL三大基石,CAP、BASE、最终一致性。 C (Consistency) :一致性,指任何一个读操作总是能够读到之前完成的写操作的结果,在分布式环境中、多点数据是一致的。 A(Availability):可用性。指快速获取数据,且可以在确定的时间内返回操作结果。 P(tolerance of network partition):分区容忍性,当出现网络分区的情况,分离的系统可以正常运行。
组合: CA 强调一致性和可用性,可扩展性较差。 CP 强调一致性和分区容忍性,当出现网络分区的情况时,受影响的服务需要的等待数据一致,因此在等待期间就无法对外提供服务。 AP 在采用AP设计时,可以不完全放弃一致性,转而采用最终一致性。
BASE A(atomicity)原子性:对数据的修改、要么全部执行、要么全部不执行。 C(Consistency)一致性:在事务完成时,必须是所有数据都保持一致状态。 I(Isolation) 隔离性:并发事务所作的修改必须与其他并发事务所做的改变隔离。 D(Durability) 持久性:事务完成后、对系统的影响是永久性的。
最终一致性 是弱一致性的特例,允许后续的访问操作可以暂时读不到更新后的数据,但经过一段时间后,用户可以读到更新后的数据,最终一致性也是ACID的最终目的,只要最终数据是一致的就可以了,而不是每时每刻都保持实时一致性。
|