Hbase2.1.5集群环境搭建

序言

Hbase跟基于Hadoop和Zookeeper. 同时Hbase的版本跟Hadoop的版本密切相关.一定要下载对应的Hadoop版本.此文章只介绍如何搭建Hbase的环境.

启动hbase前先启动Hadoop和Zookeeper.

Hbase的官方网址:http://hbase.apache.org/book.html#quickstart,其中Hadoop与Hbase的对应关系如下:

 

整体介绍

Hbase的集群拓扑图

å¨è¿éæå¥å¾çæè¿°

 

Client

包含访问Hbase的接口,并维护cache来加快对Hbase的访问,比如region的位置信息。

HMaster

       Client访问HBase上的数据并不需要master参与(寻址访问zookeeper和region server,数据读写访问region server),master仅仅维护table和region的元数据信息(table的元数据信息保存在zookeeper上),负载很低。(只能保证集群的region的个数进行负载,如果region的大小不同,不能根据数据的大小进行负载)。

  • 管理用户对Table表的增、删、改、查操作;
  • 管理HRegion服务器的负载均衡,调整HRegion分布;
  • 在HRegion分裂后,负责新HRegion的分配;
  • 在HRegion服务器停机后,负责失效HRegion服务器上的HRegion迁移。

RegionServer

      HRegionServer存取一个子表时,会创建一个HRegion对象,然后对表的每个列族创建一个Store实例,每个Store都会有一个MemStore和0个或多个StoreFile与之对应,每个StoreFile都会对应一个HFile, HFile就是实际的存储文件。因此,一个HRegion有多少个列族就有多少个Store。

一个HRegionServer会有多个HRegion和一个HLog。

  • 维护master分配给他的region,处理对这些region的io请求
  • Regionserver负责切分在运行过程中变得过大的region
  • Region server 服务节点,从 hdfs 上加载 N 个 region 到内存服务。

Region

Region是HBase数据存储和管理的基本单位.Region为物理存储单元,在 hdfs 上保存。

 

Zookeeper

       首先HMaster和RegionServer都需要和Zookeeper交互,因为RegionServer上线了还需要交互,之后Zookeeper知道了告诉HMaster,而下线或断开了Zookeeper知道了也告诉HMaster;同时HMaster还管理RegionServer,HMaster还会在HDFS上写Region数据。

  • 通过选举,保证任何时候,集群中只有一个活着的HMaster,HMaster与RegionServers 启动时会向ZooKeeper注册
  • 存贮所有Region的寻址入口
  • 实时监控Region server的上线和下线信息。并实时通知给HMaster
  • 存储HBase的schema和table元数据
  • Zookeeper的引入使得HMaster不再是单点故障。

 

 

环境搭建

[cuiyaonan2000@163.com@slave2 ~]$  wget http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.1.5/hbase-2.1.5-bin.tar.gz


[cuiyaonan2000@163.com@slave2 ~]$ tar -zxvf hbase-2.1.5-bin.tar.gz 

[cuiyaonan2000@163.com@slave2 ~]$ cd hbase-2.1.5/conf/


修改hbase-env.sh的配置文件内容如下

 

#这里路是jdk的路径,不要用系统自带的
export JAVA_HOME=/usr/java/jdk1.8.0_211


#不适用hbase自带的zookeeper
export HBASE_MANAGES_ZK=false

 

修改hbase-site.xml内容如下:

<!--
    可以不配置,如果要配置,需要和zookeeper配置文件zoo.cfg中的dataDir指定的路径相同
    zoo.cfg中dataDir=/var/zookeeper
    那么:
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/var/zookeeper</value>
    </property>
-->

   
<!--指定hbase的数据在hdfs上存放的位置
HBase持久化
重启操作系统后HBase中数据全无,你可以不做任何修改的情况下,创建一张表,写一条数据进行,然后将机器重启,重启后你再进入HBase的shell中使用 list 命令查看当前所存在的表,一个都没有了。是不是很杯具?没有关系你可以在hbase/conf/hbase-default.xml中设置hbase.rootdir的值,来设置文件的保存位置指定一个文件夹,例如:<value>file:///you/hbase-data/path</value>,你建立的HBase中的表和数据就直接写到了你的磁盘上,如图所示:
同样你也可以指定你的分布式文件系统HDFS的路径例如:hdfs://NAMENODE_SERVER:PORT/HBASE_ROOTDIR,这样就写到了你的分布式文件系统上了。
-->
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://jed/user/hbase</value>
</property>
    

<!--指定hbase集群为分布式集群-->
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>

    

<!--指定zookeeper集群-->
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>192.168.2.108:2181,192.168.2.109:2181,192.168.2.110:2181</value>
</property>


<!-- 放置hbase运行过程中的临时文件,这个临时文件设置还是挺有用,因为当报错的时候需要把历史文件删除,还有就是指定位置可以是磁盘挂载 -->
  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>


<!-- 在分布式情况下, 一定设置为false -->
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>

 

 修改regionservers配置文件,加入RegionServer节点列表----表示如下的服务器都会启动RegionServer服务

## 默认有一行localhost,删除
192.168.2.108
192.168.2.109
192.168.2.110

新建backup-masters文件,并做修改.就是hmaster的备份

# 添加备用hbase-master
192.168.2.109

最重要一步,要把 hadoop 的 hdfs-site.xml 和 core-site.xml 放到 /data/hbase-2.1.5/conf 下

把hbase安装目录分发给其他节点

[cuiyaonan2000@163.com@slave2 ~]$  scp -r hbase-2.1.5 hadoop02:`pwd`
[cuiyaonan2000@163.com@slave2 ~]$  scp -r hbase-2.1.5 hadoop03:`pwd`
[cuiyaonan2000@163.com@slave2 ~]$  scp -r hbase-2.1.5 hadoop04:`pwd`

 在全部节点的环境变量配置文件中加入HBASE_HOME----也可以放置到/etc/profile中

vi ~/.bashrc 
#HBase
export HBASE_HOME=/data/hbase-2.1.5/
export PATH=$PATH:$HBASE_HOME/bin

HBase 集群对于时间的同步要求的比 HDFS 严格,所以,集群启动之前千万记住要进行 时间同步,要求相差不要超过 30s

 

启动HBase

保证 ZooKeeper 集群和 HDFS 集群启动正常的情况下启动 HBase 集群 启动命令:start-hbase.sh在哪台节点上执行此命令,哪个节点就是主节点.

如果哪一台没有启动成功也可以通过命令来手动启动(最好不要这样)

hbase-daemon.sh start master
hbase-daemon.sh start regionserver

检验是否启动成功

  1. 通过jps查看相应的进程。如果是主服务器则需要有进程:HMaster  如果是客户端服务器需要有进程:HRegionServer 。
  2. 访问网页http//ip:16010/master-status

使用命令hbase shell 验证----次验证为必要条件cuiyaonan2000@163.com

[root@cuiyaonan2000@163.com bin] hbase shell


#登录hbase 创建表testtable ,列族columnfamily
#然后使用list 来查看该hbase中的所有表

截图如下:

创建成功后就可以在Hbase的管理界面上看到创建的表和创建的列族。管理界面只能看到表明和所属的列族,列和值都看不到

java操作Hbase功能大全

https://blog.icocoro.me/2017/11/02/1711-zhishidian-hbase03/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuiyaonan2000

给包烟抽吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值