hadoop之旅9-centerOS7 : hbase集群环境搭建

今天教你们如何在centerOS7上搭建hbase的集群环境,首先给你们介绍一下hbasejava

hbase是什么

HBase是创建在Hadoop文件系统之上的分布式面向列的数据库。它是一个开源项目,是横向扩展的。 HBase是一个数据模型,相似于谷歌的大表设计,能够提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。 它是Hadoop的生态系统,提供对数据的随机实时读/写访问,是Hadoop文件系统的一部分。 人们能够直接或经过HBase的存储HDFS数据。使用HBase在HDFS读取消费/随机访问数据。 HBase在Hadoop的文件系统之上,并提供了读写访问web

HBase 和 HDFS

HDFS HBase
HDFS是适于存储大容量文件的分布式文件系统 HBase是创建在HDFS之上的数据库。
HDFS不支持快速单独记录查找 HBase提供在较大的表快速查找
它提供了高延迟批量处理;没有批处理概念 它提供了数十亿条记录低延迟访问单个行记录(随机存取)。
它提供的数据只能顺序访问 HBase内部使用哈希表和提供随机接入,而且其存储索引,可将在HDFS文件中的数据进行快速查找。

hbase的数据模型

Row Key: 行键,Table的主键,Table中的记录按照Row Key排序数据库

Timestamp: 时间戳,每次数据操做对应的时间戳,能够看做是数据的version numberbash

Column Family:列簇,Table在水平方向有一个或者多个Column Family组成,一个Column Family中能够由任意多个Column组成,即Column Family支持动态扩展,无需预先定义Column的数量以及类型,全部Column均以二进制格式存储,用户须要自行进行类型转换。分布式

好了,说了这么多你们可能光看概念也是云里雾里,因此就直接带你们搭建环境,作一些简单的应用来体会hbase的用法了。oop

环境搭建

首先须要有hbase的软件包,能够自行下载,我给你们提供的是hbase-1.3.1版本,点击下载ui

其次把下载的软件放入centerOS7系统下的本身的目录下,个人目录是在/home/mmcc下。而后进入到该目录解压文件spa

cd /home/mmcc
tar -zxvf hbase-1.3.1-bin.tar.gz
复制代码

而后开始配置hbase-env.sh文件,进入hbase根目录设计

vi /conf/hbase-env.sh  //编辑环境变量配置脚本

export JAVA_HOME=/home/mmcc/jdk1.8  //配置java环境变量,把井号去掉换上本身的jdk路径
export HBASE_MANAGES_ZK=true  //表示使用自带的zookeeper
export HBASE_PID_DIR=/home/mmcc/hbase-1.3.1/hbase_tmp  //修改pid文件的保存路径
复制代码

其次再配置hbse-site.xml文件3d

vi /conf/hbase-site.xml

<property>
   <name>hbase.rootdir</name>                 //设置hbase在hdfs上根目录
   <value>hdfs://master:9000/hbase</value>
</property>
<property>
   <name>hbase.cluster.distributed</name>   //是否开启集群
   <value>true</value>
</property>
<property>
   <name>hbase.zookeeper.quorum</name>     // 设置zookeeper集群节点
   <value>master,slave1,slave2</value> 
</property>
<property>
   <name>hbase.tmp.dir</name>                //设置临时文件目录
   <value>/home/mmcc/hbase-1.3.1/data/tmp</value>
</property> 
<property>                  //设置web管理界面端口
   <name>hbase.master.info.port</name>
   <value>60010</value>
</property>
复制代码

设置zookeeper集群节点时,若是zookeeper单独设置了端口 则加上master:port ,默认是master:2181,默认的能够不写

而后配置hbase的集群节点服务

vi /conf/regionservers

slave1
slave2
复制代码

把zookeeper的服务节点都配置进去

到这一步master节点的hbase的环境已经配置好了,可是这只是单机版,咱们须要作到一个集群,能够经过如下方式把hbase直接复制到不一样的节点机上

scp -r /home/mmcc/hbase-1.3.1 slave1/slave1节点的ip:/home/mmcc  
scp -r /home/mmcc/hbase-1.3.1 slave2/slave2节点的ip:/home/mmcc
复制代码

/hbase-1.3.1目录下的全部文件复制到slave1节点上的/home/mmcc目录下,因为咱是经过克隆的方式建立的虚拟机,因此其实文件目录都是同样的

而后将hbase的bin目录配置到环境变量里,每一个节点都配置好

vi /etc/profile

HBASE_HOME=/home/mmcc/hbase-1.3.1
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$HBASE_HOME/bin:$PATH:.

source /etc/profile  //使环境变量生效

复制代码

启动集群

start-hbase.sh  //前提是已经启动了hadoop集群服务
复制代码

内部会启动一个自带的zookeeper集群,同时启动master和节点服务.启动以后经过jps查看一下当前的服务

能够发现,集群已经启动成功了。

如今咱是经过自带的zookeeper做为协调服务的,因此启动步骤以下

  1. 启动hadoop集群 start-all.sh
  2. 启动hbase集群 start-hbase.sh

中止步骤

  1. 中止hbase集群 stop-hbase.sh
  2. 中止hadoop集群 stop-all.sh

自定义zookeeper

首先在配置hbase-env.sh文件时,把export HBASE_MANAGES_ZK=false设置为false,表示使用自定义的zookeeper的集群。同时若是本身单独配置了zookeeper集群的端口,不是默认的2181。则在hbase-site.xml中配置zookeeper集群时须要带上端口

<property>
   <name>hbase.zookeeper.quorum</name>     // 设置zookeeper集群节点
   <value>master:port,slave1:port,slave2:port</value> 
</property>
复制代码

使用自定义的zookeeper的集群启动顺序

  1. 启动hadoop集群
  2. 启动zk集群(zookeeper)
  3. 启动hbase集群

中止步骤

  1. 中止hbase集群
  2. 中止zk集群(zookeeper)
  3. 中止hadoop集群

关于zk集群的搭建和使用在后面章节会讲到

相关文章
相关标签/搜索