版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
物联网大数据处理技术与实践InternetofThings
BigDataprocessingTechnologyandPractice物联网大数据存储与管理云文件系统的关键技术1NoSQL数据库关键技术2PARTONE1云文件系统的关键技术师傅领进门,学艺在自身。------中国谚语物联网大数据存储与管理本书前面已经分析了这些数据的特点,针对其存储与管理,以下几个特点对物联网大数据的存储与管理带来如下挑战:物联网大数据的海量性物联网大数据的高维度和部分稀疏特性物联网数据的时空相关性物联网数据的序列性与动态流式特性HDFS的目标和基本假设条件由于系统是由大量廉价商用设备连接而成的,即使每一部分的故障概率都很低,连接在一起使用总的故障概率也将大幅提高。因此在系统中硬件故障成为大概率事件,这就意味着硬件故障成为常态,快速地检测故障并从故障中恢复成为系统设计的核心目标之一。(2)流式数据存取
HDFS设计注重数据存取的高吞吐量而不是数据访问的低延时,系统以流式数据存取为主,批处理为主要使用方式,而不是一般文件系统中常用的交互使用方式。因此系统面向的应用是以大规模流量数据访问为主的应用,对于需要大量低延时随机数据访问的应用来说并不合适。(1)
硬件失败HDFS的目标和基本假设条件(4)简单的一致性模型
HDFS被设计用来存取规模巨大的文件,文件大小以GB甚至TB为单位,而不是KB或MB级的小型文件。单个集群能够支撑上千万的这种大规模数据文件,因此文件系统必须能够管理成千上万的可扩展数据节点,并且具有高数据传输带宽。
系统面向的多数应用具有一次写、多次读的特点,文件一经创建,在写入数据并且关闭之后就不再需要改变,而且数据通常只有一个写入主体,这个特点简化了数据一致性问题,使数据读取的高吞吐量成为可能。(3)大数据集
HDFS的目标和基本假设条件HDFS使用Java语言开发而成,具有先天的可移植性,同时在设计上也注重了系统的可移植性,因此很容易从一个平台移植到另一个平台,这个特点有利于它的广泛使用。(5)异构软硬件平台的可移植性HDFS体系架构HDFS系统最底层是由商用PC或商用服务器构成的廉价集群,这些PC的操作系统可以是Linux或Windows,但在实际部署中使用Linux的居多,因为Linux是开源的,使用费用低,而且在必要的时候可以修改。HDFS运行在操作系统之上,以TCP/IP作为通信协议对集群进行统一管理。
HDFS逻辑分层结构HDFS体系架构HDFS物理部署实例如右图所示,是一个HDFS物理部署实例,在这个实例中集群由两个机架组成,每个机架都有一个交换机和16台商用计算机,两个机架由一个交换机连接,整个集群共有32台计算机,其中一台作为主节点(称为NameNode),一台作为备用主节点(称为SecondaryNameNode),其他作为数据节点(称为DataNode)。HDFS体系架构HDFS系统管理示意图文件数据以块(Block)为单位存储在DataNode中,文件元数据管理Block的标识BlockID和对应的存储位置。当NameNode出现故障时,SecondaryNameNode提供备用的管理能力NameNode管理整个集群的文件元数据,执行文件系统命名空间的所有操作,包括打开、关闭、重命名、创建文件和目录,为文件分配数据块并指定文件到数据块的映射客户端对文件系统的访问首先从NameNode获得元数据,但是客户端不会从NameNode中直接得到文件数据,客户端需要从文件元数据中解析得到文件数据块的位置,然后直接从DataNode中读取,HDFS对用户访问不设限制SecondaryNameNode是为了增强系统的可靠性而配置的,为NameNode提供备用的管理能力。DataNode负责响应客户端对文件数据的读写请求。性能保障
为了提高NameNode的处理速度,HDFS的元数据都存放在内存中,所有对元数据的操作都是对内存进行读写,相对于存放在磁盘上其处理速度大幅提高。这样做的前提是元数据的数据量相对较小,内存能够放得下通过以下两个方法可以增加内存中元数据的存储量:第一当然是增加内存,但是内存不能无限扩展;第二是采用一些压缩算法,压缩元数据的体积,比如对文件名采用前缀压缩算法可以减少文件名所占用的空间
元数据全部存放于NameNode的内存中有一个明显的缺点就是,当NameNode发生故障时元数据将全部丢失,必须对元数据进行持久化处理,也就是保存在磁盘上,以便于故障后的恢复。(1)元数据操作
性能保障
HDFS采用机架感知的技术合理安排数据块的位置,使数据存取效率更高。机架感知技术的原理是,相比于不同机架上的计算机,同一个机架上的计算机网络距离更短,传输速度更快通基于机架感知原理,HDFS的数据块复制策略是,数据块的第一个副本写在与客户端同一个机架的DataNode上,如果客户端不在集群范围内则写在与客户端网络距离最近、网络传输速度最高的节点上,数据块的第二个副本由第一个副本传输到同一机架的不同DataNode上,第三个副本由第二个副本传输到不同机架的DataNode上。这样做使第一个和第二个副本可以很快地复制完成,但是为了防止由于机架的故障使数据不可用,所以第三个副本需要放在不同的机架上。对于数据块的读取基于机架感知技术同样首先计算客户端与不同数据块的网络距离,选择从距离最近的DataNode上读取数据。(2)数据块的读写
性能保障
机架感知技术的核心是网络距离的计算,不同DataNode的网络距离可以根据统一编址的IP地址计算,也可以根据统一命名的网络名称来计算。HDFS对整个集群的数据块分布还会采用再平衡的策略进行管理,当集群中某些DataNode的存储空间剩余很多而有些存储空间剩余很少时,系统会自动调整数据块的分配,通过数据块的迁移使整个集群的数据块分布趋向均匀。(2)数据块的读写
机架感知节点组织图性能保障(3)智能信息检索
DataNode会周期性地向NameNode发送心跳信号,NameNode处理这些信息,将近期没有发送心跳信号的DataNode标记出来,并且不再将数据块的读写请求分配给这些节点,同时这些节点上的数据块也不再可用,相应文件元数据中的数据块副本数减少,NameNode会定期检查数据块的副本数量,当小于配置的数量时会启动复制功能,使数据块的副本数量达到配置的要求。数据块在读取、写入或传输过程中可能由于各种原因造成数据损坏,客户端在写数据块的时候会同时生成数据块的校验和,校验和会写进一个单独的隐藏文件,当客户端从DataNode中读取数据时会同时读取数据块的校验和进行检验,如果不匹配,客户端会选择数据块其他的副本,从而保证了数据的正确性。
性能保障(4)垃圾回收
当文件被删除或数据块副本配置数减小时会产生一些废弃的数据块,对于这两种情况系统有不同的回收方式。当一个文件被用户删除以后,HDFS不会立刻将它安全删除,而是将它移动到/trash目录下,在文件从/trash删除之前用户还可以恢复它,被删除的文件存放在/trash中的时间是可配置的,默认是6个小时。系统会自动扫描/trash目录,将其中超过配置时间的文件删除,删除相应的元数据,释放相应的数据块,这意味着文件被真正删除,用户将无法再恢复它。当一个文件所配置的副本数减小时,NameNode会挑选出可以删除的数据块,数据块的删除操作通过心跳信号传递给它所在的DataNode,相应的DataNode收到信号后执行删除操作,释放指定的数据块空间。
为了方便HDFS的使用,系统提供了多种应用接口,常用的有命令行接口、JavaAPI、Web接口等。
(5)访问接口
PARTTWO2NoSQL数据库关键技术NoSQL数据库的优势灵活的数据模型NoSQL数据库中数据可以按照它实际应用中建模的形态进行保存NoSQL数据库可以在运行时任意增加或减少字段改变数据模型NoSQL数据库的优势灵活的查询分析NoSQL数据库提供更灵活的查询方式和更强大的查询语言,人们可以使用NoSQL数据库提供的查询接口和查询语言构建任意复杂的查询结果NoSQL数据库还为特定查询提供了方便,比如在面向图的数据库中,为人们提供了方便图分析的各种查询,如图的遍历、图的最短路径、图的连通性分析等NoSQL数据库的优势数据的版本管理NoSQL数据库都提供数据版本管理的功能(不是全部),版本管理最常见的是软件和文档的版本管理NoSQL数据库本身就支持对数据项的版本管理,不需要额外设计,一个数据项可以根据配置保留多个历史数据值,当然也可以配置成像关系数据库那样只保存一个数据值NoSQL数据库的优势良好的可扩展性NoSQL数据库通过放松对一致性的要求来实现分区容忍性的目标,很容易地将记录分散存储在多个服务器上,而且通过构造适当的算法可以实现将记录均匀地分布存储在服务器NoSQL数据库一般采用MapReduce计算模型(下一章将涉及),这种计算模型可以充分利用分布式计算的优点,将运算部署在靠近数据的服务器上进行,一般情况下是将查询计算分布部署在拥有数据的服务器上,可以很容易地实现数据的大规模并行搜索NoSQL数据库的优势大数据量和高性能NoSQL数据库良好的扩展性带来了可以线性增加的存储容量和计算能力,因此能够处理大规模的数据存储并提供高性能的数据吞吐能力NoSQL数据库支持并行计算的特点使得它可以很容易地利用增加的服务器的计算能力,这已经在前面进行了分析NoSQL数据库的劣势NoSQL数据库的劣势一共有如下的五方面:1)查询的复杂性2)事务性和一致性3)关系完整性4)访问控制5)标准化NoSQL数据库的劣势查询的复杂性NoSQL数据库的灵活性带来学习难度:不同NoSQL数据库有独特的查询语言和接口,增加了学习和应用的难度。SQL标准化强调关系数据库优势:关系数据库通过多年发展在SQL支持和查询优化方面表现卓越,提供了稳定可靠的操作功能。NoSQL数据库操作相对简陋:NoSQL系统在数据库操作的封装上较为简陋,用户需在应用层面完成连接、过滤、映射等任务,与关系数据库相比存在差距。NoSQL数据库的劣势事务性和一致性
对于对数据一致性和事务性要求较高的金融机构,传统的关系数据库仍然是首选。相较之下,大多数NoSQL数据库为了追求可用性和分区容忍性,通常会放宽对数据一致性的要求,可能导致短期内数据不一致的情况。此外,为了提高系统可扩展性和并行计算能力,许多NoSQL数据库不支持事务,使得数据库操作无状态,即无法在连续操作中提供回滚能力。NoSQL数据库的劣势关系完整性
关系数据库通过外键约束自动保持数据关系的完整性,如在删除关联数据时会阻止破坏关系的操作。这得益于关系数据库的设计。相反,NoSQL数据库由于简单的数据模型和分布式环境的限制,难以实现对关系完整性的强制检查。在多副本和分布式存储策略下,大多数NoSQL数据库通常不会阻止删除某个数据对象,即使其他对象仍在使用该数据。这凸显了两者在数据管理方面的不同。NoSQL数据库的劣势访问控制
关系数据库系统具备完善的用户权限管理和内建安全模型。与之不同,NoSQL数据库在这方面存在不足,安全模型和策略因产品而异,用户通常需要额外构建安全措施,缺乏统一标准和系统内集成。这突显了两者在访问权限管理和安全性方面的差异,以及NoSQL数据库的分散性和多样性。NoSQL数据库的劣势标准化
SQL作为关系数据库标准的典型代表,通过标准化工作可以减少学习重复,促进系统协调和合作。标准化还延长了代码使用寿命和提高了可重复使用性。相比之下,NoSQL数据库目前在标准化方面仍处于起步阶段,由于产品多样性和面向复杂领域,缺乏统一标准,导致使用不同产品需要重新学习相关知识。这突显了两者在标准化方面的差异和NoSQL数据库面临的挑战。HBase数据库系统HBase数据库系统是应用广泛的NoSQL数据库系统之一,是GoogleBigtable的开源版本,建立在HDFS之上,具有高可靠性、高性能、列存储、可伸缩、实时读写的特点。它通过行键(RowKey)和行键范围(Range)来检索数据,主要用来存储半结构化的松散数据。HBase的主要目标是高效地管理半结构化数据,依靠横向扩展,通过不断增加廉价的商用服务器来提高计算和存储能力。HBaseHBase数据模型HBase以表的形式存储数据,表由行和列组成。列划分为若干个列族(ColumnFamily),一行由行键(RowKey)、版本号和若干个列组成。HBase中的表一般具有以下特点。大:一个表有上亿行和上百万列面向列:面向列(列族)的存储,列(列族)独立检索稀疏:为空(Null)的列并不占用存储空间,因此,表可以存储稀疏的数据HBase数据模型行(Row)在表中以行为单位管理和存储数据,行由行键(RowKey)进行标识,HBase以字节数组来处理和存储行键,行键可以以符串的形式表现。行是按照行键以词典顺序排序的,行键值最小的行在表的最上面。例如,从1到100的数字,就是按照1,10,100,11,12,…,9,91,92,93,94,95,96,97,98,99这样的方式来排序保存的。要想以自然顺序来保存整型数,行键须在左边以0填充。列族(ColumnFamily)和限定符(Qualifier)用户根据这些列的性质或结构进行分组,将相同性质、长度或结构的列组成一个列族,列族需要在进行表结构设计时就设计好,要像关系数据库那样在操作表之前将表结构设计好在HBase中列的完整标识是“列族:限定符”。列族必须是可打印字符,也就是可见字符,但是限定符可以是任意字节数组。HBase数据模型版本号(Version)根据用户的配置情况,HBase的数据可以以多版本的方式保存版本号有时候以时间戳来表示,以长整型数据保存,如一个时间戳可以设置为用java.util.Date.getTime()或System.currentTimeMillis()函数获取的当前时间,并且当一个数据项被请求时,返回最新的版本开发者可以在插入数据时自定义版本号,然后通过指定这个版本号来重新获取该值。数据项(Cell)数据项(Cell)是NoSQL数据库中最小的数据单元,一个数据项由[行,列,版本号]这三个坐标唯一确定。数据项的内容是用户自定义的,以字节数组的形式保存,没有格式、类型等限制。HBase系统架构:表和分区表中的所有行都按照行键的词典顺序排列,当达到一定规模后表会在行的方向上分割为多个分区。HBase系统架构:表和分区分区按大小分割,每个表一开始只有一个分区,随着数据不断插入表中,分区不断增大。当增大到一个阈值时,分区就会等分为两个新的分区,如下图所示。表中的行不断增多,就会有越来越多的分区。HBase系统架构:分区服务器分区存储在分区服务器上。不同的分区可以分布在不同的分区服务器上,但一个分区是不会拆分存储到多个分区服务器上的。一个分区服务器可以存储多个分区。HBase系统架构:分区和存储块分区由一个或者多个块组成,每个块保存一个列族。每个块又由一个内存块和0至多个块文件组成HBase系统架构:分区和存储块内存块是放在内存里的块,用来保存修改的数据。当内存块的大小达到一个阈值时,内存块会被写进文件,生成一个块文件。块文件以HFile格式保存在HDFS上。块文件的HFile格式分为6个部分:DataBlock:以Key-Value方式保存表中的数据,可以被压缩。MetaBlock:保存用户自定义的Key/Value对,可以被压缩。FileInfo:HFile的元信息,不可以被压缩。DataBlockIndex:DataBlock的索引。每条索引的Key是被索引的Block的第一条记录的Key。MetaBlockIndex:MetaBlock的索引。Trailer:这一段是定长的,保存了这6个部分每一段的偏移量。HBase集群组织架构一个完整的HBase集群由客户端(Client)、Master、Zookeeper集群和分区服务器集群组成。HBase集群组织架构Client负责与分区服务器进行交互。HBase也采用主从结构的管理方式。Master负责监控集群中所有分区服务器的实例。其作用如下:存储和管理分区服务器的元数据为分区服务器分配分区;负责分区服务器的负载均衡;发现失效的分区服务器并重新分配其上的分区。Zookeeper是一个提供分布式锁服务的轻量级文件系统,同时也可以作为集群管理系统。HBase访问接口HBase提供了多种形式的访问接口,包括以下6种:NativeJavaAPI:最常规和高效的访问方式,适合HadoopMapReduceJob并行批处理HBase表数据。HBaseShell:HBase的命令行工具,最简单的接口,适合HBase管理使用。ThriftGateway:利用Thrift序列化技术,支持C++、PHP、Python等多种语言,适合其他异构系统在线访问HBase表数据。RESTGateway:支持REST风格的HTTPAPI访问HBase。Pig:可以使用PigLatin流式编程语言来操作HBase中的数据,和Hive类似,本质也是编译成MapReduceJob来处理HBase表数据,适合做数据统计。Hive:通过Hive可以使用类似SQL的语言来访问HBase。基于NoSQL数据库的物联网大数据存储与管理NoSQL数据库本身是一个稀疏的、分布式的、持久化存储的多维度排序Map,适合存储高维度、稀疏的海量数据。NoSQL数据库的特点(以HBase数据库为例):其底层持久化是以列族为存储单位分块存储,字段个数对底层结构没有影响,而MySQL、Oracle等关系数据库以行(一条数据)为单位存储,当表中字段个数达到一定程度时,数据将被分片存储,这样会严重影响到插入、查询的效率。HBase以HDFS为底层文件系统,其分布式特性可以有效解决海量数据存储的可扩展性问题。HBase的数据以分区为单位在集群中进行负载均衡,可以根据RowKey来确定数据发向集群中的哪个存储节点。HBase可以使用多并发线程或修改自动缓存大小等方法提高写入效率。基于HBase的物联网数据库设计技术RowKey的设计原则:HBase中不允许使用联合主键来标识数据,一条数据只能由一个RowKey项唯一标识。HBase索引建立在行键RowKey的基础上,需要将查询的维度或信息放在行键中。在右图RowKey的设计下,HBase的客户端数据写入的步骤如下:当在初始阶段或者Region发生了拆分时,首先客户端Client向HMaster发送请求,获取RootRegtion的地址。客户端根据扫描RootRegion的地址找到UserRegion的.METATable地址。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届四川省成都市高三英语第一学期期末学业水平测试模拟试题含解析
- 安全理念培训课件
- 仓储物流配送与优化指南
- 2025年无人机遥感测绘行业报告
- 高中政治课堂中生成式AI辅助下的差异化教学策略探讨教学研究课题报告
- 虚拟现实与人工智能教育资源虚拟角色设计在小学英语阅读教学中的应用与效果评估教学研究课题报告
- 2025年企业内部管理规范与流程指南
- Spring框架事务管理的实践
- 能源项目管理与评估指南
- 企业环保管理体系建立指南(标准版)
- 仓储管理人员考核细则及绩效标准
- 牛黄对肝功能影响研究-洞察及研究
- 泰康培训课件
- 电子签名系统安全预案
- (零模)2026届广州市高三年级调研测试物理试卷(含答案)
- 消化内镜虚拟仿真训练系统的技术参数优化
- 车辆保养套餐服务协议
- 大型电泳线施工方案设计
- 2025年安徽公务员考试(法律专业知识)综合试题及答案
- 注册测绘师测绘综合能力试卷真题及答案(2025年新版)
- 替换设备协议书范本
评论
0/150
提交评论