• hbase分布式集群搭建


    原文:http://www.cnblogs.com/ityouknow/p/7343996.html

     

    hbase和hadoop一样也分为单机版、伪分布式版和完全分布式集群版本,这篇文件介绍如何搭建完全分布式集群环境搭建。

    hbase依赖于hadoop环境,搭建habase之前首先需要搭建好hadoop的完全集群环境,因此看这篇文章之前需要先看我的上一篇文章:hadoop分布式集群搭建。本文中没有按照独立的zookeeper,使用了hbase自带的zookeeper。

    环境准备

    安装hbase

    首先在hadoop-master安装配置好之后,在复制到从节点

    wget http://mirror.bit.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
    #解压
    tar -xzvf hbase-1.3.1-bin.tar.gz  -C /usr/local/
    #重命名 
    mv hbase-1.3.1 hbase

    配置环境变量vim /etc/profile

    #内容
    export HBASE_HOME=/usr/local/hbase
    export PATH=$HBASE_HOME/bin:$PATH
    #使立即生效
    source /etc/profile

    修改系统变量ulimit

    ulimit -n 10240

    配置文件

    hbase 相关的配置主要包括hbase-env.sh、hbase-site.xml、regionservers三个文件,都在 /usr/local/hbase/conf目录下面:

    配置hbase-env.sh

    vim hbase-env.sh
    #内容
    export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
    export HBASE_CLASSPATH=/usr/local/hbase/conf
    # 此配置信息,设置由hbase自己管理zookeeper,不需要单独的zookeeper。
    export HBASE_MANAGES_ZK=true
    export HBASE_HOME=/usr/local/hbase
    export HADOOP_HOME=/usr/local/hadoop
    #Hbase日志目录
    export HBASE_LOG_DIR=/usr/local/hbase/logs

    配置 hbase-site.xml

    <configuration>
        <property>
            <name>hbase.rootdir</name>
            <value>hdfs://hadoop-master:9000/hbase</value>
        </property>
        <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>
        <property>
            <name>hbase.master</name>
            <value>hadoop-master:60000</value>
        </property>
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>hadoop-master,hadoop-slave1,hadoop-slave2,hadoop-slave3</value>
        </property>
    </configuration>

    配置regionservers

    vim /usr/local/hbase/conf/regionservers
    hadoop-master
    hadoop-slave1
    hadoop-slave2
    hadoop-slave3

    复制hbase到从节点中

    scp -r /usr/local/hbase hadoop-slave1:/usr/local/
    scp -r /usr/local/hbase hadoop-slave2:/usr/local/
    scp -r /usr/local/hbase hadoop-slave3:/usr/local/

    启动hbase

    启动仅在master节点上执行即可

    ~/hbase/bin/start-hbase.sh

    启动后,master上进程和slave进程列表

    master中的信息

    [hadoop@master ~]$ jps
    6225 Jps
    2897 SecondaryNameNode   # hadoop进程
    2710 NameNode            # hadoop master进程
    3035 ResourceManager     # hadoop进程
    5471 HMaster             # hbase master进程
    2543 HQuorumPeer         # zookeeper进程

    salve中的信息

    [hadoop@slave1 ~]$ jps
    4689 Jps
    2533 HQuorumPeer          # zookeeper进程
    2589 DataNode             # hadoop slave进程
    4143 HRegionServer        # hbase slave进程

    因为hbase依赖于hadoop,因此启动和停止都是需要按照顺序进行

    如果安装了独立的zookeeper

    启动顺序: hadoop-> zookeeper-> hbase
    停止顺序:hbase-> zookeeper-> hadoop

    使用自带的zookeeper

    启动顺序: hadoop-> hbase
    停止顺序:hbase-> hadoop

    重启hbase

    ~/hbase/bin/stop-hbase.sh
    ~/hadoop/sbin/stop-all.sh
    ~/hadoop/sbin/start-all.sh
    ~/hbase/bin/start-hbase.sh

    错误处理

    在搭建的过程中,报了这么一个错误,错误信息如下:

    Unhandled: org.apache.hadoop.hbase.ClockOutOfSyncException: Server hadoop-slave3,16020,1500526355333
    
    Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.ClockOutOfSyncException):   
     org.apache.hadoop.hbase.ClockOutOfSyncException:       
     Server hadoop-slave3,16020,1500526355333 has been rejected; Reported time is too far out of sync with  
     master.  Time difference of 77348ms > max allowed of 30000ms

    看大概的意思是主节点连接从节点超时了。可能有两方面的原因,第一、linux服务器时间不一致导致,第二、由于网络其它原因导致连接的时间超长。

    解决方案:

    第一个原因,修改各服务器时间保持一致。最终的解决方案是:设置一个定时使用ntp从某个服务器定时同步时间

    查看定时 
    crontab -l
    编辑
    crontab -e 
    # 内容
    0 */1 * * *  /usr/sbin/ntpdate 192.168.0.12;/sbin/hwclock -w

    手动执行

    #从 0.12同步时间
    /usr/sbin/ntpdate 192.168.0.12

    第二个原因,可以修改hbase默认的最大链接时间长一些。

    HBase配置文件hbase-siter.xml中添加连接时长的属性

    <property>
        <name>hbase.master.maxclockskew</name>
        <value>120000</value>
     </property>
  • 相关阅读:
    不高级不能发帖的WPS论坛
    打不开盖子的酸奶
    无意中发现的一个好设计:不浸水的香皂盒
    几件小事
    解决ios微信页面回退不刷新
    require.js
    前端遇到的坑
    gulp详细入门教程
    js 获取当前日期
    模仿微信朋友圈 图片浏览 h5 html5 js
  • 原文地址:https://www.cnblogs.com/shihaiming/p/8489220.html
Copyright © 2020-2023  润新知