• 基于HA的HBase集群搭建


    HA+Zookeeper搭建:
    hadoop完全分布式搭建: https://www.cnblogs.com/Hephaestus/p/12213719.html
    hadoop高可用搭建: https://www.cnblogs.com/Hephaestus/p/12420370.html
    Zookeeper集群搭建: https://www.cnblogs.com/Hephaestus/p/12421265.html

    1. 写在前面

    1)版本兼容

    hadoop2.9.2 + Zookeeper3.5.7 + HBase2.2.3
    版本兼容官方文档: http://hbase.apache.org/book.html#configuration
    下载地址: https://hbase.apache.org/downloads.html

    2) 集群规划

    namenode datanode journalnode Zookeeper HBase
    hadoop100 是(nn2) HMaster
    hadoop101 是(nn1) 备份HMaster
    HRegionServer
    hadoop102 HRegionServer
    hadoop103 HRegionServer

    2. 解压安装

    • 解压安装: tar -zxvf hbase-2.2.3-bin.tar.gz -C /soft/module
    • 为方便起见 重命名: mv hbase-2.2.3 hbase
    • 配置环境变量(可不配置)
      • 修改系统环境变量 sudo vim /etc/profile
    # HBase 环境变量配置
    export HBASE_HOME=/soft/module/hbase  
    export PATH=$PATH:$HBASE_HOME/bin
    

    使配置生效: sudo source /etc/profile

    3. 修改配置文件

    • 1)修改hbase脚本文件: vim conf/hbase-env.sh
    export JAVA_HOME=/soft/module/jdk1.8.0_161
    export HBASE_MANAGES_ZK=false        # line126
    
    • 2)修改hbase配置文件: vim conf/hbase-site.xml
            <!-- 每个regionServer的共享目录,用来持久化Hbase,默认情况下在/tmp/hbase下面 -->
            <property>
                    <name>hbase.rootdir</name>
                    <value>hdfs://mycluster/HBase</value>
                    <description>
                            一定要把hadoop中的core-site.xml和hdf-site.xml复制到hbase的conf目录下,才能成功解析该集群名称;如果是hadoop单namenode集群,配置写成hdfs://master:9000/hbase (master是namenode主机名)
                    </description>
            </property>
    
            <!-- hbase集群模式,false表示hbase的单机,true表示是分布式模式 -->
            <property>
                    <name>hbase.cluster.distributed</name>
                    <value>true</value>
            </property>
    
            <!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 -->
            <!-- hbase master节点的端口 -->
            <property>
                    <name>hbase.master.port</name>
                    <value>16000</value>
            </property>
    
            <!-- hbase依赖的zk地址 -->
            <property>
                    <name>hbase.zookeeper.quorum</name>
                    <value>hadoop101,hadoop102,hadoop103</value>
            </property>
    
            <property>
                    <name>hbase.zookeeper.property.dataDir</name>
                    <value>/soft/module/zookeeper-3.5.7/zkData</value>
            </property>
    
            <!--出错后加的这玩意,不懂是啥 | 在分布式情况下, 一定设置为false-->
            <property>
                    <name>hbase.unsafe.stream.capability.enforce</name>
                    <value>false</value>
            </property>
    
    • 3) 修改 regionservers: vim regionservers

    RegionServer是HBase集群运行在每个工作节点上的服务。它是整个HBase系统的关键所在,一方面它维护了Region的状态,提供了对于Region的管理和服务;另一方面,它与Master交互,上传Region的负载信息上传,参与Master的分布式协调管理

    hadoop101
    hadoop102
    hadoop103
    
    • 4) 软连接 hadoop 配置文件到 HBase:
      ln -s /soft/module/hadoop-2.9.2/etc/hadoop/core-site.xml /soft/module/hbase/conf/core-site.xml
      ln -s /soft/module/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /soft/module/hbase/conf/hdfs-site.xml

    • 5) 分发hbase文件 xsync.sh hbase

    4. 启动服务

    • 1) 先保证 Zookeeper 集群的正常部署,并启动 在每个节点上执行: bin/zkServer.sh start
    • 2) Hadoop 集群的正常部署并启动 对应节点启动:start-dfs.sh /soft/module/hadoop-2.9.2/sbin/start-yarn.sh
    • 3) hbase启动
      • 单节点启动:
        在hadoop101: bin/hbase-daemon.sh start master
        在hadoop101: bin/hbase-daemon.sh start regionserver
      • 集群启动
        启动: bin/start-hbase.sh
        停止: bin/stop-hbase.sh

    附个错误:

    java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of 'hbase.procedure.store.wal.use.hsync' to set the desired level of robustness and ensure the config value of 'hbase.wal.dir' points to a FileSystem mount that can provide it.

    hbase-site.xml增加配置

    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
    

    2)启动时报错

    java.lang.NoClassDefFoundError: org/apache/htrace/SamplerBuilder
    java.lang.RuntimeException: Failed construction of Master:
    class org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMasterorg.apache.htrace.SamplerBuilder
    原因:jar包缺失
    解决方法:把libclient-facing-thirdparty包中的htrace-core-3.1.0-incubating.jar复制一个到lib包下即可


    参考链接: https://blog.csdn.net/qq_35488412/article/details/78623518

    人生之事岂能尽如人意,生活如戏,哭笑皆由人,悲喜自己定
  • 相关阅读:
    leetcode 刷题日志 2018-03-26
    WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
    sublime wrong
    SSM框架使用-wrong
    C++设计实现算法时易犯错误
    CodeBlocks wrong
    leetcode 刷题日志 2018-3-28
    CountDownLatch
    类加载器和双亲委派
    GC的一个面试题
  • 原文地址:https://www.cnblogs.com/Hephaestus/p/12442553.html
Copyright © 2020-2023  润新知