大数据环境搭建之Hbase集群搭建

作者:Neshoir

   HBase是基于Google BigTable论文设计的具有高可靠性,高性能,可伸缩的开源分布式数据库,其具有松散表结构、高效查询、高吞吐低延迟、多版本等特点,可应用于丰富的场景中,如用户画像、实时报表、股票K线、时空轨迹数据等。HBase底层存储是基于HDFS之上,所以使用HBase之前先搭建好Hadoop HDFS的环境,同时也需要搭建zookeeper集群服务。本文主要介绍HBase集群环境的搭建。

机器环境及软件包准备
  • 三台Ubuntu 14.0.4系统的机器(master.comnode1.comnode2.com)。

  • 各机器的JDK 1.8环境配置,配置/etc/profile文件。

  • 各机器固定IP配置,以及hosts文件中的IP与主机名的映射。

  • 各机器关闭防火墙,service iptables stop 。

  • 节点机器之间配置ssh免密登录。

  • 集群的时间要保持一致性,配置NTP。

  • 设置系统的ulimit和nproc【建议】。

    #hbase是数据库,同一时间使用很多的文件句柄,大多数Linux系统默认是1024,是不能满足的。如果不设置大一些,可能会出现下面的异常:
    java.io.IOException...(Too many open files)
    org.apache.hadoop.hdfs.DFSClient: Exception increateBlockOutputStream java.io.EOFException
    #在hbase用户下/etc/security/limits.conf 文件中设置如下
    supermap  - nofile  32768
    supermap soft/hard nproc 32000 	#supermap代表hadoop和hbase的运行用户
    #在hbase用户下/etc/pam.d/common-session文件中设置如下
    session required  pam_limits.so
    #注销系统再登录即可生效
    

    注:准备阶段可以参考超图大数据环境搭建之基础环境搭建的博客。

Hadoop集群配置
  • 在系统环境文件/etc/profile里配置HADOOP_HOME的环境,以及source。其值如下示例:

    JAVA_HOME=/home/supermap/jdk1.8.0_171
    JRE_HOME=${JAVA_HOME}/jre
    HADOOP_HOME=/home/supermap/hadoop
    PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    export JAVA_HOME JRE_HOME PATH HADOOP_HOME
    

    注:参考超图大数据环境搭建之Hadoop集群搭建的博客,hbase与hadoop存在版本兼容,hbase 1.3.X支持hadoop 2.7.X,本系列博客即采用的该版本。

zookeeper集群和hbase集群角色图
机器master.com机器node1.com机器node2.com机器
IP192.168.31.137192.168.31.138192.168.31.139
角色zookeeperzookeeperzookeeper
角色HMasterregionserverregionserver
ZooKeeper集群配置

   zookeeper是一个高度可靠的分布式协调服务框架。需要至少三个节点部署。

  • 下载 zookeeper-3.4.13.tar.gz ,并解压到每台机器。

  • 进入zookeeper/conf目录,复制zoo_sample.cfg并重命名为zoo.cfg,添加如下内容:

    dataDir=/home/supermap/zookeeper/data	#数据存储目录
    dataLogDir=/home/supermap/zookeeper/log		#日志存储目录
    server.1=master.com:2888:3888
    server.2=node1.com:2888:3888
    server.3=node2.com:2888:3888
    
  • 创建上一步中的data和log文件夹。

  • 进入data目录,创建myid文件,填写上一步中server.X中的X值,每个机器填的值不一样,比如master.com机器中填:

    1
    
  • 以上步骤,三个机器同步配置,注意myid的值。

  • 每个节点机器启动zk以及验证

    bin/zkServer.sh start	#启动
    bin/zkServer.sh status	#检查状态 
    

HBase集群配置

  • 下载 hbase-1.3.2-bin.tar.gz ,并解压,然后进入hbase/conf目录。

  • 编辑regionservers文件,添加节点如下:

    node1.com
    node2.com
    
  • 编辑hbase­-env.sh文件,配置环境值如下:

     export JAVA_HOME=/home/supermap/jdk1.8.0_171
     export HBASE_CLASSPATH=/home/supermap/hbase/lib
     export HBASE_HOME=/home/supermap/hbase
     export HADOOP_HOME=/home/supermap/hadoop
     export HBASE_LOG_DIR=/home/supermap/hbase/logs
    export HBASE_MANAGES_ZK=false	#启用外部zookeeper服务
    
  • 配置hbase-site.xml参数,值如下:

    <configuration>
        <property>
            <name>hbase.rootdir</name>
            <value>hdfs://192.168.31.137:9000/hbase</value>
        </property>
        <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>
        <property>
            <name>hbase.master.info.port</name>
            <value>60000</value>
        </property>
        <property>
            <name>hbase.regionserver.handler.count</name>
            <value>100</value>
        </property>
        <property>
            <name>hbase.master</name>
            <value>192.168.31.137</value>
        </property>
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>192.168.31.137:2181,192.168.31.138:2181,192.168.31.139:2181</value>
        </property>
        <property>
           <name>hbase.coprocessor.user.region.classes</name>
           <value>org.locationtech.geomesa.hbase.coprocessor.GeoMesaCoprocessor</value>
        </property>
    </configuration>
    
  • geomesa依赖库拷贝, 进入hbase/lib查看是否有geomesa-hbase-distributed-runtime_2.11-2.2.0.jar库,如果没有,下载 geomesa-hbase ,并将该jar拷贝到lib目录下。

  • 每个节点机器同步上面的步骤配置即可。

  • hbase集群启动及检查结果如图。

    bin/start-hbase.sh	#启动hbase之前,需先启动各节点的zookeeper,以及启动hdfs服务
    #ui地址	http://master.com:60000/master-status
    

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值