HBase介绍
概念
HBase是一个分布式的、面向列的开源数据库,一个结构化数据的分布式文件存储系统”。
Hbase是一种NoSQL数据库,顾名思义便是没有SQL语句的。技术上来讲,它更像是分布式存储而不是分布式数据库
特点
- 强读写一致,但是不是“最终一致性”的数据存储,这使得它非常适合高速的计算聚合
- 自动分片,通过Region分散在集群中,当行数增长的时候,Region也会自动的切分和再分配
- 自动的故障转移
- Hadoop/HDFS集成,和HDFS开箱即用,不用太麻烦的衔接
- 丰富的“简洁,高效”API,Thrift/REST API,Java API
- 块缓存,布隆过滤器,可以高效的列查询优化
- 操作管理,Hbase提供了内置的web界面来操作,还可以监控JMX指标
一个图看懂HBase架构
- Zookeeper,作为分布式的协调。RegionServer也会把自己的信息写到ZooKeeper中。
- HDFS是Hbase运行的底层文件系统
- RegionServer,理解为数据节点,存储数据的。
- Master RegionServer要实时的向Master报告信息。Master知道全局的RegionServer运行情况,可以控制RegionServer的故障转移和Region的切分。
HBase集群搭建
下载
下载的时候要与安装的Hadoop集群版本对应,我的Hadoop版本是2.7.5的,所以要下在HBase的2.1.0版本。
地址:https://archive.apache.org/dist/hbase/
安装解压
和搭建其他集群一样,命令: tar -xzvf (安装包名称) -C (解压到的目录)
配置文件修改
hbase-env.sh添加以下内容:
1 export JAVA_ HOME=/export/ servers/jdk1.8.0_ 141/ 2 export HBASE_ MANAGES_ ZK=false
这是用来指定JDK和zookeeper有关设置
hbase- site.xml添加以下内容:
1 <configuration> 2 <!--HBase数据在HDFS中的存放的路径--> 3 <property> 4 <name>hbase.rootdir</name> 5 <value>hdfs://node01:8020/hbase</value> 6 </property> 7 <!--Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JM里面--> 8 <property> 9 <name>hbase.cluster.distributed</name> 10 <value>true</value> 11 </property> 12 <!-- ZooKeeper的地址--> 13 <property> 14 <name>hbase.zookeeper. quorum</name> 15 <value>node01,node02,node03</value> 16 </property> 17 <!-- ZooKeeper快照的存储位置--> 18 <property> 19 <name>hbase.zookeeper. property.dataDir</name> 20 <value>/export/servers/zookeeper-3.4.9/data</value> 21 </property> 22 <!--v2.i版本,在分布式情况下,设置为false --> 23 <property> 24 <name>hbase.unsafe.stream.capability.enforce</name> 25 <value>false</value> 26 </property> 27 28 </configuration>
配置环境变量
#配置Hbase环境变量 vim /etc/profile export HBASE_ HOME=/export/ servers/hbase-2.1.0 export PATH=$PATH: ${HBASE_ HOME }/bin: ${HBASE_ HOME }/ sbin #重载环境变量。 source /etc/profile
复制jar包到lib,这里的这个jar包是启动HBase时候必须的
cp $HBASE_ HOME /1ib/client-facing- thirdparty/htrace- core-3.1.0- incubating. jar $HBASE_ HOME/lib/
修改regionserver 文件(需要regionserver的主机名字)
vim regionservers
node1
node2
node3
分发安装包和配置文件
1 cd /export/ servers 2 scp -r hbase-2.1.0/ node2: $PWD 3 scp -r hbase-2.1.0/ node3: $PWD 4 scp -r /etc/profile node2: /etc 5 scp -r /etc/profile node3:/etc
注意事项
在启动HBase集群之前要保证三台虚拟机时间同步,和三台机子都要启动zookeeper,否则启动之后进程几秒之后会自动消失。
如果启动不成功,还可以去conf目录下的logs文件查看报错,根据报错来解决。