zoukankan      html  css  js  c++  java
  • hbase的安装与配置(三台集群分布式)

    =============================================================

    一  安装前准备

    =============================================================

    下载hbase-2.2.5的JAR包后发现,lib中自带的是hadoop2.8.5和zookeeper-3.4.10版本,
    下载hbase-2.3.0的JAR包后发现,lib中自带的是hadoop2.10和zookeeper-3.5.7版本,
    因此这几个版本肯定是比较好的,不过本人不打算用这个默认的
    hbase-2.2.5==>hadoop2.8.5和zookeeper-3.4.10
    hbase-2.3.0==>hadoop2.10和zookeeper-3.5.7

    本人的安装版本推荐:

    HBASE2.2.X+ <==> Hadoop3.1.x+

    hbase2.2.5 <==> Hadoop3.1.2


    1. 下载地址

    建议镜像地址: https://mirror.bit.edu.cn/apache/hbase/2.2.5/hbase-2.2.5-bin.tar.gz

    2. 规划3个集群节点:
    hosts主机都已经配置好映射,映射主机名分别为master,slave1,slave2,
    且已经进行ssh免密配置,确保端口互通,防火墙关闭

    =============================================================
    二   安装过程:

    =============================================================

    1.解压
    tar -zxvf hbase-2.2.5-bin.tar.gz -C ../

    2. 配置环境变量
    转到root用户,首先进入到 /etc/profile 目录,添加相应的配置信息:

    #set HBASE environment
    export HBASE_HOME=/opt/soft/hbase-2.2.5/
    export PATH=$PATH:$HBASE_HOME/bin

    3. 然后通过如下命令使得环境变量生效:

    source /etc/profile


    =============================================================
    三    配置过程:

    =============================================================

    cd conf

    1. vim hbase-env.sh
    hbase-env.sh添加内容如下

    注意:这里的JAVA_HOME请配置成你自己的:
    export JAVA_HOME=/opt/soft/jdk1.8.0_261
    export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    # export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
    export HBASE_MANAGES_ZK=false

    第一行指定jdk位置
    第二行指定额外的classpath元素
    第三行是关于jvm的可以不需要
    第四行,true表示使用hbase自带的zookeeper,false表示使用自己的zookeeper(推荐,趁此学一下zookeeper,学了hbase后面的storm跟spark也会去学,后面很多都要使用zookeeper,一劳永逸)。

    2. hbase-site.xml内容如下:

    <configuration>

    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    <description>是否是分布式的,当然</description>
    </property>
    <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
    </property>
    <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
    </property>


    <property>
    <name>hbase.master</name>
    <value>master:60000</value>
    <description>指定hbase的主节点与端口号</description>
    </property>
    <property>
    <name>hbase.master.maxclockskew</name>
    <value>180000</value>
    <description>时间同步允许的时间差</description>
    </property>
    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:9000/hbase</value>
    <description>hbase共享目录,持久化hbase数据,这个需要看你hadoop的核心文件里面配置的是不是master:9000不是的话得改成自己的hadoop里面写的,参照你的Hadoop的namenode的fs.defaultFS这个参数端口配置,我的hadoop的namenode是放在master上</description>
    </property>

    <property>
    <name>hbase.zookeeper.quorum</name>
    <value>master,slave1,slave2</value>
    <description>指定zookeeper,我的zookeeper集群就是在这三台机器的</description>
    </property>
    <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/soft/hbase-2.2.5/zkdata</value>
    <description>zookeeper配置信息快照的位置,目录会自己创建的</description>
    </property>
    </configuration>


    补充说明:
    hbase.rootdir:HBase的数据存储目录,由于HBase数据存储在HDFS上,所以要写HDFS的目录,注意路径端口要和Hadoop的fs.defaultFS端口一致。配置好后,HBase数据就会写入到这个目录中,且目录不需要手动创建,HBase启动的时候会自动创建。


    hbase.cluster.distributed:设置为true代表开启分布式。
    hbase.zookeeper.quorum:设置依赖的ZooKeeper节点,此处加入所有ZooKeeper集群即可。
    hbase.zookeeper.property.dataDir:设置ZooKeeper的配置、日志等数据存放目录。
    另外,还有一个属性hbase.tmp.dir是设置HBase临时文件存放目录,不设置的话,默认存放在/tmp目录,该目录重启就会清空。


    3. regionservers里面添加从节点机器名
    slave1
    slave2

    =============================================================

    四. 将按照配置好的hbase上传到其他机器

    =============================================================

    scp -r /opt/soft/hbase-2.2.5/ hadoop@slave1:/opt/soft/
    scp -r /opt/soft/hbase-2.2.5/ hadoop@slave2:/opt/soft/

    =============================================================
    五: 启动

    =============================================================


    1.
    cd ../bin 转到bin目录

    start-hbase.sh
    停止用start-hbase.sh


    2. 启动后jps查看是否新增了进程
    xxxx HMaster

    注:启动起来的前提需要启动hadoop和zookeeper,最后启动的话,那么master机器上会多出HMaster进程,slave1和slave2上多出了HRegionServer。

     


    3. Web端UI界面访问Master-status:
    浏览器访问HMaster所在节点的16010端口(http://master:16010)即可查看HBase集群的运行状态

     

    =============================================================

    六   可能出现的问题

    =============================================================


    出现问题启动不起来Hbase时

    1.需要关闭DFS安全模式

    手动关闭安全模式命令如下:

    hdfs dfsadmin -safemode leave
    2.测试HRegionServer上下线
    单独启动HRegionServer节点:

    启动集群中所有的regionserver
    ./hbase-daemons.sh start regionserver
    启动某个regionserver
    ./hbase-daemon.sh start regionserver
    3.如果关闭虚拟机后需要先启动

    (1)[root@hadoop01 ~]# start-dfs.sh
    (2)[root@hadoop01 ~]# zkServer.sh start
    (3)[root@hadoop01 ~]# start-hbase.sh
    查看jps是否存在即可。

  • 相关阅读:
    实习第一天
    使用epublib解析epub文件(章节内容、书籍菜单)
    jdk1.8以前不建议使用其自带的Base64来加解密
    java学习-AES加解密之AES-128-CBC算法
    java学习-sha1散列算法
    日、周、月活跃用户数,用户流失率
    java学习-java.lang.Math随机数生成
    AndroidStudio报错Software caused connection abort: recv failed
    java学习-java.lang一Number类
    jdk内置类javax.imageio.ImageIO支持的图片处理格式
  • 原文地址:https://www.cnblogs.com/sea520/p/13503209.html
Copyright © 2011-2022 走看看