HBase简介
HBase是一个开源、高可靠、高性能、可伸缩、面向列的、以键值对(Key/Value)形式存储数据的分布式数据库,具有高效的存储和简单的查询功能,主要用于存储非结构化和半结构化的松散数据,例如聊天纪录、图像等。它能够提供大数据集(超过10亿行数据和数百列元素的表格)的实时读取和随机访问。HBase源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。
HBase的安装
- 从HBase官网(https://hbase.apache.org/)下载HBase 2.2.1(hbase-2.2.1-bin.tar.gz)到Master节点的/home/miles/目录下。
- 输入
$ tar xzvf hbase-2.2.1-bin.tar.gz -C /usr/local
进行解压缩,会在 /usr/local目录下创建“hbase-2.2.1”的目录。 - 输入
$ sudo vi /etc/profile
命令,在profile文件末尾处添加
#Set Habse 2.2.1 Environment
export HBASE_HOME=/usr/local/hbase-2.2.1
export PATH=$PATH:$HBASE_HOME/bin/
- 使用
$ source /etc/profile
命令重新加载profile。 - 使用
$ cd /usr/local/hbase-2.2.1/conf
命令进入HBase配置目录。 - 使用
$ sudo vi hbase-env.sh
命令修改环境配置文件,在hbase-env.sh文件中搜索到“export JAVA_HOME=”,将“=”后的目录修改为Java的主目录(例如:/usr/lib/jvm/java)。
# The java implementation to use. Java 1.8+ required.
#export JAVA_HOME=/usr/java/jdk1.8.0/
export JAVA_HOME=/usr/lib/jvm/java
- 在hbase-env.sh文件中HBASE_MANAGES_ZK设置为false,不使用HBase自带的ZooKeeper。
# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
# export HBASE_MANAGES_ZK=true
export HBASE_MANAGES_ZK=false
- 使用
$ sudo vi hbase-site.xml
命令在文件末尾处添加
<configuration>
<!-- 指定hbase在本地的生成文件路径,类似于hadoop.tmp.dir -->
<property>
<name>hbase.tmp.dir</name>
<value>/usr/local/hbase-2.2.1/tmp</value>
</property>
<!-- HBase数据的存储目录 -->
<property>
<name>hbase.rootdir</name>
<value>/hbase</value>
</property>
<!-- 开启HBase分布式集群 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 自己的zk集群 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>Master,Slave01,Slave02</value>
</property>
<!-- 设置zk集群端口,默认是2181,一定要和你的zk集群端口保持一致-->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!-- Hbase在zk上注册的数据信息,默认是/tmp,如果不修改,当系统重启的时候会删除/tmp目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase-2.2.1/zk_data</value>
</property>
</configuration>
- 使用
$ sudo vi regionservers
命令修改
# 删除之前的localhost,添加Hadoop集群计算机名称
u18Master
u18Slave01
u18Slave02
- 将Hadoop的配置文件(core-site.xml和hdfs-site.xml)复制到HBASE主目录($HBASE_HOME/conf/)中,使HBase能够获得Hadoop的配置。
$ cp $HADOOP_HOME/etc/hadoop/core-site.xml $HBASE_HOME/conf/
$ cp $HADOOP_HOME/etc/hadoop/hdfs-site.xml $HBASE_HOME/conf/
- 将HBase的主目录从Master分发到另外两台Slave(Slave01和Slave02)上。
$ scp -r /usr/local/hbase-2.2.1/ Slave01:/usr/local/
$ scp -r /usr/local/hbase-2.2.1/ Slave02:/usr/local/
- 使用$ sudo vi /etc/profile命令修改两台Slave(Slave01和Slave02)上的/etc/profile文件,并使用
$ source /etc/profile
命令使配置生效。
#Set Habse 2.2.1 Environment
export HBASE_HOME=/usr/local/hbase-2.2.1
export PATH=$PATH:$HBASE_HOME/bin/
- 启动HBase
在Master上输入$ start-hbase.sh
命令,就启动了HBase。用浏览器查看HBase集群。注意:HBase 2.0的端口号是16010,HBase 1.0之前的端口是60010。
在Master上输入$ hbase-daemon.sh start master
命令,启动HBase的备份节点。
HBase的测试
输入$ hbase shell
命令进入HBase。
使用list、status、create、put等命令进行测试,如果顺利运行则表示HBase安装和配置成功。
参考文献
- HBase官网 https://hbase.apache.org/
- Profile文件损坏后的修复方法 https://blog.csdn.net/an7800666/article/details/101476361
- HBase 2.0分布式安装 https://blog.csdn.net/weixin_42003671/article/details/86539250