HBase是什么
HBase 基于 Google的BigTable论文而来,是一个分布式海量列式非关系型数据库系统,可以提供
超大规模数据集的实时随机读写。
如下MySQL存储机制,空值字段浪费存储空间
- 如果是列存储的话,可以这么玩…
rowkey:1 name:小明
rowkey:1 age:23
rowkey:1 job:学生
rowkey:2 name :小红
rowkey:2 salary:10w
rowkey:2 job:律师
…
列存储的优点:
1)减少存储空间占用。
2)支持好多列
- HBase的特点
海量存储: 底层基于HDFS存储海量数据
列式存储:HBase表的数据是基于列族进行存储的,一个列族包含若干列
极易扩展:底层依赖HDFS,当磁盘空间不足的时候,只需要动态增加DataNode服务节点就可以高并发:支持高并发的读写请求
稀疏:稀疏主要是针对HBase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。
数据的多版本:HBase表中的数据可以有多个版本值,默认情况下是根据版本号去区分,版本号就是插入数据的时间戳
数据类型单一:所有的数据在HBase中是以字节数组进行存储 - HBase的应用
交通方面:船舶GPS信息,每天有上千万左右的数据存储。
金融方面:消费信息、贷款信息、信用卡还款信息等
电商方面:电商网站的交易信息、物流信息、游览信息等
电信方面:通话信息
总结:HBase适合海量明细数据的存储,并且后期需要有很好的查询性能(单表超千万、上亿,且并发要求高)
HBase数据模型
HBase的数据也是以表(有行有列)的形式存储
HBase物理存储
下载
http://archive.apache.org/dist/hbase/1.3.1/
安装目录
/opt/lagou/servers/
tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/lagou/servers
改配置文件
需要把hadoop中的配置core-site.xml 、hdfs-site.xml拷贝到hbase安装目录下的conf文件夹中
ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/core-site.xml /opt/lagou/servers/hbase-1.3.1/conf/core-site.xml
ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /opt/lagou/servers/hbase-1.3.1/conf/hdfs-site.xml
修改conf目录下配置文件
修改 hbase-env.sh
- JAVA_HOME
export JAVA_HOME=/usr/local/jdk1.8.0_261
export HBASE_MANAGES_ZK=FALSE
修改 hbase-site.xml
<configuration>
<!-- 指定hbase在HDFS上存储的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://linux135:9000/hbase</value>
</property>
<!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定zk的地址,多个用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>linux135:2181,linux134:2181,linux128:2181</value>
</property>
</configuration>
修改regionservers文件
linux135
linux134
linux128
hbase的conf目录下创建文件backup-masters (Standby Master)
linux134
配置hbase的环境变量
vim /etc/profile
export HBASE_HOME=/opt/lagou/servers/hbase-1.3.1
export PATH=$PATH:$HBASE_HOME/bin
分发
rsync-script hbase-1.3.1
让所有节点的hbase环境变量生效
在所有节点执行 source /etc/profile
启动
/opt/lagou/servers/hbase-1.3.1/bin
start-hbase.sh
HBase集群的web管理界面
启动好HBase集群之后,可以访问地址:HMaster的主机名:16010
http://192.168.181.135:16010/master-status
shell基本操作