1. Hbase简介
- Hadoop-Database根据’bigtable’论文实现的
- 分布式 可扩展的大数据存储技术
- 随机访问 实时读写海量数据
- 存储数 '十亿行 百万列’的数据
- 高可靠性、高性能、面向列、可伸缩的分布式存储系统
- hbase的底层存储基于hdfs
- 利用Zookeeper作为协调工具
2. Hbase是什么?
- 分布式开源数据库,基于hadoop分布式文件系统(HDFS)
- 模仿提供了Google文件系统的BigTable数据库所有功能
- 处理非常庞大的表
- 数十亿行 百万列
- 利用mapreduce计算数据,利用zookeeper协调资源
- HBase是一款NoSQL
3. 行存储和列存储
-
行存储:mysql oracle底层基于行存储数据的
- 查询数据需要全表扫描,效率较低
- 对数据压缩支持不太好
-
列存储:hbase底层基于列存储数据的
- 查询数据不需做全表扫描
- 支持较好的数据压缩
4. Hbase的特点
- 可以分布式存储海量的数据
- 具有容错能力强,数据高可靠的特点
- HBase是一个列式NoSQL数据库
- 数据存储的结构是按照列进行存储
5.Hbase 安装
安装hbase高可用集群之前首先要保证zookeeper和hadoop已经安装完成
-
准备安装包
hbase-1.1.5-bin.tar.gz
-
集群的规划
- mini01: master
- mini02: master
- mini03: regionserver
- mini04: regionserver
- mini05: regionserver
-
解压安装包
[root@mini01: /soft]: tar -zxvf hbase-1.1.5-bin.tar.gz -C /opt/
-
重命名
[root@mini01: /opt]: mv hbase-1.1.5/ hbase
-
配置环境变量
[root@mini01: /opt]: #配置HBASE的环境变量 export HBASE_HOME=/opt/hbase export PATH=$PATH:$HBASE_HOME/bin
-
配置vim hbase-env.sh
[root@mini01: /opt/hbase/conf]: vim hbase-env.sh
export JAVA_HOME=/opt/jdk export HBASE_MANAGES_ZK=false #不使用hbase自带的zookeeper export HBASE_CLASSPATH=/opt/hadoop/etc/hadoop
-
配置hbase-site.xml
[root@mini01: /opt/hbase/conf]: vim hbase-site.xml
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://ns1/hbase</value> </property> <property> <name>hbase.tmp.dir</name> <value>/opt/hbase/tmp</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>mini03:2181,mini04:2181,mini05:2181</value> </property> </configuration>
-
配置 regionservers
[root@mini01: /opt/hbase/conf]: vim regionservers
mini03 mini04 mini05
-
分发文件
[root@mini01: /opt]: scp -r hbase mini02:/opt scp -r hbase mini03:/opt scp -r hbase mini04:/opt scp -r hbase mini05:/opt scp /etc/profile mini02:/etc/ scp /etc/profile mini03:/etc/ scp /etc/profile mini04:/etc/ scp /etc/profile mini05:/etc/
source /etc/profile(所有节点都做,要使环境变量生效)
-
启动hbase集群
start-hbase.sh
-
单独启动master
[root@mini02:/] hbase-daemon.sh start master
-
访问
mini01:16010
mini03:16030
-
注意事项
启动hbase集群一定要保证整个集群的时间一致
-
附加(一般不会有这种情况)
如果启动集群执行start-hbase.sh,master节点可以启动,但是regionserver节点不能启动,但是单独启动regionserver(hbase-daemon.sh start regionserver)是可以启动的,也没有问题,name就需要拷贝一个jar包,
将HADOOP_HOME/share/hadoop/common/lib下的htrace-core-3.0.4.jar 复制到$HBASE_HOME/lib下