《大数据基本处理框架原理与实践》PPT课件(共16次课)第八次课:Spark的基本原理

上传人:sat****105 文档编号:321788154 上传时间:2022-07-04 格式:PPT 页数:75 大小:3.50MB
返回 下载 相关 举报
《大数据基本处理框架原理与实践》PPT课件(共16次课)第八次课:Spark的基本原理_第1页
第1页 / 共75页
《大数据基本处理框架原理与实践》PPT课件(共16次课)第八次课:Spark的基本原理_第2页
第2页 / 共75页
《大数据基本处理框架原理与实践》PPT课件(共16次课)第八次课:Spark的基本原理_第3页
第3页 / 共75页
《大数据基本处理框架原理与实践》PPT课件(共16次课)第八次课:Spark的基本原理_第4页
第4页 / 共75页
《大数据基本处理框架原理与实践》PPT课件(共16次课)第八次课:Spark的基本原理_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《《大数据基本处理框架原理与实践》PPT课件(共16次课)第八次课:Spark的基本原理》由会员分享,可在线阅读,更多相关《《大数据基本处理框架原理与实践》PPT课件(共16次课)第八次课:Spark的基本原理(75页珍藏版)》请在金锄头文库上搜索。

1、第八次课:Spark的基本原理刘春计算机与信息工程学院数据科学系河南省时空大数据产业技术研究院河南大学报告提纲SparkSpark概述概述SparkSpark的架构的架构上节课知识点回顾上节课知识点回顾弹性数据集弹性数据集RDDRDDnHDFS:分布式文件系统nMapReduce:分布式计算框架nHbase:分布式数据库系统已学内容:Hadoop生态的重要组件nHadoop Distributed File System,Hadoop分布式文件系统HDFS分布式文件系统nHadoop Distributed File System,Hadoop分布式文件系统HDFS分布式文件系统HDFS可以支

2、持海量的数据存储但是,无法支持海量数据的随机读写!Hbase:分布式环境下的数据库系统n一种一种NoSQL数据库系统数据库系统n不支持不支持SQL查询语言查询语言,也缺乏了传统关系型数据库所具有,也缺乏了传统关系型数据库所具有的特性和遵循的机制的特性和遵循的机制n借鉴了谷歌的借鉴了谷歌的BigTable的设计的设计,并通过,并通过Java语言进行开发,语言进行开发,是是BigTable的开源实现的开源实现n提供提供面向列、可伸缩面向列、可伸缩的分布式存储的分布式存储n运行于运行于HDFS之上之上,是,是Hadoop的重要组件的重要组件n解决了解决了HDFS只适合于批量访问不能随机访问的问题只适

3、合于批量访问不能随机访问的问题Hbase数据库系统n(1)Hbase表增加了列族和时间戳的概念表增加了列族和时间戳的概念Hbase表与传统数据库表的区别行键用户行键用户ID时间戳时间戳列族列族beha列族列族attr列族列族ecf1783412965T1attr:name=“张三”attr:age=20050607T2beha:watch=342beha:time=25sT3beha:click=845T4behav:review=“good”T5beha:search=“赛罗奥特曼”列族名列族名单元格的值单元格的值列名列名Hbase增加列族的目的是进一步将一些非常相关的信将一些非常相关的信息

4、息组织组织在一起以便于同在一起以便于同时进时进行行访问访问和采用同和采用同样样的方式的方式对对他他们进们进行数据行数据压缩压缩等等处处理理n(3)Hbase使用了命名空间这一概念使用了命名空间这一概念传统数据库系统传统数据库系统使用数据库使用数据库来组织不同的表,以及实现权限管理来组织不同的表,以及实现权限管理Hbase使用命名空间使用命名空间来对表进行管理来对表进行管理Hbase中建立表之前,可以先建立命名空间,并指定所建立的表所属中建立表之前,可以先建立命名空间,并指定所建立的表所属的命名空间。的命名空间。如果在建表时不指定命名空间,则将如果在建表时不指定命名空间,则将表放入默认的表放入默

5、认的default命名空间命名空间Hbase表与传统数据库表的区别n行键行键一行数据的唯一标识和索引行键相当于传统关系型数据库的主键传统关系型数据库的主键,但区别在于,传统关系型数据库的主键是可选的,而HBase的每张表都必然会有行键的每张表都必然会有行键行键是在集群中冗余存储的,因此行键长度不能太长此行键长度不能太长Hbase的行键是按照字典顺序排序的的行键是按照字典顺序排序的Hbase表的主要概念行键用户行键用户ID时间戳时间戳列族列族beha列族列族attr列族列族ecf1783412965T1attr:name=“张三”attr:age=20050607T2beha:watch=342

6、beha:time=25sT3beha:click=845T4behav:review=“good”T5beha:search=“赛罗奥特曼”行键的设计是Hbase表格设计的关键之一n列族列族Hbase表格中一些列的集合一些列的集合,每一列都归属于某个列族定义一个表时必须要确定至少一个列族,列族一旦定义就无法修改列族可以在随后动态的增加,但是修改列族需要先停用表,所以在定义表时,可以先定义空闲的列族在实际使用中应尽量减少列族的数量在实际使用中应尽量减少列族的数量,因为Hbase是按列进行存储数据,一个列族下的数据存储到一个文件中,过多的列族将导致过多过多的列族将导致过多的文件操作的文件操作应将

7、一些经常一起查询的列放到一个列族下应将一些经常一起查询的列放到一个列族下,不仅可以减少列族的数量,也将提高查询的效率Hbase表的主要概念行键用户行键用户ID时间戳时间戳列族列族beha列族列族attr列族列族ecf1783412965T1attr:name=“张三”attr:age=20050607T2beha:watch=342beha:time=25sT3beha:click=845n时间戳时间戳Timestamp在向Hbase表中插入数据时,都会使用时间戳来进行版本标识,作为单元格数据的版本号Hbase表的主要概念行键用户行键用户ID时间戳时间戳列族列族beha列族列族attr列族列族

8、ecf1783412965T1attr:name=“张三”attr:age=20050607T2beha:watch=342beha:time=25sT3beha:click=845T4behav:review=“good”T5beha:search=“赛罗奥特曼”n单元格单元格Cell行键、列族、列唯一确定的单元每个单元格对同一份数据都有多个版本对同一份数据都有多个版本,根据唯一的时间戳来区分不同版本不同版本按照时间倒序排列按照时间倒序排列,最新的数据版本在最前面最新的数据版本在最前面如果在查询的时候不提供时间戳,那么会返回距离现在最近的那一个版本的数据时间戳是时间戳是64位的整数,可以由客

9、户端写入数据时主动赋值位的整数,可以由客户端写入数据时主动赋值,也可以由Hbase自动赋值Hbase表的主要概念行键用户行键用户ID时间戳时间戳列族列族beha列族列族attr列族列族ecf1783412965T1attr:name=“张三”attr:age=20050607T2beha:watch=342beha:time=25sT3beha:click=845T4behav:review=“good”T5beha:search=“赛罗奥特曼”单元格单元格nHbase按行键按行键将一个大表的数据划分为不同的范围n一个范围内的一个范围内的同一个列族的数据存储到一个文件中n不同列族的文件是分离的

10、Hbase的物理视图行键用户行键用户ID时间戳时间戳列族列族beha列族列族attr列族列族ecf11T1attr:name=“张三”2T1attr:age=200506073T2beha:watch=3424T2beha:time=25s5T3beha:click=8456T4behav:review=“good”7T5beha:search=“赛罗奥特曼”文件文件2文件文件1Hbase的分布式存储策略行键用户行键用户ID时间戳时间戳列族列族beha列族列族attr列族列族ecf1783412965T1attr:name=“张三”783412965T1attr:age=20050607783

11、412965T2beha:watch=342783412965T2beha:time=25s783412965T3beha:click=845783412965T4behav:review=“good”783412965T5beha:search=“赛罗奥特曼”n首先,Hbase将表分割成不同Region进行分布式存储Hbase将表中的所有行按照行键进行字典排序所有行按照行键进行字典排序按行分割为多个按行分割为多个Region每个Region都保存着一个表的一段连续的数据保存着一个表的一段连续的数据,并记录了它的起始行键和结束行键Hbase将它们分发给集群中的不同节点进行存储和管理分发给集群中

12、的不同节点进行存储和管理Region是是Hbase数据存储和管理的基本单元数据存储和管理的基本单元每个每个Region只会存在于一个节点中只会存在于一个节点中,而每个节点则可能会放置多个而每个节点则可能会放置多个Region。region1region2Hbase的分布式存储策略n其次,Hbase建立三级映射关系来定位RegionMeta表:以“表名+开始行键+RegionID”作为行键,每一行记录了一个每一行记录了一个Region的信息以及的信息以及Region所在的节点的地址等信息所在的节点的地址等信息,建立起Region与集群节点的对应关系Root表:建立META表的表的Region与它

13、所在的节点之间的对应关系与它所在的节点之间的对应关系原始数据表原始数据表的的regionMETA表的表的regionHbase的运行架构Hbase的运行架构nZookeeper在分布式环境下提供高性能和高可靠的协调服务的程序组件集群中HMaster的选举,保证集群中只有一个主节点HMaster。存存储储ROOT表表所所在在Region的的位位置置,当没有ROOT表之后存储META表所在Region的位置。Hbase集集群群启启动动之之后后,集集群群的的HMaster节节点点会会将将ROOT或或者者META表表的的位位置置加加载载到到ZooKeeper。用用户户客客户户端端通通过过访访问问Zoo

14、Keeper来来获获取取ROOT表表或或者者META表表的的地地址址,来定位到具体的Region所在的位置。这也使得客户端无需与集群主节点连接,就可以定位Region所在的位置,进一步减小了主节点的压力。帮帮助助HMaster监监控控集集群群各各个个节节点点的的资资源源利利 用用和和 健健 康康状状 况况。 通 过 ZooKeeper,Hbase要求集群的各个节点向ZooKeeper注册,并动态的汇报自身的状态发送给ZooKeeper,然后HMaster就就可可以以通通过过Zookeeper来来随随时时感感知知到到集集群群各各个个节节点点的的情况。情况。Hbase的运行架构nHmaster分配

15、分配Region到集群的各个到集群的各个HRegionServer监控各个HRegionServer的状况,调整调整Region的分布实现负载均衡的分布实现负载均衡,发现失效的HRegionServer并重新分配其上的Region维护维护ROOT表和表和META表表,记录各个HRegionServer上Region的变化信息管理用户对建表和对表进行变更的操作Hbase的运行架构nHRegionServer分布式集群中单个计算节点上负责管理本地存储的Region的进程HRegionServer与与Zookeeper交互交互,定期上传节点的负载状况,比如节点的内存使用状态、在线状态的Region等

16、信息。当用户定位到HRegionServer所管理的Region时,HRegionServer负责与用负责与用户客户端连接来提供对数据的读写访问户客户端连接来提供对数据的读写访问。Hbase的运行架构nHRegionServer(1)数据在节点的写入和存储虽然Region是Hbase中分布式存储和负载均衡的最小单元,但是Region却却不是存储的最小单元不是存储的最小单元在进行存储时,每个每个Region由一个或者多个由一个或者多个Store组成组成,每个Store存储该Region一个列族的所有键值对数据每个Strore又由一个memStore和0至多个StoreFile组成memStore是内存缓存中的文件,StoreFile是磁盘中的文件用户写入数据时数据首先会放在缓存的memStore中,当memStore满了以后会写入磁盘形成一个StoreFile进行持久化因为写入缓存,所以因为写入缓存,所以HbaseHbase写入数据的速度会非常快!写入数据的速度会非常快!Hbase的运行架构nHRegionServer(2)Storefile的压缩合并当当StoreFileStoreFi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号