前言:
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化9的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
一、系统环境
od: ubuntu 16.04 LTS 64 bit jdk: jdk1.8.0_111 hadoop:2.7.3 zookeeper:zookeeper3.4.6
Hbase:1.2.6
安装之前,确保JDK,Hadoop集群,Zookeeper集群 安装成功。
二、安装
2.1、下载:Hbase下载地址
2.2、解压安装包到路径/usr/local下
sudo tar -xzvf hbase-1.2.6-bin.tar.gz -C /usr/local
cd /usr/local sudo mv hbase-1.2.5 hbase#重命名,方便使用
2.3、配置环境变量 vim /etc/profile
#Hbase export HBASE_HOME=/usr/local/hbase export PATH=$HBASE_HOME/bin:$PATH
执行 source /etc/profile 命令使上述配置在当前终端立即生效
2.3、添加Hbase权限
cd /usr/local sudo chown -R hadoop ./hbase #将hbase下的所有文件的所有者改为hadoop,hadoop是当前用户的用户名
2.4、验证是否安装成功
如下图,说明安装成功
三、Hbase配置
HBase的运行有三种模式:单机模式、伪分布模式、分布式模式。
单机模式: 在一台计算机上安装和使用HBase,不涉及数据的分布式存储
伪分布式模式: 在一台计算机上模拟一个小的集群
分布式模式: 使用多台计算机实现物理意义上的分布式存储。
3.1、单机模式配置
a、修改配置文件/conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_111 export HBASE_MANAGES_ZK=false
说明:
Hbase依赖于zookeeper,所有的节点和客户端都必须能够访问zookeeper。
HBase的安装包里面有自带的ZooKeeper,HBASE_MANAGES_ZK环境变量用来设置是使用HBase默认自带的 Zookeeper还是使用独立的ZooKeeper。
• HBASE_MANAGES_ZK为 false 时使用独立的.
• HBASE_MANAGES_ZK为 true 时表示使用默认自带的,让Hbase启动的时候同时也启动自带的ZooKeeper。
b、修改hbase-site.xml文件
<configuration> <property> <name>hbase.rootdir</name> <value>file:///usr/local/hbase/hbase-tmp</value> <description>数据存放的位置。</description> </property> </configuration>
c、测试
cd /usr/local/hbase bin/start-hbase.sh bin/hbase shel
停止HBase运行,命令如下:
sudo
bin
/stop-hbase
.sh
注意:在单机和伪分布的切换的时候需要把hadoop的单机和伪分布的配置文件一并修改。
3.2、伪分部模式配置
a、修改配置文件/conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_111
export HBASE_CLASSPATH=/usr/local/hbase/conf export HBASE_MANAGES_ZK=false
b、修改hbase-site.xml文件
修改hbase.rootdir,指定HBase数据在HDFS上存储路径;将属性hbase.cluster.distributed设置为true。假设当前Hadoop集群运行在伪分布模式下,在本机上运行,且NameNode运行在9000端口。
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> </configuration>
c、测试运行Hbase
先启动hadoop(略),再启动zookeeper(略),再启动hbase
cd /usr/local/hbase bin/start-hbase.sh
进入shell界面:
bin/hbase shell
停止HBase运行,命令如下
bin/stop-hbase.sh
注意!这里启动关闭Hadoop和HBase的顺序一定是:
启动Hadoop -> 启动HBase -> 关闭HBase -> 关闭Hadoop
查看Hbase网页监控:如下
参考:https://blog.csdn.net/qjk19940101/article/details/71098848