HBase的概述和安装部署
一、hbase概述
1.hbase是hadoop数据库,是一个分布式、可扩展的大数据存储。
hbase是用于对大数据进行随机、实时读写访问的非关系型数据库,它的目标托管非常大的表——数十亿行n百万列。
正如bigtable利用google文件系统提供的分布式数据存储一样,hbase在hadoop的hdfs之上提供类似bigtable的功能。
2.hbase架构
zookeeper => zk中存储了hmaster的元数据信息
hmaster => 主节点
hregionserver => 区域服务器
hlog => 预写入日志
hregion => 区域,可以理解成表
store => 存储单元
memstore => 内存的一块区域,负责写入数据的缓存
blockcache => 内存的一块区域,负责读取数据的缓存(图中未显示)
storefile => 写入磁盘的一个文件,hfile是物理上的存储单元
3.hbase的作用
hbase通过hregionserver连接了hdfs的客户端,然后在存数据时将生成的hfile文件存储到hdfs中,之后把本地的hfile文件删除只保留元数据信息。
hbase就是建立在hdfs之上的数据库。
二、hbase集群的安装部署
1.准备工作
hbase基于hdfs集群和zookeeper集群,所以要先安装hdfs和zk;
安装完成后去hbase官网下载对应安装包,本人使用的是1.3.0版本,上传到集群,解压,重命名文件为hbase;
hbase官网:hbase.apache.org
2.修改配置文件
进入conf目录下修改hbase-env.sh和hbase-site.xml文件
(1)vi hbase-env.sh
java_home=/root/hd/jdk1.8.0_141
hbase_manages_zk=false
(2)vi hbase-site.xml
将下面的配置信息加入到<configuration></configuration>之中
<!-- 设置namenode所在位置 通过rootdir设置 也就是设置hdfs中存放的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hd1-1:9000/hbase</value>
</property>
<!-- 是否开启集群 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<!-- zookeeper集群的位置 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hd1-1:2181,hd1-2:2181,hd1-3:2181</value>
</property>
<!-- hbase的元数据信息存储在zookeeper的位置 -->
<property>
<name>hbase.zookeeper.property.datadir</name>
<value>/root/hd/zookeeper-3.4.10/zkdata</value>
</property>
3.进入regionservers文件(vi regionservers)添加所有节点
hd1-1
hd1-2
hd1-3
4.解决版本依赖不一致问题
进入hbase/lib目录中,查看hadoop和zookeeper的jar包的版本是否和自己安装的版本一致,不同则删除jar包
rm -rf hadoop-*
rm -rf zookeeper-*
然后将与自己版本一致的hadoop和zk依赖包导入到该目录,jar包如下:
通过sftp导入到linux集群。
5.建立配置信息软连接
进入hbase/conf目录下,添加配置(根据自己的路径修改就好)
ln -s /root/hd/hadoop/etc/hadoop/core-site.xml /root/hd/hbase/conf/
ln -s /root/hd/hadoop/etc/hadoop/hdfs-site.xml /root/hd/hbase/conf/
也可以将这两个配置复制到hbase/conf目录下;
6.将配置好的hbase文件夹发送到其他集群机器
scp -r /root/hd/hbase/ hd1-2:/root/hd/
7.启动hbase集群
(1)先启动hdfs和zookeeper
start-dfs.sh、zkserver.sh start
(2)启动hbase(没有配置环境变量,要在hbase目录下启动)
bin/hbase-daemon.sh start master 启动主节点
bin/hbase-daemon.sh start regionserver 启动从节点
8.访问与测试
(1)可以通过你的主机点的ip地址加端口号访问ui界面
192.168.50.183:16010
(2)启动shell命令行进行测试
bin/hbase shell
list
这样,hbase就配置完成了~~
推荐阅读