网上的网站模板怎么用,汕头网站设计有限公司,关于网站制作的论文,wordpress一键搭建脚本1、HBase是什么
HBase是基于HDFS的数据存储#xff0c;它建立在HDFS文件系统上面#xff0c;利用了HDFS的容错能力#xff0c;内部还有哈希表并利用索引#xff0c;可以快速对HDFS上的数据进行随时读写功能。
Hadoop在已经有一个HiveMapReduce结构的数据读写功能#x…1、HBase是什么
HBase是基于HDFS的数据存储它建立在HDFS文件系统上面利用了HDFS的容错能力内部还有哈希表并利用索引可以快速对HDFS上的数据进行随时读写功能。
Hadoop在已经有一个HiveMapReduce结构的数据读写功能为什么还要HBase呢我们在使用Hive的过程中也发现MapReduce的过程很慢不适合实时的读写访问更多的时候是进行线下的访问。但在实际应用过程中我们需要对大数据进行实时的读写这时候HBase就派上用场。 HBase使用场景 HBase适合在瞬间写入量大大量数据需要长期保存并且数量会持续增长的场景。但在多级索引和关系复杂的数据模型还有跨行事务场景也不适合HBase。
2、HBase怎么工作
HBase基础架构 Client
与Zookeeper进行通信获取数据入口地址与HMaster通信进行管理类操作与HRegionServer进行数据读写操作。
Zookeeper
避免单点问题一直只有running master存储所有Region的地址包括HMaster地址监控HRegionServer的状态并告知HMaster存储Table名和Column Family
HMaster
有多个HMaster通过Zookeeper保证有一个在运行为HRegionServer分类Region有HRegionServer失效重新分配对HDFS的垃圾文件进行回收处理用户对表的增删改查操作
HRegionServer
HBase核心部分负责I/O请求并先HDFS读写数据维持HMaster分配的Region并处理Region的I/O请求切分在运行过程中变大的RegionHRegionServer中有一系列HRegion对象每个HRegion对应Table中的一个Region每个HRegion由多个Store组成每个HStore对应Table中的Column Family。 Column Family是HBase的存储单元所以相同特性的Column放在一个Column Family更高效。 HStore
HBase存储的核心由MemStore和StoreFile组成
HRegion
一个Table最开始的时候是一个Region一个Region可以有多个Store每个Store用来存储一个Column FamilyRegion随着数据的越来越多会进行拆分由HRegionServer进行拆分默认大小为10G。
HLog
备份和日志在系统出错和宕机时MemStore的数据会丢失而HLog可以防止该情况。
HBase写数据流程
HBase数据模型 NameSpace数据库的库名Table表HBase的表由于对于值为空的列不占空间因此表可以比较稀疏Row行每一行都有一个RowKey来进行识别RowKey行键类似于MySQL中的主键用来进行检索数据Column列由Column family和Column qualifier组成两者用;进行间隔ColumnFamily列族列的集合每个表的列族都以一个文件存储一个表可以有多个列族ColumnQualifier列标识类似于键值对key是RowKey那么ColumnQualifier就是ValueTimeStamp时间戳是具有时间属性的列每个数据都有一个时间戳属性也就是说数据具有版本特性Region区域HBase可以自动把表划分为多个区域随着数据的增多区域也变多。
3、HBase的Shell操作
HBase启动
找到zkServer.sh启动Zookeeper
zkServer.sh start启动HBase
start-hbase.shHBase常见Shell操作
连接集群
hbase shell创建表
create user,base_info# 第一个为表名第二个为列族删除表
disable user
drop user创建数据库
create_namespace test #test为数据库名展示所有数据库
list_namespace显示表
list插入数据 put ‘表名’‘rowkey的值’’列族列标识符‘’值‘
put user,rowkey_10,base_info:username,Tom查询表中所有数据
scan user # 很少使⽤全表查询 scan会加上⼀些条件限制Scan查询中添加限制条件
scan 名称空间:表名, {COLUMNS [列族名1, 列族名2], LIMIT 10, STARTROW 起始的rowkey}scan查询添加过滤器 ROWPREFIXFILTER rowkey 前缀过滤器
scan user, {ROWPREFIXFILTERrowkey_22}查询某个rowkey的数据
get user,rowkey_16删除表中的数据
delete user, rowkey_16, base_info:username清空数据
truncate user指定显示多个版本
get user,rowkey_10,{COLUMNbase_info:username,VERSIONS2}修改可以显示的版本数量
alter user,NAMEbase_info,VERSIONS10通过TIMERANGE 指定时间范围
scan user,{COLUMNS base_info, TIMERANGE [1558323139732,1558323139866]}
get user,rowkey_10,{COLUMNbase_info:username,VERSIONS2,TIMERANGE [1558323904130, 1558323918954]}通过时间戳过滤器 指定具体时间戳的值
scan user,{FILTER TimestampsFilter (1558323139732, 1558323139866)}
get user,rowkey_10,{COLUMNbase_info:username,VERSIONS2,FILTER TimestampsFilter (1558323904130, 1558323918954)}获取最近多个版本的数据
get user,rowkey_10,{COLUMNbase_info:username,VERSIONS10}通过指定时间戳获取不同版本的数据
get user,rowkey_10,
{COLUMNbase_info:username,TIMESTAMP1558323904133}命令表