关闭

如何搭建高可用HBase

标签: hbase
74人阅读 评论(0) 收藏 举报
分类:

1、先决条件

确保Hadoop集群已搭建完成,并运行良好。

准备好HBase的安装包。

2、HBase简介

        HBase是一个分布式的、面向列的开源数据库,就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。它是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase有如下使用场景:

  • 大数据量 (100s TB级数据) 且有快速随机访问的需求。
  • 容量的优雅扩展。
  • 大数据的驱使,动态扩展系统容量的必须的。例如:webPage DB。
  • 业务场景简单,不需要关系数据库中很多特性(例如交叉列、交叉表,事务,连接等等)。
  • 优化方面:合理设计rowkey。因为hbase的查询用rowkey是最高效的,也几乎的唯一生产环境可行的方式。所以把你的查询请求转换为查询rowkey的请求。
3、HBase集群搭建


        将HBase的RegionServer部署在3个DN节点上,HBase的HMaster服务部署在NNA和NNS节点,部署2个HMaster保证集群的高可用性,防止单点问题。下面我们开始配置HBase的相关配置,使用独立的ZK,未使用HBase自带的ZK。

#配置hbase-env.sh文件

export JAVA_HOME=/usr/java/jdk1.7

export HBASE_MANAGES_ZK=true

#配置hbase-site.xml文件

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>dn1:2181,dn2:2181,dn3:2181</value>
    <description>The directory shared by RegionServers.
    </description>
  </property>
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/hadoop/data/zk</value>
    <description>Property from ZooKeeper config zoo.cfg.
      The directory
      where the snapshot is stored.
    </description>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://cluster1/hbase</value>
    <description>The directory shared by RegionServers.
    </description>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    <description>The mode the cluster will be in. Possible values are
      false: standalone and pseudo-distributed setups with managed
      Zookeeper
      true: fully-distributed with unmanaged Zookeeper Quorum (see
      hbase-env.sh)
    </description>
  </property>
</configuration>

#设置regionservers

  • dn1
  • dn2
  • dn3

4、启动集群

$ start-hbase.sh(在NNA节点)

$ hbase-daemon.sh start master(在NNS节点)

注:需要注意的时,在启动集群之前确保各个节点之间的时间是同步的,或者时间差不能太大,若时间差太大,会导致HBase启动失败。

在各个节点输入jps命令查看相关启动进程,各个节点分布的进程如下表所示:

节点 进程
NNA HMaster
NNS HMaster
DN1 RegionServer
DN2 RegionServer
DN3 RegionServer
5、在web端查看集群启动状态

先启动的是NNA的HMaster,所提NNA节点HMaster对外提供服务,截图如下所示:


6、shell操作

$ hbase shell

> list

>scan't'

截图如下:



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:409次
    • 积分:60
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档