赞
踩
Hbase是非关系型数据库,适合海量数据,实时读写分析。是Hive的有力补充,在hadoop的生态系统中有极大作用。
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分布式框架是apache hadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。ZooKeeper可以理解为一个分布式一致性协调器。
一半以上的节点还运行,ZooKeeper就能提供服务;
当leader出现问题时,将一个follower切换成leader;
tar -zxf /opt/zookeeper-3.4.6.tar.gz -C /usr/local/
mv /usr/local/zookeeper-3.4.6 /usr/local/zookeeper
cd /usr/local/zookeeper/conf
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
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
scp -r /usr/local/zookeeper node1:/usr/local/
scp -r /usr/local/zookeeper node2:/usr/local/
scp -r /usr/local/zookeeper node3:/usr/local/
vi /etc/profile
export ZK_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZK_HOME/bin
运行source /etc/profile使配置生效
source /etc/profile
cd usr/local/zookeeper/bin
zkServer.sh start
zkServer.sh status
在ZooKeeper集群搭建好后,配置Hbase集群(master,node1,node3)。
master作为Hbase的主节点,担当Hmaster的角色。
在执行之前,记得关闭node2
(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
(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/
vi /etc/profile
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
source /etc/profile
命令:
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
cd /usr/local/hbase/bin
./start-hbase.sh
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。