1,HBase是什么?
1,概念
HBase是一个高可靠性、高性能、可伸缩、分布式、基于列存储的非关系型(NoSQL)数据库。
- 列式存储和行式存储?
- 非关系型数据库与关系型数据库?
2,与Google Bigtable的不同之处
服务 | Google Bigtables | HBase |
文件存储系统 | Google Bigtable:GFS | HBase:HDFS |
海量数据计算框架 | Google Bigtable:MapReduce | HBase:MapReduce |
应用程序协调服务 | Google Bigtable:Chubby | HBase:ZooKeeper |
3, 何时采用 HBase?
- (1)需适应不同种类数据格式和数据源,不能预先严格定义模式
- (2)需处理大规模数据
- (3)不强调数据之间的关系,需存储半结构化和非结构化数据
- (4)数据非常稀疏,有大量为 NULL 的字符串
- (5)想要更好的进行扩展
4,HBase 集群结构
HBase 分布式集群搭建
1,前期装备
- (1)同步网络时间
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改时区
ntpdate cn.pool.ntp.org #同步网络时间
date #检查时间是否修改成功
- (2)安装zookeeper在所有节点上
zookeeper安装步骤(点击可跳转到安装页面)
2,HBase1.3.1 分布式集群搭建
- 1,下载安装包
下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/ 版本号: hbase-1.3.1-bin.tar.gz - 2,上传并解压
将 HBase 安装包上传到 Linux 服务器解压命令:tar -zxvf hbase-1.3.1-bin.tar.gz
- 3,修改配置文件
- hbase-env.sh 1,修改JDK安装路径
export JAVA_HOME=/home/shiny/Desktop/software/jdk1.8.0_73
- 2,不引用HBase自带的ZooKeeper,使用自己安装的
- hbase-site.xml
1,指定 HBase 在 HDFS 上存储的路径
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop01:9000/hbase</value>
</property>
2,指定 HBase 是分布式的
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
3,指定 ZooKeeper 节点,多个用“,”分割
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
4,ZooKeeper配置文件zoo.cfg中的dataDir。ZooKeeper存储数据库快照的位置
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/shiny/zkdata</value>
</property>
- 4,分发到其它节点
scp -r hbase-1.3.1/ shiny@hadoop02:$PWD
scp -r hbase-1.3.1/ shiny@hadoop03:$PWD
- 5,配置环境变量
1,编辑.bash_profile文件
vim /home/theone/.bash_profile
2,添加环境变量:
export HBASE_HOME=/home/theone/Desktop/software/hbase-1.3.1/
export PATH=$PATH:$HBASE_HOME/bin
3,立即执行文件
source /home/theone/.bash_profile
- 6,启动 HBase 集群
1,启动hadoop集群,(在主节点上执行命令)
start-dfs.sh
start-yarn.sh
2,启动 ZooKeeper 集群,(在所有节点上执行命令)
zkServer.sh start
3,启动 HBase 集群,(在哪个节点启动哪个节点就是主节点)
start-hbase.sh
启动页面有警告信息:
解决方案:
1,将 JDK 修改为 1.7 版本
2,修改 HBase 的配置文件hbase-env.sh
关闭 HBase 集群,命令:stop-hbase.sh修改配置文件hbase-env.sh,将以下两行配置注释掉(每个节点)
再次启动 HBase 集群,警告信息消失
- 7,验证 HBase 集群
检查进程,命令:jps
登录Web UI 页面:主节点:16010 - 8,单步启动
主节点:hbase-daemon.sh start master
从节点:hbase-daemon.sh start regionserver
3,常见异常
HRegionServer 进程启动后立即退出
多台服务器之间 HBase 默认的容忍时间差为 30s
原因:由于HBase 集群服务器时间不同步