版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、202X大数据生态系统之NoSQL数据库Hyperbase及全文索引ElasticSearch介绍Hyperbase概述Hyperbase定义Hadoop DatabaseGoogle Bigtable的开源实现key/value系统分布式数据库,支持海量结构化和非结构化数据存储Hyperbase设计目标海量数据量存储高并发操作数据随机读写操作(通过索引实现)数据强一致性(通过分布式事务实现)Hyperbase表特点大:单个表可以有数十亿行,上百万列无模式:每行有任意多的列,列可以动态增加,不同行可以有不同的列,列的类型没有限制面向列族:面向列族的存储和权限控制,支持列族独立检索稀疏:空(nu
2、ll)列不占存储空间,表可以非常稀疏数据多版本:每个单元中的数据可以有多个版本(通过时间戳来实现)数据类型单一:所有数据都是byte数组,没有类型Hyperbase基本概念 命名空间 namespace -hyperbase的命名空间类似于关系型数据库数据库的概念表TableHyperbase以表为单位组织数据行Row表中数据以行为单位,byte存储RowKey相当于额外的列,是每条记录的主键。各行数据按RowKey排序,用于快速查找列族Column Family各行数据列族相同,但不是每个列族中都需要有数据列限定符Column Qualifier一个列族拥有一或多列数据,各行数据列不需要相同
3、Hyperbase基本概念单元格Cell行、列族和列限定符的组合指定的单元格单元格存放的数据成为单元格的值,没有类型,byte存储时间戳Timstamp单元格的值可以有多个版本,各个版本由版本号区分默认版本号为写入的时间戳Hyperbase数据模型组织方式多级索引RowKey升序Timestamp降序数据模型Hyperbase物理模型Table和Regiontable中所有行按RowKey排序单个table一开始只有一个region随着记录越来越多,单个region太大,达到阈值(3.5G),分裂成2个region(region split)region是Hyperbase中分布式存储和负载的
4、最小单元不同region分布在不同的RegionServer上Hyperbase数据模型Region&RegionServerHyperbase架构Hyperbase基本组件HMaster管理用户对table的创建删除修改操作为Region server分配region负责Region server的负载均衡发现失效的Region server并重新分配其上的region通过ZooKeeper实现不负责实际数据操作Region Server维护region,处理对这些region的IO请求,直接与client进行数据通信负责切分(split)在运行过程中变得过大的region对region进行
5、compact操作在运行中可以动态添加、删除Hyperbase基本组件Client包含访问Hyperbase的接口(zookeeper),并维护cache来加快对Hyperbase的访问,比如region的位置信息ZooKeeper通过选举,保证任何时候,集群中只有一个HMaster,HMaster与RegionServer启动时会向ZooKeeper注册存贮所有Region的寻址入口实时监控Region server的上线和下线信息。并实时通知给HMaster存储Hyperbase的schema和table元数据,如column familyZookeeper的引入使得Master不再是单点
6、故障Hyperbase物理存储Hyperbase物理存储StoreHRegion虽然是分布式存储的最小单元,但不是存储的最小单元HRegion由多个store组成,每个store保存一个Column Family每个store由1个MemStore和0到多个StoreFile组成MemStore存储在内存中StoreFile存储在HDFS上,底层称为HFileHFile CompactionCompact把小的HFile合并成大的,减少HFile数量,提升读效率执行时严重影响Hyperbase性能触发后不能停止Minor Compact把多个HFile合成一个Major Compact一个st
7、ore下的所有文件合并删除过期版本数据删除delete marker数据指定间隔时间或手动执行Hyperbase Splitting当region中的数据过大时,触发splitting用middle key分割成两个相邻region可以手动触发真正split创建现有HFile的引用文件,未真正分开Compaction时才重写数据Hyperbase容错HMaster容错多个HMaster,同一时间只有一个activeHMaster失效,由ZooKeeper选择另一个HMaster无Hmaster过程中:读操作正常进行,因为region信息还在Region分配、负载均衡无法进行RegionServ
8、er容错定时向Zookeeper汇报心跳超时则HMaster将该RegionServer上的Region重新分配到其他RegionServerHyperbase写流程Client向Active HMaster提交请求,Hmaster通过zookeeper找到对应的Region Server找到目标region数据更新先写进MemStore和HLog中,保持有序MemStore达到阈值,创建新的MemStore,并将老的添加进flush队列,有单独的线程flush到磁盘的StoreFile当StoreFile数量达到阈值进行合并compact,形成大的StoreFile当Region大小达到阈值
9、进行分裂split,等分成两个regionHyperbase恢复HLogHLog是一个实现Write Ahead Log类,每次写MemStore前写入HLog每个RegionServer维护一个HLogHLog定期删除旧的文件(已经持久化到HFile的数据)RegionServer意外中止HMaster通过ZooKeeper感知处理HLog,针对不同的Region拆分Log数据重新分配失效region通过HLog信息重新写进MemStore,然后flush到HFileRegion信息region信息某行数据不知道放在了哪个region上region不知道自己放在了哪个regionServer
10、上.META.表普通Hyperbase表,存在zookeeper中存放用户表的region信息:regioninfo(StartKey,EndKey,Family List).META.表过大,可以有多个region-ROOT-表存放.META.表的region信息放在ZooKeeper,只有一个region.META.和-ROOT-Hyperbase Object StoreLarge object store(通过hyperbase API实现)10MB以内小文件,PDF、image、word只插入不删除,有一定存活时间TTL解决问题:region快速变大,splitting过多二级索引R
11、owkey作为索引,字典排序通过rowkey不再满足应用的需求如select * from table where col=val建立二级索引加速查找二级索引RowkeyA001BA002AA003DA004CRowkeyf:cf:vAA00252BA00123CA00478DA00313二级索引使用创建全局索引索引的定义子句add_index table_name, index_name, index_definition_clause该语句为table_name表添加全局索引,生成一张名为table_name_index_name的索引表,在index_definition_clause处
12、使用对应索引类型的索引定义子句比如: hbase(main):025:0 add_index bi,index,COMBINE_INDEX|INDEXED=ps:nm:8|rowKey:rowKey:10COMBINE_INDEX|INDEXED=cf1:cq1:n1|cf1:cq2:n2|.|rowKey:rowKey:m,UPDATE=truecf1:cq1:b1|cf1:cq2:n2|部分指定生成索引的列。cf1:cq1:n1表示生成的索引中将有用cf1:cq1列生成的一段长度为n1的字段。每条生成的索引中都会包含一段原表Row Key生成的长度为m的字段,由rowKey:rowKey:
13、m指定。UPDATE=true为可选项,代表更新数据时,同时将索引进行更新。二级索引使用build全局索引删除全局索引rebuild_global_index t1, index_name该语句为t1表build之前定义的index_name索引,通过mapreduce程序建立索引表。此命令会为全表的数据建立索引列。rebuild_global_index_with_range t1, index_name, start_key, end_key该语句对t1表根据指定的rowkey范围建立索引,生产环境中的大表应采用此方法分批建立索引delete_global_index t1, index_
14、name全文搜索Elasticsearch基于Apache Lucene倒排索引(inverted index)Elasticsearch Server 1.0 (document 1);Mastering Elasticsearch (document 2);Apache Solr 4 Cookbook (document 3)。词计数文档1.0141Apache1Cookbook1Elasticsearch2, Mastering1Server1Solr1全文搜索Elasticsearch分布式多用户全文搜索引擎Elasticsearch主要概念节点和集群(node和cluster)为了处
15、理大型数据集,实现容错和高可用性,运行在集群上,单台服务器称为节点分片(shard)索引过大时,切分为较小的分片,分布在不同的节点上主分片和副本(primary shard和replica shard)同HDFS类似,为了提高查询吞吐量和高可用性,分片可以有副本。其中之一具有更改索引的权利,称为主分片。主分片丢失时另一副本升级为新的主分片Elasticsearchmaster node在一个节点上当node.master设置为True(默认)的时候,它有资格被选作为主节点,控制整个集群。data node在一个节点上node.data设置为True(默认)的时候。该节点保存数据和执行数据相关的
16、操作,如增删改查,搜索,和聚合。client当一个节点的node.master和node.data都设置为false的时候,它既不能保持数据也不能成为主节点,该节点可以作为客户端节点,可以响应用户的情况,并把相关操作发送到其他节点。基于HYPERDRIVE的全文索引更改hyperbase依赖,指定hyperbase依赖ES通过ManagerWeb界面添加ES服务在hyperbase界面更改依赖,如下图创建全文索引1、创建hyperdriver表CREATE TABLE hyper_employee (key BIGINT, id STRING, name STRING, obd TIMESTA
17、MP) STORED AS HYPERDRIVE;CREATE FULLTEXT INDEX ON hyper_employee (id docValuesTRUE) SHARD NUM 10;INSERT INTO hyper_employee(key, id, name, obd) VALUES (1, 123, Alice,2015-01-04 00:09:00);INSERT INTO hyper_employee(key, id, name, obd) VALUES (2, 124, Bob,2015-01-05 00:09:00);2、创建全文索引3、插入数据使用全文索引使用con
18、tains关键字进行全文索引查询删除全文索引设置本地模式:set ngmr.exec.mode=local;select * from hyper_employee where contains(id, term 123);DROP FULLTEXT INDEX ON hyper_employee;全文索引SQL语法contains函数contains(列名,检索条件):term(精确匹配) | prefix(前缀查询) | wildcard(模糊匹配) | range(范围查询) | regexp(正则表达式) | in(in查询) | match(全文检索) | (范围查询,大于) | =
19、(大于等于) | =(小于等于)例子:select dt from inceptor wherecontains(hphm, term 鲁D528E8)order by dt limit 100;select dt from inceptor wherecontains(hphm, prefix 鲁D528)order by dt limit 100;select dt from inceptor wherecontains(hphm, wildcard 鲁D*28E8)order by dt limit 100;select dt from inceptor wherecontains(dt
20、, term 9223370633649793807) and contains(hphm, term 鲁P56729)order by dt limit 100;select dt from inceptor where contains(hphm,range 9223370647735474807,9223370647735478807);Hyperbase shell基本操作创建表格create table_name, cf1, cf2写入数据put table_name, row_key, cf:cq, value, timestamp删除数据delete table_name, ro
21、w_key, cf: cq, timestampdeleteall table_name, row_key查看数据scan table_name查看单行数据get table_name, row_keyHyperbase特性Hyperbase的语法扩展于HiveQL支持数据插入、修改、删除支持全文索引支持辅助索引基于主键排序的特性优化SQL执行批量处理模式Why Bulkload通常 写Hyperbase时使用的是TableOutputFormat方式,put写入Hyperbase,该方式在大量数据写入时效率低下,因为Hyperbase会block写入,频繁进行flush、split、comp
22、act等大量IO操作,这样对Hyperbase节点的稳定性也会造成一定的影响,例如GC时间过长,响应变慢,导致节点超时退出,并引起一系列连锁反应:Memstore 在持续写的过程中会占用大量内存WAL相关问题:被迫要么使用更大的WAL,要么完全停止使用WAL导致大量的 Compaction和Flush queueYour GC is out of control because your inserts range in the MBsYour latency goes out of your SLA(Service-Level Agreement) when you import data
23、Why BulkloadHyperbase支持 bulk load 的入库方式,它是利用Hyperbase的数据信息按照特定格式存储在hdfs内这一原理,直接在HDFS中生成持久化的HFile数据格式文件,然后上传至合适位置,即完成巨量数据快速入库的办法。配合mapreduce完成,高效便捷,而且不占用region资源,增添负载,在大数据量写入时能极大的提高写入效率,并降低对Hyperbase节点的写入压力。通过使用先生成HFile,然后再BulkLoad到Hyperbase的方式来替代之前直接调用HTableOutputFormat的方法有如下的好处:(1)消除了对Hyperbase集群的插
24、入压力(2)提高了job运行速度,降低了Job的执行时间How to Bulkload对 Hyperbase 使用 BulkLoad 操作,工作流将是类似以下内容:从其现有源提取数据。例如,如果您的数据位于 MySQL 数据库中,则可以运行mysqldump命令。使用的进程取决于数据。如果数据已经是 TSV 或 CSV 格式,请跳过此步骤,并使用随附的ImportTsv实用程序将您的数据处理到 HFile 中。参见ImportTsv 文档了解详细信息。将您的数据处理成 HFile 格式。参见了解有关 HFile 格式的详细信息。3.每个输出文件夹中的每个区域都会创建一个 HFile 。I输入数
25、据几乎全部被重写,因此需要的可用磁盘空间应至少为原始数据集大小的两倍。例如,对于 100GB 的mysqldump输出,应在 HDFS 中至少具有不低于 200GB 的可用磁盘空间。可以在此进程结束时删除原始输入文件。4.将文件加载到 Hyperbase。使用LoadIncrementalHFiles命令(通常称作completebulkload工具),并向其传递一个用于在 HDFS 中查找文件的 URL。 TDH Bulkload流程TDH Bulk 抽象流程1. 对数据预先分region2.根据预分region建表,SPARK生成Hfile3.把Hfile数据load到Hyperbase(只是文件的移
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广西百色市西林县驮娘江水务有限责任公司招聘7人考试备考题库及答案解析
- 2026年押题宝典县乡教师选调考试《教育学》题库及参考答案详解1套
- 2026年金华市磐安县面向全国选聘教师11人考试备考试题及答案解析
- 挡土墙拆除施工方案
- 企业内部审计制度与实务指南
- 高校专业群评审标准操作指南
- 汽车销售顾问话术培训课件
- 中国艺术品市场投资及风险分析报告
- 幼儿园环保清洁操作手册
- 2025年飞机铅锌模工三级安全教育(公司级)考核试卷及答案
- 雨课堂学堂在线学堂云人工智能技术与应用(江南大学)单元测试考核答案
- 2026中国商用飞机公司招聘面试题库
- 4.1《致敬劳动者》课件 统编版道德与法治三年级下册
- 宝钢采购管理制度
- 公安机关人民警察内务条令试题库(附答案)
- 南京2025年江苏南京师范大学招聘专职辅导员9人笔试历年参考题库附带答案详解
- 施工导流方案及实施要点
- 商法学第二版核心知识点笔记详解
- 机关食堂调研课题申报书
- 地理信息安全在线培训考试系统题库
- 问题点统计与改善管理表格
评论
0/150
提交评论