高可用Hadoop平台-HBase集群搭建

1.概述

  今天补充一篇HBase集群的搭建,这个是高可用系列遗漏的一篇博客,今天抽时间补上,今天给大家介绍的主要内容目录如下所示:

  • 基础软件的准备
  • HBase介绍
  • HBase集群搭建
  • 单点问题验证
  • 截图预览

  那么,接下来我们开始今天的HBase集群搭建学习。

2.基础软件的准备

  由于HBase的数据是存放在HDFS上的,所以我们在使用HBase时,确保Hadoop集群已搭建完成,并运行良好。若是为搭建Hadoop集群,请参考我写的《配置高可用的Hadoop平台》来完成Hadoop平台的搭建。另外,我们还需要准备好HBase的安装包,这里我所使用的HBase-1.0.1,Hadoop版本使用的是2.6.0,基础软件下载地址如下所示:

  HBase安装包  《下载地址

  在准备好基础软件后,我们来介绍一下HBase的相关背景。

3.HBase介绍

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

  接下来我们来看看HBase的使用场景,HBase有如下使用场景:

  •  大数据量 (100s TB级数据) 且有快速随机访问的需求。
  •  例如淘宝的交易历史记录。数据量巨大无容置疑,面向普通用户的请求必然要即时响应。
  •  容量的优雅扩展。
  •  大数据的驱使,动态扩展系统容量的必须的。例如:webPage DB。
  •  业务场景简单,不需要关系数据库中很多特性(例如交叉列、交叉表,事务,连接等等)。
  •  优化方面:合理设计rowkey。因为hbase的查询用rowkey是最高效的,也几乎的唯一生产环境可行的方式。所以把你的查询请求转换为查询rowkey的请求吧。

4.HBase集群搭建

  在搭建HBase集群时,既然HBase拥有高可用特性,那么我们在搭建的时候要充分利用这个特性,下面给大家一个HBase的集群搭建架构图,如下图所示:

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

  • hbase-env.sh
# The java implementation to use.  Java 1.7+ required.
export JAVA_HOME=/usr/java/jdk1.7

# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
  • 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

5.单点问题验证

  在配置完成集群后,我们开始启动集群,需要注意的时,在启动集群之前确保各个节点之间的时间是同步的,或者时间差不能太大,若时间差太大,会导致HBase启动失败。下面我们在NNA节点输入启动命令,命令内容如下所示:

[hadoop@nna ~]$ start-hbase.sh

  然后,我们在NNS节点上在启动一个HMaster进程,启动命令如下所示:

[hadoop@nns ~]$ hbase-daemon.sh start master

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

节点 进程
NNA HMaster
NNS HMaster
DN1 RegionServer
DN2 RegionServer
DN3 RegionServer

  截图如下所示:

  HBase的Web管理界面,默认端口是16010,这里我先启动的是NNA的HMaster,所提NNA节点HMaster对外提供服务,截图如下所示:

  下面我kill掉NNA节点的HMaster进程,命令如下所示:

[hadoop@nna ~]$ kill -9 2542

  然后,我们在查看相应的服务,由于我们使用了ZK,它会选择一个主服务出来,即NNS节点对外提供HMaster服务,截图如下所示:

  通过验证,HBase的高可用性正常,避免存在单点问题。

6.截图预览

  下面给出HBase数据库的截图预览,如下图所示:

7.总结

  这里需要注意的是,在搭建HBase集群的时候需要保证Hadoop平台运行正常,各个节点的时间差不能相差太大,最后时间能够同步。否则会导
致HBase的启动失败。另外,如果在启动HBase集群时,提示不能解析HDFS路径,这里将Hadoop的core-site.xml和hdfs-
site.xml文件复制到HBase的conf文件目录下即可。

8.结束语

  这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

时间: 2024-11-28 22:59:54

高可用Hadoop平台-HBase集群搭建的相关文章

高可用Hadoop平台-集成Hive HAProxy

1.概述 这篇博客是接着<高可用Hadoop平台>系列讲,本篇博客是为后面用 Hive 来做数据统计做准备的,介绍如何在 Hadoop HA 平台下集成高可用的 Hive 工具,下面我打算分以下流程来赘述: 环境准备 集成并配置 Hive 工具 使用 Java API 开发 Hive 代码 下面开始进行环境准备. 2.环境准备 Hive版本:<Hive-0.14> HAProxy版本:<HAProxy-1.5.11> 注:前提是 Hadoop 的集群已经搭建完成,若还没

高可用Hadoop平台-实战尾声篇

1.概述 今天这篇博客就是<高可用Hadoop平台>的尾声篇了,从搭建安装到入门运行 Hadoop 版的 HelloWorld(WordCount 可以称的上是 Hadoop 版的 HelloWorld ),在到开发中需要用到的各个套件以及对套件的安装使用,在到 Hadoop 的实战,一路走来我们对在Hadoop平台下开发的基本流程应该都熟悉了.今天我们来完成在高可用Hadoop平台开发的最后一步,导出数据. 2.导出数据目的 首先,我来说明下为什么要导出数据,导出数据的目的是为了干嘛? 我们

高可用Hadoop平台-Flume NG实战图解篇

1.概述 今天补充一篇关于Flume的博客,前面在讲解高可用的Hadoop平台的时候遗漏了这篇,本篇博客为大家讲述以下内容: Flume NG简述 单点Flume NG搭建.运行 高可用Flume NG搭建 Failover测试 截图预览 下面开始今天的博客介绍. 2.Flume NG简述 Flume NG是一个分布式,高可用,可靠的系统,它能将不同的海量数据收集,移动并存储到一个数据存储系统中.轻量,配置简单,适用于各种日志收集,并支持Failover和负载均衡.并且它拥有非常丰富的组件.Fl

高可用Hadoop平台-探索

1.概述 上篇<高可用Hadoop平台-启航>博客已经让我们初步了解了Hadoop平台:接下来,我们对Hadoop做进一步的探索,一步一步的揭开Hadoop的神秘面纱.下面,我们开始赘述今天的探索之路. 2.探索 在探索之前,我们来看一下Hadoop解决了什么问题,Hadoop就是解决了大数据(大到单台服务器无法进行存储,单台服务器无法在限定的时间内进行处理)的可靠存储和处理. HDFS:在由普通或廉价的服务器(或PC)组成的集群上提供高可用的文件存储,通过将块保存多个副本的办法解决服务器或硬

高可用Hadoop平台-启航

1.概述 在上篇博客中,我们搭建了<配置高可用Hadoop平台>, 接下来我们就可以驾着Hadoop这艘巨轮在大数据的海洋中遨游了.工欲善其事,必先利其器.是的,没错:我们开发需要有开发工具(IDE):本篇文章, 我打算讲解如何搭建和使用开发环境,以及编写和讲解WordCount这个例子,给即将在Hadoop的海洋驰骋的童鞋入个门.上次,我在<网站日志统计案例分析与实现>中说会将源码放到Github,后来,我考虑了下,决定将<高可用的Hadoop平台>做一个系列,后面基

利用Docker和阿里云容器服务部署高可用Ghost博客集群

简介 Ghost是一个流行的开源博客平台(Open source blogging platform),基于 Node.js 构建,博客内容默认采用 Markdown 语法书写,给用户提供一种更加纯粹的内容写作与发布平台. Ghost的部署和运维需要一定的Web开发基础,利用Docker技术可以大大简化Ghost的部署和更新.Docker Hub上面也提供了Ghost官方镜像 使用Docker镜像,不懂得Node.Js的同学也可以分分钟在本地或阿里云容器服务上搭建起一个单节点的Ghost博客,但

高可用Hadoop平台-实战

1.概述 今天继续<高可用的Hadoop平台>系列,今天开始进行小规模的实战下,前面的准备工作完成后,基本用于统计数据的平台都拥有了,关于导出统计结果的文章留到后面赘述.今天要和大家分享的案例是一个基于电商网站的用户行为分析,这里分析的指标包含以下指标: 统计每日PV 每日注册用户 每日IP 跳出用户 其他指标可以参考上述4个指标进行拓展,下面我们开始今天的分析之旅. 2.流程 首先,在开发之前我们需要注意哪些问题?我们不能盲目的按照自己的意愿去开发项目,这样到头来得不到产品的认可,我们的工作

Hadoop 三台主机 集群搭建 详解(测试)

Hadoop 三台主机 集群搭建 详解 学习更多,请访问系列文章: 1. VMware Redhat网络配置 2. Hadoop 三台主机 集群搭建 详解 3. Windows 下配置 Eclipse 连接 Hadoop 开发环境 部署环境: OS:Redhat 5.5 Enterprise JDK:jdk1.6.0_32 Hadoop:Hadoop-0.20.2 VMWare:7.0 节点安排及网络拓扑: 节点类型 节点IP 节点hostname master节点 192.168.40.5 m

hadoop伪分布式集群搭建与安装(ubuntu系统)

1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip;  2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链接成功了: 3:修改主机的名称vi /etc/hostname和域名和主机映射对应的关系 vi /etc/hosts,改过之后即生效,自己可以ping一下,我这里ip对应master,比如ping master之后发现可以ping通即可: (centos操作系统修改主机名命令:vi /etc/sy