fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3898991.html

  Hbase 是Apache Hadoop的数据库,能够对大数据提供随机、实时的读写访问功能,具有开源、分布式、可扩展及面向列存储的特点。由于Hbase架构是基于其他文件存储系统的,因此在分布式模式下安装Hadoop是必须的。本文参考官方文档,安装部署一个完全分布式的Hbase集群。@_@

一、基本环境

  操作系统:Ubuntu14.04 Server-x64

  JDK版本:jdk1.8.0_11

  Hadoop:hadoop-2.2.0

  Zookeeper:zookeeper-3.4.6

  Hbase  :hbase-0.98.4-hadoop2 (stable)(版本与Hadoop、Zookeeper相对应)

  计算机台数:3

主机名 IP地址 JDK_x64 Hadoop-2.2.0集群 Zookeeper-3.4.6集群 Hbase-0.98.4集群
master 192.168.145.1 1.8.0_11 NameNode,DataNode QuorumPeerMain  HMaser,HRegionServer 
slave1 192.168.145.2 1.8.0_11 DataNode QuorumPeerMain   HMaster(backup-masters),HRegionServer
slave2 192.168.145.3 1.8.0_11 DataNode QuorumPeerMain   HRegionServer

二、预安装配置

  安装JDK

  安装SSH及设置SSH免密码登录,设置master可以免密码登陆slave1和slave2

  配置主机-IP地址映射 /etc/hosts 及 /etc/hostname

  搭建ZooKeeper集群,请参见《分布式Apache ZooKeeper-3.4.6集群安装

  搭建Hadoop集群,可以参考《Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群

三、Master节点配置信息

1、$HBASE_HOME/conf/hbase-env.sh

  配置Hbase运行环境,包括Java安装路径及其他环境变量

  JAVA_HOME         :JAVA安装目录
  HADOOP_CONF_DIR   :HADOOP配置目录
  HBASE_HEAPSIZE    :设置堆内存为4G而不是默认的1G
  HBASE_MANAGES_ZK  :Tell HBase whether it should manage its own instance of Zookeeper or not.
          To point HBase at an existing ZooKeeper cluster, one that is not managed by HBase, set HBASE_MANAGES_ZK in conf/hbase-env.sh to false
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_11
export HADOOP_CONF_DIR=/home/fesh/hadoop-2.2.0/etc/hadoop
export HBASE_HEAPSIZE=
export HBASE_MANAGES_ZK=false

2、$HBASE_HOME/conf/hbase-site.xml

   hbase.rootdir          :Hbase数据存储目录(HDFS中目录)

   hbase.cluster.distributed        :指定Hbase是否运行在分布式模式

   hbase.zookeeper.property.dataDir :Zookeeper写数据目录(与ZooKeeper集群上配置相一致)

     hbase.zookeeper.quorun           :指定Hbase在每个节点上开启和管理一个Zookeeper instance,即指定ZooKeeper集群位置
    hbase.master           :指定Hbase的master的位置
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
 <property>
  <name>hbase.zookeeper.quorum</name>
  <value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/fesh/data/zookeeper</value>
</property>
<property>
  <name>hbase.master</name>
  <value>hdfs://master:60000</value>
</property>
</configuration>

3、$HBASE_HOME/conf/regionservers

  regionservers文件列出了所有运行Hbase RegionServer CHRegion Server的机器。此文件的配置和Hadoop的slaves文件十分类似,每一行指定一台机器。当Hbase的时候,会将此文件中列出的所有机器启动;同样,当Hbase关闭的时候,也会同时自动读取文件并将所有机器关闭。

  删除localhost,添加

master
slave1
slave2

4、$HBASE_HOME/conf/backup-masters

  新建此文件,用于设置备份Master (a backup master),这里设置为slave1节点

slave1

四、分发文件

分发到slave1:

scp -r hbase-0.98.-hadoop2 slave1:~/

分发到slave2:

scp -r hbase-0.98.-hadoop2 slave2:~/

五、其他配置(每个节点上都需要配置)

1、设置ulimit 和 nproc

  HBase是数据库,会在同一时间使用很多的文件句柄。大多数linux系统使用的默认值1024是不能满足的,会导致FAQ: Why do I see "java.io.IOException...(Too many open files)" in my logs?异常。所以你需要修改你的最大文件句柄限制。可以设置到10k. 你还需要修改 hbase 用户的 nproc,如果过低会造成OutOfMemoryError异常。

/etc/security/limits.conf  Ubuntu上的ulimit设置,操作系统用户fesh(用户名)打开文件(nofile)的soft and hard limits数目设置为32768, 用户fesh的processes数目设置为32000

fesh  -       nofile
fesh - nproc

另外,在 /etc/pam.d/common-session 加上这一行,否则在 /etc/security/limits.conf上的配置不会生效

session required  pam_limits.so

还有注销再登录,这些配置才能生效!

2、配置dfs.datanode.max.xcievers

   一个 Hadoop HDFS Datanode 有一个同时处理文件的上限. 这个参数叫 xcievers (Hadoop的作者把这个单词拼错了). 在你加载之前,先确认下你有没有配置这个文件conf/hdfs-site.xml里面的xceivers参数,至少要有4096:

  配置文件$HADOOP_HOME/etc/hadoop/hdfs-site.xml,添加

   <property>
<name>dfs.datanode.max.xcievers</name>
<value></value>
</property>

  如果没有这一项配置,你可能会遇到奇怪的失败。你会在Datanode的日志中看到xcievers exceeded,但是运行起来会报 missing blocks错误。

  对于HDFS修改配置要记得重启.

3、配置系统环境变量

  /etc/profile ,添加

#Set HBASE_HOME ENVIRONMENT
export HBASE_HOME=/home/fesh/hbase-0.98.4-hadoop2
export PATH=$PATH:$HBASE_HOME

六、集群启动及查看

1、启动

  Hbase的启动顺序为:  HDFS -> ZooKeeper -> Hbase

master节点:

在$HADOOP_HOME目录下启动Hadoop集群

sbin/start-all.sh

每个节点:

在$ZOOKEEPER_HOME目录下启动ZooKeeper集群

bin/zkServer.sh start

master节点:

在$HBASE_HOME目录下启动Hbase集群

bin/start-hbase.sh

2、命令查看

master节点:

slave1节点:

slave2节点:

3、UI查看

  60010端口查看Master

  60030端口查看RegionServer

master节点

这里slave1和slave2没有可视化界面,所以不使用UI查看。

七、停止

停止顺序:Hbase  》  ZooKeeper  》 Hadoop

参考:

1、http://hbase.apache.org/book/book.html

2、http://hbase.apache.org/book/quickstart.html

分布式Hbase-0.98.4在Hadoop-2.2.0集群上的部署的更多相关文章

  1. Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)

    声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.服务器环境 主机名 IP 用户名 密码 安装目录 master188 192.168.29.188 hadoop hadoop /home/ha ...

  2. Apache Hadoop集群离线安装部署(三)——Hbase安装

    Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS.YARN.MR)安装:http://www.cnblogs.com/pojishou/p/6366542.html Apac ...

  3. 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)

    1)集群规划:主机名        IP      安装的软件                     运行的进程master    192.168.199.130   jdk.hadoop      ...

  4. 在Hadoop集群上的HBase配置

    之前,我们已经在hadoop集群上配置了Hive,今天我们来配置下Hbase. 一.准备工作 1.ZooKeeper下载地址:http://archive.apache.org/dist/zookee ...

  5. 用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控

    写在前面 相关随笔: Hadoop-1.0.4集群搭建笔记 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试 用python + hado ...

  6. Apache Hadoop集群离线安装部署(二)——Spark-2.1.0 on Yarn安装

    Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS.YARN.MR)安装:http://www.cnblogs.com/pojishou/p/6366542.html Apac ...

  7. hbase集群安装与部署

    1.相关环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 hbase1.2.4 本篇文章仅涉及hbase集群的搭建,关于hadoop与zookeeper的相关部 ...

  8. HBase集群的安装部署

    HBase的安装是是建立在hadoop和zookeeper集群之上的 安装的步骤跟伪分布式差不多,只是修改了一些配置文件 解压缩.重命名.设置环境变量 把hbase-0.94.2-security.t ...

  9. hadoop本地运行与集群运行

    开发环境: windows10+伪分布式(虚拟机组成的集群)+IDEA(不需要装插件) 介绍: 本地开发,本地debug,不需要启动集群,不需要在集群启动hdfs yarn 需要准备什么: 1/配置w ...

随机推荐

  1. mm/vmalloc.c

    /* *  linux/mm/vmalloc.c * *  Copyright (C) 1993  Linus Torvalds */ #include <asm/system.h>#in ...

  2. LVM逻辑卷管理

    一.LVM简介 LVM(Logic Volume Manager)逻辑卷管理,简单理解就是将一块或多块硬盘的分区在逻辑上集合,当一块大硬盘来使用. 其特点是: 1.可以实现在线动态扩展,也可以缩减 2 ...

  3. 关于java 中文乱码问题 自己的一点解决方案

    早上做导出的时候,url拼接参数中文出现了乱码.查了半天.终于中午搞定了. 在web.xml中加了转码过滤器,tomcat的server.xml中也加入URIEncoding="UTF-8& ...

  4. linux之各个文件夹作用

    /bin 二进制可执行命令  /dev 设备特殊文件  /etc 系统管理和配置文件  /etc/rc.d 启动的配置文件和脚本  /home 用户主目录的基点,比如用户user的主目录就是/home ...

  5. Python中reactor,factory,protocol

    最为简单的情况下,除了了解清reactor的简单使用,你还要了解Protocol和Factory.它们最终都会由reactor的侦听建立和run来统一调度起来. 建立服务器的第一个要解决的问题就是服务 ...

  6. Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题

    标签:scrollview   android   滑动   嵌套 scrollview 嵌套recyclerview 时,recyclerview不显示,这就需要我们自己计算recyclerview ...

  7. jquery选择器之属性选择器

    [attribute]   匹配指定属性名的所有元素 [attribute=value] 匹配给定的属性名是某个特定值的属性 [attribute!=value] 匹配给定的属性名不是某个特定值的属性 ...

  8. html5-websocket初探

    HTML5规范在传统的web交互基础上为我们带来了众多的新特性,随着web技术被广泛用于web APP的开发,这些新特性得以推广和使用,而websocket作为一种新的web通信技术具有巨大意义. 什 ...

  9. java消息推送与接收

    package com.zl; import java.net.ServerSocket; import java.net.Socket; import org.apache.commons.mvc. ...

  10. Node调试之道-----JSHint

    Node调试之道-----JSHint Node的优势我就不再乱吹捧了,它让javascript统一web的前后台成为了可能.但是对于新手来说,server端的JS代码可能不像client端的代码那么 ...