分布式列式数据库HBase,数据库hbase
本文概述:1、HBase概述2、HBase特点3、HBase和RDBMS以及HDFS的对比区别4、HBase核心术语5、HBase物理模型6、HBase架构7、HBase容错 8、HBase环境搭建 HBase官网:http://hbase.apache.org/(Apache HBase是一个开源,分布式,版本化的非关系型数据库)HBase概述1)构建在HDFS之上的,分布式、面向列的开源数据库2 ) 分布式: 分而治之3)面向列:HBase、Hive(ORC/Parquet)HBase特点1)大:数十亿行*数百万列*数千个版本 = TB级或PB级的存储2)面向列:面向列(族)的存储和权限控制,列(族)独立检索3)稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏4)数据类型单一:Hbase中的数据都是字符串,没有类型5)无模式: 不同的行所对应的列是可以不同的6)数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;Cell:一行一列交叉处可以有多个值HBase和RDBMS以及HDFS的对比区别
1)phoenix、hive&hbase2)hbase在上亿条的数据查询可以控制在毫秒或者秒内(rowkey的设计好坏)HBase核心术语1)rowkey 主键 对应于RDBMS的主键 字符串,字典顺序存储,在HBase内存保存为字节数组 rowkey查询方式:单个rowkey、range、全表扫描2) column family/cf 列族 列族是在创建表的时候指定,一个列族包含多个列 private_info:age private_info:tel basic_info:name3) column 列 术语某个cf4) timestamp 时间戳 & cell hbase中通过row和columns来确定一个cell 每个cell里面可以保存同一份数据的多个版本 在写入数据时,时间戳可以由hbase自动赋值,也可以手工赋值 {rowkey、cf、column、version} ==> CellHBase物理模型table中的所有行都按照rowkey的字典序排列table在行的方向上分割为多个Region一个Region在同一时刻只能被同一个RegionServer管理RegionServer能管理多个Region1) Region:hbase中在行的方向上进行切割 Region1: rowkey:1-100 Region2: rowkey:101-2002) RegionServer: 管理Region 一个Region在同一时刻只能被一个RegionServer管理 一个RegionServer能够管理多个Region拆分Region?? 1)并行化 2)理解时可以对比MapReduce并行处理HBase架构1)HDFS:存储数据2)Client: 客户端 与HBase进行读写操作 可以有多个client来访问HBase3) ZK 保证集群中只有一个HMaster 监控我们RegionServer的上线或者下线,并实时通知给Master4) HMaster 为RegionServer分配Region 负责RegionServer的负载均衡 发现RegionServer失效了,会把该RegionServer上的Region分配到其他的RegionServer上去5)HRegionServer 维护Region,处理对这些Region的IO请求 RegionServer负责切分在运行过程中变得过大的Region6)HRegion 按行对rowkey对应的数据进行拆分7)HLog 记录操作记录,为了容错处理HBase是依赖于ZK的 1)ZK是外置的(建议) 2)HBase内置的HBase容错 1)Master ZK实现Master容错2)RegionServer Master会将该RegionServer上管理的Region重新分配到其他的RegionServer上去(负载均衡的算法)3)zk 一般配置奇数个ZK实例,一个集群中配置7,9,11个实例 就不会存在单点故障HBase环境搭建 下载地址:http://archive.cloudera.com/cdh5/cdh/5/wget下载:http://archive.cloudera.com/cdh5/cdh/5/hbase-1.2.0-cdh5.11.0.tar.gz1)conf/hbase-env.shexport JAVA_HOME=/home/hadoop/app/jdkexport HBASE_MANAGES_ZK=false2)conf/hbase-site.xml<property> <name>hbase.rootdir</name> <value>hdfs://master:8020/hbase</value></property>hbase.rootdir指的是hbase的存储目录,它的值必须与hadoop/core-site.xml中fs.defaultFS保持一致<property> <name>hbase.cluster.distributed</name> <value>true</value></property>运行模式,true分布式/伪分布式, false单机<property> <name>hbase.zookeeper.quorum</name> <value>master:2181</value></property>指的是zk节点的主机名和端口,如果有多个,则使用逗号分隔(hadoop000:2181,hadoop001:2181)3) regionservers配置hbase regionserver的机器,多台的话,每行一个hostname将HBASE配置到系统环境变量(~/.bashrc )export HBASE_HOME=/home/hadoop/app/hbaseexport PATH=$HBASE_HOME/bin:$PATHHBase启动bin/start-hbase.sh启动成功JPS会出现:HMaster、HReqionServer页面:主机名:60010hbase shell客户端$HBASE_HOME/bin/hbase shellhelp
http://www.htsjk.com/hbase/24633.html
www.htsjk.Com
true
http://www.htsjk.com/hbase/24633.html
NewsArticle
分布式列式数据库HBase,数据库hbase 本文概述: 1、HBase概述 2、HBase特点 3、HBase和RDBMS以及HDFS的对比区别 4、HBase核心术语 5、HBase物理模型 6、HBase架构 7、HBase容错 8、HBase环境搭建 HBas...
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。