阐述
HBase是一个分布式的、面向列的开源数据库。
HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务。
文件准备
hadoop2.9.2.tar.gz(链接:https://pan.baidu.com/s/19wbFJPeFCv9HwLb1PKnLjQ 提取码:germ)
hbase2.2.3.tar.gz(链接:https://pan.baidu.com/s/17EGwXedr5bgO1qdUacVC6g 提取码:bxre)
jdk1.8.0_162.tar.gz(链接:https://pan.baidu.com/s/18E3IRKSXGGAPtzTXgLRhsw 提取码:m6q5)
apache-zookeeper-3.5.7-bin.tar.gz(链接:https://pan.baidu.com/s/1OpED0E-IB3vmUhFiFw-XWA 提取码:r02s)
环境
ubuntu18.04
jdk1.8.0 + hadoop2.9.2 + hbase2.2.3 + zookeeper3.5.7(经过测试,兼容可用)
HBase运行需要Hadoop环境与Zookeeper服务的支持(这里Hadoop使用伪分布式)
我们这里直接讲Hbase如何配置,Hadoop环境及Zookeeper服务未配置的请查看下面的教程:
未搭建Hadoop伪分布式请查看教程:Hadoop伪分布式安装与配置(hadoop2.10.0与hadoop2.9.2伪分布式安装配置过程相同)
未配置Zookeeper服务请查看教程:ubuntu搭建zookeeper服务(伪分布式环境下)
Hadoop与HBase的最新版本兼容性
也可自己根据图表中兼容性自行选择版本安装配置
HBase-2.2.x和Hadoop-3.1.1+这个组合不用试了,目测不兼容
HBase安装
解压(或在文件系统中直接提取)下载好的tar.gz安装包到指定目录并将文件更名为hbase
tar -zxvf hbase-2.2.3-bin.tar.gz -C /usr/local
mv hbase-2.2.3-bin hbase # 更名
cd /usr/local
sudo chown -R hadoop ./hbase # 修改文件权限
配置环境变量
vim ~/.bashrc
添加配置如下
export HBASE_HOME=/usr/local/hbase
export PATH=$HBASE_HOME/bin:$PATH
export PATH=$HBASE_HOME/lib:$PATH
使配置生效
source ~/.bashrc
添加hbase权限,将hbase下的所有文件的所有者改为hadoop
cd /usr/local
sudo chown -R hadoop ./hbase
查看hbase版本号
hbase version
出现如下状况:(发现是java的jar包有两个一样的,于是移除其中的一个,这里我选择的是hbase中的slf4j-log4j12-1.7.25.jar)
或者说出现hadoop错误提示 错误的替换(貌似是这个,有点记不清了,那就是版本不兼容问题了)
slf4j-log4j12-1.7.25.jar 在目录 /usr/local/hbase/lib/client-facing-thirdparty 下,将其移除即可
查看版本号成功(安装成功)
修改配置文件 hbase-env.sh 与 hbase-site.xml
hbase-env.sh
vim /usr/local/hbase/conf/hbase-env.sh
# 添加如下配置:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export HBASE_CLASSPATH=/usr/local/hadoop/conf
export HBASE_MANAGES_ZK=true
hbase-site.xml
vim /usr/local/hbase/conf/hbase-site.xml
# 添加如下配置
hbase.rootdir
hdfs://localhost:9000/hbase
hbase.zookeeper.quorum
localhost
The directory shared by RegionServers.
hbase.zookeeper.property.dataDir
/usr/local/hadoop/zookeeperdata
Property from ZooKeeper config zoo.cfg.
The directory where the snapshot is stored.
hbase.cluster.distributed
true
hbase.unsafe.stream.capability.enforce
false
启动HBase(提前开启hadoop与zookeeper服务)
start-dfs.sh # 开启 hadoop
zkServer.sh start # 开启 zookeeper
start-hbase.sh # 开启 hbase
使用 jps 命令查看HBase启动进程
进程号解释:
2498 DataNode # 必须,数据存储相关
2979 QuorumPeerMain # 必须单独配置的Zookeeper集群,如果是内置的则为HQuorumPeer
3540 HRegionServer # 必须,表明是hbase存储节点
3908 Jps
2742 SecondaryNameNode # 必须,任务调度器
3416 HMaster # 必须的,表明该hbase是Master
2300 NameNode # 必须,任务调度器
通过默认端口号16010在浏览器中使用http://localhost:16010访问HBase
也可以在/usr/local/hbase/conf/hbase-site.xml文件夹中进行自定义端口号
vim /usr/local/hbase/conf/hbase-site.xml
# 添加如下配置
hbase.master.info.port
16010
启动HBase shell
hbase shell