HBase 2.3.1
1. 简介
Apache HBase是Hadoop数据库,这是一个分布式,可扩展的大数据存储。适用于大数据进行随机,实时的读/写访问。该项目的目标是在商品硬件群集上托管超大型表-数十亿行X数百万列。
Apache HBase是一个开放源代码,分布式,版本化,非关系型数据库,其仿照Google的Bigtable。正如Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS之上提供类似于Bigtable的功能。
2. 安装
2.1 独立模式
一个独立的实例具有所有HBase守护程序(主服务器,RegionServers和ZooKeeper),它们在单个JVM中运行,并保留在本地文件系统中。
配置JAVA_HOME,修改conf/hbase-env.sh
添加
export JAVA_HOME=/usr/local/softwares/java/jdk1.8.0_161
启动
./bin/start-hbase.sh
访问http://ip:16010
连接HBase
./bin/hbase shell
测试建表等
-- 建表
create 'test','cf'
-- 查看表
list
-- 查看表描述
describe 'test'
-- 添加数据
put 'test','row1','cf:a','value1'
put 'test','row2','cf:b','value2'
put 'test','row3','cf:c','value3'
-- 一次扫描表中的所有数据
scan 'test'
-- 获取单行数据
get 'test','row1'
-- 启用禁用表
disable 'test'
enable 'test'
-- 禁用表后才能删除
drop 'test'
停止
./bin/stop-hbase.sh
2.2 伪分布式
需要先安装Hadoop
配置JAVA_HOME,修改conf/hbase-env.sh
添加
export JAVA_HOME=/usr/local/softwares/java/jdk1.8.0_161
修改conf/hbase-site.xml,删除hbase.tmp.dir和hbase.unsafe.stream.capability.enforce
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop-master:9000/hbase</value>
</property>
2.3 分布式
需要先安装Hadoop 分布式
这里沿用Hadoop的集群,并已完成无密码的SSH访问。
192.168.110.40 hadoop-master
192.168.110.41 hadoop-slave1
192.168.110.42 hadoop-slave2
先在hadoop-master上使用hadoop账号,解压HBase。
配置JAVA_HOME,修改conf/hbase-env.sh
添加
export JAVA_HOME=/usr/local/softwares/java/jdk1.8.0_161
修改,不使用自带的zookeeper
export HBASE_MANAGES_ZK=false
修改conf/regionservers,删除localhost
添加
hadoop-slave1
hadoop-slave2
在conf下创建文件backup-masters,这里使用hadoop-salve1作为备机,所以填入hadoop-slave1。
修改conf/hbase-site.xml,删除hbase.tmp.dir和hbase.unsafe.stream.capability.enforce。
这里使用外部的zookeeper,但未使用zookeeper集群。
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop-master:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop-master</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper</value>
</property>
在hadoop-slave1和hadoop-slave2使用hadoop账号新建文件夹
mkdir -p /home/hadoop/softwares/hbase
将hadoop-master的HBase分发给hadoop-slave1,hadoop-slave2
scp -r /home/hadoop/softwares/hbase/hbase-2.3.1/ hadoop-slave1:/home/hadoop/softwares/hbase/hbase-2.3.1/
scp -r /home/hadoop/softwares/hadoop/hadoop-2.3.1/ hadoop-slave2:/home/hadoop/softwares/hbase/hbase-2.3.1/
在hadoop-master执行,确保hadoop-master启动了HMaster,hadoop-slave1启动了HMaster和HRegionServer,hadoop-slave2启动了HRegionServer。
./bin/start-hbase.sh
访问http://hadoop-master:16010/
参考:
HBase 官方文档