HBase介绍
Hbase是非关系型数据库,适合海量数据,实时读写分析。是Hive的有力补充,在hadoop的生态系统中有极大作用。
HBase的数据的存储结构不同于传统的关系型数据库,HBase是一种结构松散,分布式,多维度有序映射的持久化存储系统,它索引的依据是行键、列键和时间戳。 HBase可以被看作键值存储数据库、面向列族的数据库。
HBase 数据模型理解:
表
组织结构如图一所示
HBase集群架构
准备工作:
1. 虚拟机4台,master,node1,node2,node3;
2. 每台虚拟机设置固定IP;
3. 每台虚拟机安装必要的软件;
注:
1. master:1.5G~2G内存、20G硬盘、NAT、1~2核;
2. node1~node3:1G内存、20G硬盘、NAT、1核;
确认搭建好Hadoop集群
ZooKeeper的简介
ZooKeeper分布式框架是apache hadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。ZooKeeper可以理解为一个分布式一致性协调器。
一半以上的节点还运行,ZooKeeper就能提供服务;
当leader出现问题时,将一个follower切换成leader;
配置ZooKeeper集群主要步骤
1. 上传zookeeper-3.4.6.tar.gz安装包到master节点的/opt目录下
2. 解压
tar -zxf /opt/zookeeper-3.4.6.tar.gz -C /usr/local/
----修改名称(可选)
mv /usr/local/zookeeper-3.4.6 /usr/local/zookeeper
3、进入/usr/local/zookeeper/conf
cd /usr/local/zookeeper/conf
4、复制zoo_sample.cfg重命名为zoo.cfg
cp zoo_sample.cfg zoo.cfg
(1) 配置内容如下:
dataDir=/usr/lib/zookeeper
dataLogDir=/var/log/zookeeper
clientPort=2181
tickTime=2000
initLimit=5
syncLimit=2
server.4=master:2888:3888
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
5.在各个子节点新建以下文件夹:
mkdir /usr/lib/zookeeper
mkdir /var/log/zookeepervi /usr/lib/zookeeper/myid
在 master的/usr/lib/zookeeper目录下新建文件myid,内容为4
在 node1的/usr/lib/zookeeper目录下新建文件myid,内容为1
在 node2的/usr/lib/zookeeper目录下新建文件myid,内容为2
在 node3的/usr/lib/zookeeper目录下新建文件myid,内容为3
6.在master节点 /或者在所配置zookeeper的节点,将zookeeper复制给其他节点
scp -r /usr/local/zookeeper node1:/usr/local/
scp -r /usr/local/zookeeper node2:/usr/local/
scp -r /usr/local/zookeeper node3:/usr/local/
7、在各子节点的/etc/profile中配置环境变量
vi /etc/profile
export ZK_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZK_HOME/bin
运行source /etc/profile使配置生效
source /etc/profile
8. 启动各节点Zookeeper
cd usr/local/zookeeper/bin
zkServer.sh start
9.查看各个子节点的zookeeper是否启动
zkServer.sh status
HBase安装配置
在ZooKeeper集群搭建好后,配置Hbase集群(master,node1,node3)。
master作为Hbase的主节点,担当Hmaster的角色。
在执行之前,记得关闭node2
1、解压安装包
(1)通过xmanager的Xftp上传hbase-2.2.6-bin.tar.gz压缩包到/opt目录
(2)解压缩hbase-2.2.6.tar.gz 文件
命令:tar -zxf /opt/hbase-2.2.6-bin.tar.gz -C /usr/local
解压后即可,看到/usr/local/hbase-2.2.6文件夹
改名: mv /usr/local/hbase-2.2.6 /usr/local/hbase
2、修改配置文件
(1)进入目录:
命令:cd /usr/local/hbase/conf
命令:vi hbase-site.xml
(2)修改hbase-site.xml文件,内容如:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:8020/hbase</value>
</property>
<property>
<name>hbase.master</name>
<value>master</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,node1,node3</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>60000000</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
(3)配置hbase-env.sh
vi hbase-env.sh
注释下面两句:
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
如果没有可以不管
添加如下内容(均根据实际情况修改):
export HBASE_CLASSPATH=/opt/hadoop-3.1.4/etc/hadoop
export JAVA_HOME=/usr/java/jdk1.8.0_341-amd64
export HBASE_MANAGES_ZK=false
(4)配置regionservers,内容如下
命令:vi regionservers
master
node1
node3
(5)拷贝到各子节点
scp -r /usr/local/hbase/ node1:/usr/local/
scp -r /usr/local/hbase/ node3:/usr/local/
3、设置环境变量
vi /etc/profile
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
source /etc/profile
4、启动Hadoop、ZooKeeper
命令:
cd /opt/hadoop-3.1.4/sbin
./start-all.sh
zkServer.sh start
zkServer.sh status
Node1,Node3
cd /opt/hadoop-3.1.4/sbin
./start-all.sh
jps
zkServer.sh start
zkServer.sh status
5、启动HBase
cd /usr/local/hbase/bin
./start-hbase.sh
6、在浏览器查看
http://192.168.199.130:16010 (根据自己的集群设置输入地址)
关闭:
先关闭hbase
stop-hbase.sh
再去关闭Hadoop集群
cd /opt/hadoop-3.1.4/sbin
./stop-all.sh
关闭zkServer
zkServer.sh start