HBase理论
HBase
- 1、Hbase是hadoop领域的的数据库
- 2、Hbase是面向列存储的列式数据库
- 1)行式数据库优缺点
- a、数据在表中的位置空间是确定的,指针在访问只要知道首地址就可以高效获取其他数据
- b、但在常用的可能只是所有列中的部分列的数据,可是行式数据库会自动查询所有的列,只是在客户端进行数据的过滤,会浪费大量的带宽和空间
- 2)列式数据库的优缺点
- a、一张不规则的表(人物画像)每行属性有大量的null
- b、类似于交错数组,只使用在特定的领域
- 1)行式数据库优缺点
- 3、逻辑模型
- 1)表 近似于行式数据库的表
- 2)行 近似于行式数据库的行
- 3)列 是不能脱离列簇独立存在的,在行式数据库中没有
- 4)行健 近似于行式数据库的主键
- 5)时间戳 类似于timestamp 的天然存在,不需要用户自己创建
- 4、物理模型
Hbase数据在进行存储时,是按照行健存储。会自己比较行健大小后进行存储- 1)列簇 是单独存储一系列列的文件
- 5、存储模型
- 1)Region
- a、Table在行的方向上分割为多个Region,一个region由[startkey,endkey]表示,每个Region分散在不同的RegionServer中
- 1)Region
- 6、体系结构
- 1)主从式结构,主节点称作master,从节点称为region server。
- 2)工作方式
HBase安装配置
- 1、前置条件最少安装了Hadoop(如果只是安装单机版hbase,zookeeper使用hbase内置的即可)如果需要安装伪分布式或完整分布式则需要先安装zookeeper
- 2、下载hbase(建议下载hbase-1.2.0)并解压至/opt/目录下,修改解压后的名字为hbase
tar -zxvf hbase-1.2.0-cdh5.14.2.tar.gz -C /opt/
mv hbase-1.2.0-cdh5.14.2/ hbase
- 3、修改/opt/hbase/conf/目录下文件
- 1)修改hbase-env.sh文件
- vi conf/hbase-env.sh、
export JAVA_HOME=/opt/jdk1.8.0_221
#使用外部zookeeper
export HBASE_MANAGES_ZK=true
#注释以下两行内容:
- 2)修改hbase-site.xml文件
vi conf/hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop001:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
- 4、配置/etc/profile
vi /etc/profile
export HBASE_HOME=/opt/hbase
export PATH=….:$HBASE_HOME/bin
- 5、保存退出后source 文件
source /etc/profile
- 6、启动HBase并测试是否安装成功
#启动hbase master
bin/hbase-daemon.sh start master
#查看进程,是否存在HMaster
jps
#进入shell
bin/hbase shell
#创建
create 'aaa',{NAME=>'kb09'},{NAME=>'kgc'},{NAME=>'kb07'}
desc 'aaa'
#提出
quit