一、前期环境

  • 安装概览
IP Host Name Software Node
192.168.23.128 ae01 JDK 1.7, Zookeeper-3.4.5 HMaster
192.168.23.129 ae02 JDK 1.7, Zookeeper-3.4.5    HRegionServer
192.168.23.130 ae03 JDK 1.7, Zookeeper-3.4.5 HRegionServer   
    若使用虚拟机安装,可以安装samba, smbfs方便对于文件的控制。
  • 系统环境: ubuntu-12.04.2-server-amd64
  • 安装目录: /usr/local/ae
  • JDK 安装目录: export JAVA_HOME=/usr/local/ae/jdk1.7.0_51
  • Zookeeper 安装目录 export ZOOKEEPER_HOME=/usr/local/ae/zookeeper-3.4.5
  • HBase版本: hbase-0.94.8

二、配置服务器间SSH无密码登录

参考 http://www.cnblogs.com/tannerBG/p/4271831.html

三、安装HBase

  • 修改host文件,添加3台服务器的host

    user@ae01:/usr/local/ae$ sudo vim /etc/hosts
    127.0.0.1         localhost
    192.168.23.128 ae01
    192.168.23.129 ae02
    192.168.23.129 ae03
  • 解压HBase
    将hbase-0.94.8.tar.gz 复制到 /usr/local/ae,解压

    user@ae01:/usr/local/ae$ sudo tar -zxvf hbase-0.94.8.tar.gz
  • 配置HBase

    修改$HBASE_HOME/conf/hbase-env.sh 添加JAVA_HOME 并配置单独Zookeeper

    export JAVA_HOME=/usr/local/ae/jdk1.7.0_51
    export HBASE_MANAGES_ZK=false

    一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeep集群。这个集群会随着Hbase的启动而启动。当然,你也可以自己管理一个zookeeper集群,但需要配置Hbase。你需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK 来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper.

    修改$HBASE_HOME/conf/hbase-site.xml 加入以下文件到<configuration>节点

    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://ae01:9000/hbase</value>
    <description>The directory shared byRegionServers.</description>
    </property> <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    <description>The mode the clusterwill be in. Possible values are
    false: standalone and pseudo-distributedsetups with managed Zookeeper
    true: fully-distributed with unmanagedZookeeper Quorum (see hbase-env.sh)
    </description>
    </property> <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
    <description>Property fromZooKeeper's config zoo.cfg.
    The port at which the clients willconnect.
    </description>
    </property> <property>
    <name>hbase.zookeeper.quorum</name>
    <value>ae01,ae02,ae03</value>
    <description>Comma separated listof servers in the ZooKeeper Quorum.
    For example,"host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
    By default this is set to localhost forlocal and pseudo-distributed modes
    of operation. For a fully-distributedsetup, this should be set to a full
    list of ZooKeeper quorum servers. IfHBASE_MANAGES_ZK is set in hbase-env.sh
    this is the list of servers which we willstart/stop ZooKeeper on.
    </description>
    </property> <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/ae/zookeeper-3.4.5/conf</value>
    <description>Property fromZooKeeper's config zoo.cfg.
    The directory where the snapshot isstored.
    </description>
    </property>

    hbase.rootdir: 为region server的共享目录,用来持久化Hbase。URL需要是'完全正确'的,还要包含文件系统的schema。例如,要表示hdfs中的'/hbase'目录,namenode 运行在ae01的9000端口。则需要设置为hdfs://ae01:9000/hbase。默认情况下Hbase是写到/tmp的。不改这个配置,数据会在重启的时候丢失。默认: file:///tmp/hbase-${user.name}/hbase
    hbase.zookeeper.property.clientPort:ZooKeeper的zoo.conf中的配置。 客户端连接的端口 默认: 2181
    hbase.cluster.distributed: HBase的运行模式。false是单机模式,true是分布式模式。若为false,HBase和Zookeeper会运行在同一个JVM里面。默认: false
    hbase.zookeeper.quorum: Zookeeper集群的地址列表,用逗号分割。例如:"ae01,ae02,ae03".默认是localhost,是给伪分布式用的。要修改才能在完全分布式的情况下使用。如果在hbase-env.sh设置了HBASE_MANAGES_ZK,这些ZooKeeper节点就会和HBase一起启动。默认: localhost
    hbase.zookeeper.property.dataDir:ZooKeeper的zoo.conf中的配置路径。

    配置$HBASE_HOME/conf/regionservers

    ae02
    ae03

    这个文件把RegionServer的节点列了下来。在这个例子里面我们让ae02, ae03都运行RegionServer,除了第一个节点ae01,它要运行HBase Master 和HDFS NameNode

四、启动HBase

  • 启动Zookeeper 集群

    user@ae01:/usr/local/ae/zookeeper-3.4.5/bin$ sudo zkServer.sh start
    user@ae02:/usr/local/ae/zookeeper-3.4.5/bin$ sudo zkServer.sh start
    user@ae03:/usr/local/ae/zookeeper-3.4.5/bin$ sudo zkServer.sh start
  • 启动HBase
    user@ae01:/usr/local/ae$ start-hbase.sh
    starting master, logging to /usr/local/ae/hbase-0.94./logs/hbase-user-master-ae01.out
    ae02: starting regionserver, logging to /usr/local/ae/hbase-0.94./bin/../logs/hbase-user-regionserver-ae02.out
    ae03: starting regionserver, logging to /usr/local/ae/hbase-0.94./bin/../logs/hbase-user-regionserver-ae03.out
    user@ae01:/usr/local/ae$
  • 验证HBase
    ae01
    user@ae01:/usr/local/ae$ jps
    JobTracker
    SecondaryNameNode
    HMaster
    TaskTracker
    NameNode
    QuorumPeerMain
    Jps
    DataNode
    user@ae01:/usr/local/ae$

    ae02,ae03

    user@ae02:/usr/local/ae$ jps
    HRegionServer
    TaskTracker
    QuorumPeerMain
    DataNode
    Jps
    user@ae02:/usr/local/ae$
    user@ae03:/usr/local/ae$ jps
    DataNode
    QuorumPeerMain
    HRegionServer
    TaskTracker
    Jps
    user@ae03:/usr/local/ae$

四、文档参考

  • http://abloz.com/hbase/book.html#important_configurations

HBase 分布式环境搭建的更多相关文章

  1. Hadoop-04-HBase全然分布式环境搭建

    Hbase分布式具体安装步骤 Hadoop全然分布式环境已经搭建完毕(參见01_Hadoop全然分布式环境搭建). 注意:Hbase和Hadoop的版本号必须相应! 不然会出现各种问题! 这里选用的是 ...

  2. 攻城狮在路上(陆)-- hadoop分布式环境搭建(HA模式)

    一.环境说明: 操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 ...

  3. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  4. Hadoop-2.4.1完全分布式环境搭建

      Hadoop-2.4.1完全分布式环境搭建   Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...

  5. Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程

    一.修改hosts文件 在主节点,就是第一台主机的命令行下; vim /etc/hosts 我的是三台云主机: 在原文件的基础上加上; ip1 master worker0 namenode ip2 ...

  6. Hadoop学习笔记1:伪分布式环境搭建

    在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下: 1.CentOS 6.7下安装JDK , 地址: http://blog.csdn.net/yule ...

  7. 【转】Hadoop HDFS分布式环境搭建

    原文地址  http://blog.sina.com.cn/s/blog_7060fb5a0101cson.html Hadoop HDFS分布式环境搭建 最近选择给大家介绍Hadoop HDFS系统 ...

  8. Hadoop2.5.0伪分布式环境搭建

    本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...

  9. 【Hadoop】伪分布式环境搭建、验证

    Hadoop伪分布式环境搭建: 自动部署脚本: #!/bin/bash set -eux export APP_PATH=/opt/applications export APP_NAME=Ares ...

随机推荐

  1. 在Eclipse中创建Maven多模块工程的例子

    .配置eclipse的maven .在Eclipse里面New -> Maven Project -> 选择“Create a simple project” Group Id: com. ...

  2. XMPP框架下微信项目总结(1)环境配置

    xmpp介绍 xmpp基于模块开发的 无须自己写请求 (登陆,注册,获取好友列表,添加/删除好友等) ------>简介 ------------------------- ----->工 ...

  3. db2 bind on luw

    https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.apdv.embed.doc/doc/c000556 ...

  4. Clr Via C#读书笔记---CLR寄宿和应用程序域

    #1 CLR寄宿: 开发CLR时,Microsoft实际是将他实现成包含在一个dll中的COM服务器.Microsoft为CLR定义了一个标准的COM接口,并为该接口和COM服务器分配了GUID.安装 ...

  5. MVC缓存01,使用控制器缓存或数据层缓存

    对一些浏览频次多.数据量大的数据,使用缓存会比较好,而对一些浏览频次低,或内容因用户不同的,不太适合使用缓存.   在控制器层面,MVC为我们提供了OutputCacheAttribute特性:在数据 ...

  6. Jquery.Datatables 基本设置的中文注解

    $(document).ready(function() { $('#example').dataTable({ "sScrollX": "100%", //表 ...

  7. Oracle数据库备份与还原操作具体步骤

    Oracle数据库导出操作 导入导出都要进行目录创建与授权. 在pl/sql里面编写也可以 select * from dba_directories(这个是查看创建的目录) drop directo ...

  8. HDU4288 Coder(线段树)

    注意添加到集合中的数是升序的,先将数据读入,再离散化. sum[rt][i]表示此节点的区域位置对5取模为i的数的和,删除一个数则右边的数循环左移一位,添加一个数则右边数循环右移一位,相当于循环左移4 ...

  9. .NET NLog 详解(二)

    Git是个很好的源码管理系统,你可以瞬间切换为任何历史版本.为了更好的解析NLog这个组件,我们将时钟倒拨回2004年.(注意:NLog v0.9 has been released 是在2005-0 ...

  10. golang 索引

    入门的基础路线 a Tour of GoEffective GoGo By Example 以上的三部分通读算是入门. 4个重要的组成部分 1. 基础知识2. 并发特性3. 异常处理4. 常用开源项目 ...