• 分布式Hbase-0.98.4在Hadoop-2.2.0集群上的部署


      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=4096
    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.4-hadoop2 slave1:~/

    分发到slave2:

    scp -r hbase-0.98.4-hadoop2 slave2:~/

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

    1、设置ulimitnproc

      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  32768
    fesh  -       nproc   32000

    另外,在 /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>4096</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

  • 相关阅读:
    Blazor server VS Blazor WebAssembly
    DataTable 差集Except、交集Intersect、并集Union
    Power BI Anomaly Detection
    Power BI智能叙述
    Configure the Secure Store Service in SharePoint Server
    小批量excel数据导入oracle
    python批量写入oracle
    centos7安装java,配置的环境变量不生效 -bash: java: command not found
    nebula docker三件套组件版本问题
    shell删除指定行
  • 原文地址:https://www.cnblogs.com/fesh/p/3898991.html
Copyright © 2020-2023  润新知