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

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

hbase是什么

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

HBase 和 HDFS

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

hbase的数据模型

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

Timestamp: 时间戳,每次数据操作对应的时间戳,可以看作是数据的version number

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

好了,说了这么多大家可能光看概念也是云里雾里,所以就直接带大家搭建环境,做一些简单的应用来体会hbase的用法了。

环境搭建

首先需要有hbase的软件包,可以自行下载,我给大家提供的是hbase-1.3.1版本,点击下载

其次把下载的软件放入centerOS7系统下的自己的目录下,我的目录是在/home/mmcc下。然后进入到该目录解压文件

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文件

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集群的搭建和使用在后面章节会讲到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值