一、HBase的相关概念
1.HBase的概念:
大量数据进行随机近实时读写时使用Hbase。
2.HBase是一个模仿Gootable’s Bigtable的,开源的、分布式的、版本化的非关系型数据库。
3.Hbase是一个非关系型数据库。
4.HBase是用来在大量数据中进行低延迟的随机查询的
2.什么是nosql?
Not Only SQL ,意即“不仅仅是SQL”
3.常见的nosql数据库类型
非关系型数据库——列存储(HBase)
非关系型数据库——文档型存储(MongoDb)
非关系型数据库——内存式存储(redis)
二、Hbase的环境搭建
http://hbase.apache.org/
(1).集群规划:
Node Name Master ZooKeeper RegionServer
Hadoop001 yes yes yes
Hadoop002 backup yes yes
Hadoop003 no yes yes
(2).三台机器配置JDK及环境变量:JAVA_HOME
(3).配置一个独立的zookeeper集群
--------------------------------------------------
在Hadoop001节点上操作:
上传、解压、重命名、配置zoo.cfg
vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/bigdata/zkmyid
clientPort=2181
server.1=Hadoop001:2888:3888
server.2=Hadoop002:2888:3888
server.3=Hadoop003:2888:3888
将zookeeper包发送到Hadoop002、Hadoop003:
scp -r zookeeper [email protected]:/opt/
scp -r zookeeper [email protected]:/opt/
在Hadoop001配置profile环境变量并且发送给Hadoop002、Hadoop003节点:
vi /etc/profile
export ZK_HOME=/opt/zookeeper
export PATH=$PATH:$ZK_HOME/bin
刷新配置
source /etc/profile
发送环境变量:
scp /etc/profile [email protected]:/etc/
scp /etc/profile [email protected]:/etc/
--------------------------------------------------
在Hadoop001、Hadoop002、Hadoop003分别执行
mkdir /home/bigdata/zkmyid -p
echo "1" > /home/bigdata/zkmyid/myid
mkdir /home/bigdata/zkmyid -p
echo "2" > /home/bigdata/zkmyid/myid
mkdir /home/bigdata/zkmyid -p
echo "3" > /home/bigdata/zkmyid/myid
--------------------------------------------------
启动zookeeper集群并且查看服务状态
在三台机器分别执行:zkServer.sh start
查看状态:zkServer.sh status
====================================================
====================================================
(4)配置Hbase
上传、解压、重命名
配置:
vi hbase-env.sh
export JAVA_HOME=/opt/jdk
#使用自己安装的zk管理Hbase集群
export HBASE_MANAGES_ZK=false
export HADOOP_HOME=/opt/hadoop
#根据集群规划,在Hadoop001、Hadoop002、Hadoop003三个街道上启动HRegionServer服务
vi regionservers
Hadoop001
Hadoop002
Hadoop003
vi hbase-site.xml
<!-- 配置HBase使用分布式方式-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--hbase中的数据在HDFS上的位置-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop001:8020/hbase</value>
</property>
<!--hbase需要连接的zookeeper集群-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop001,hadoop002,hadoop003</value>
</property>
<!--hbase中保存zookeeper数据的地址-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/data/zookeeper</value>
</property>
新建backup文件配置backup-master
vi backup-masters
Hadoop002
将Hbase框架发送到Hadoop002、Hadoop003上:
scp -r hbase [email protected]:/opt/
scp -r hbase [email protected]:/opt/
在Hadoop001配置profile环境变量并且发送给Hadoop002、Hadoop003节点:
vi /etc/profile
export HBASE_HOME=/opt/hbase
export PATH=$PATH:$HBASE_HOME/bin
发送环境变量:
scp /etc/profile [email protected]:/etc/
scp /etc/profile [email protected]:/etc/
刷新配置
source /etc/profile
(5)、先启动Zookeer集群或者Hadoop集群,在启动Hbase集群
====Zookeer集群=====Zookeer集群
在三台机器上分别执行:
zkServer.sh start
查看Zookeer集群服务状态:
zkServer.sh status
Hadoop集群=======
start-all.sh
启动Hbase集群(在启动hbase之前,先执行时间同步 date -s "00:00:00")
start-hbase.sh
链接hbase客户端:
hbase shell
进入客户端之后,检查Hbase是否正确链接Zookeeper
list