zoukankan      html  css  js  c++  java
  • HBase集群搭建

    写在开头:在部署hbase集群之前,先把hadoop集群部署好。然后把zookeeper集群部署好。然后部署hbase,注意hbase相关的配置文件。

    1.上传hbase安装包

    2.解压

    3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了)

    //注意:要把hadoop的hdfs-site.xml和core-site.xml放到hbase/conf下
    这是由于在配置<name>hbase.rootdir</name>时使用了抽象的路径,需要解析。
    //另一种办法为:在$HBASE_HOME/conf/hbase-site.xml文件中进行配置,相对麻烦。

    3.1修改hbase-env.sh

    export JAVA_HOME=/usr/java/jdk1.7.0_55
    //告诉hbase使用外部的zk,集群模式 
    export HBASE_MANAGES_ZK=false

    3.2修改hbase-site.xml

    <configuration>
        <!-- 指定hbase在HDFS上存储的路径 -->
        <!-- ns1表示nameservice的抽象-->
           <property>
            <name>hbase.rootdir</name>
            <value>hdfs://ns1/hbase</value>
           </property>
        <!-- 指定hbase是分布式的 -->
           <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
           </property>
        <!-- 指定zk的地址,多个用“,”分割 -->
           <property>
            <name>hbase.zookeeper.quorum</name>
            <value>hadoop04:2181,hadoop05:2181,hadoop06:2181</value>
           </property>
    </configuration>

    3.3修改regionservers,配置Hbase小弟位置

    hadoop03
    hadoop04
    hadoop05
    hadoop06

    3.4拷贝hbase到其他节点---拷贝前,最好把“/docs”文档删除

    scp -r /hadoop/hbase-0.96.2-hadoop2/ hadoop02:/hadoop/
    scp -r /hadoop/hbase-0.96.2-hadoop2/ hadoop03:/hadoop/
    scp -r /hadoop/hbase-0.96.2-hadoop2/ hadoop04:/hadoop/
    scp -r /hadoop/hbase-0.96.2-hadoop2/ hadoop05:/hadoop/
    scp -r /hadoop/hbase-0.96.2-hadoop2/ hadoop06:/hadoop/

    4.将配置好的HBase拷贝到每一个节点并同步时间 

    //根据错误日志,可得到slave2maste机器时间差太多,导致启动失败,解决方法:同步集群的时间。 
    2015-07-17 09:28:19,392 INFO  [regionserver60020] regionserver.HRegionServer: STOPPED: Unhandled: org.apache.hadoop.hbase.ClockOutOfSyncException: Server slave2,60020,1405560498057 has been rejected; Reported time is too far out of sync with master.  Time difference of 28804194ms > max allowed of 30000ms
            at org.apache.hadoop.hbase.master.ServerManager.checkClockSkew(ServerManager.java:314)
            at org.apache.hadoop.hbase.master.ServerManager.regionServerStartup(ServerManager.java:215)
            at org.apache.hadoop.hbase.master.HMaster.regionServerStartup(HMaster.java:1292)
            at org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$2.callBlockingMethod(RegionServerStatusProtos.java:5085)
            at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2185)
            at org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1889) 

    5.启动所有的hbase

    //1.启动zk
    ./zkServer.sh start
    //2.启动hdfs集群
    start-dfs.sh
    //3.启动hbase,在主节点上运行:
    start-hbase.sh

    6.通过浏览器访问hbase管理页面

    192.168.8.101:60010

    7.为保证集群的可靠性,要在hadoop02节点上启动standby的HMaster

    hbase-daemon.sh start master

    同步集群时间(使用NTP)

    1.修改选定的服务器(任意机器均可)的时区本地时间

    //设置时区命令: tzselect ,然后一步步的选择
    #date -s '2014-11-21 12:48:30' +'%T' #2014-11-21 12:48:30为将要设定的时间,%T代表是24小时制

    2. 将修改后的时间写入硬件时钟,确保重启有效

    #hwclock -w

    3. 配置NTP服务器(默认安装)

    vim /etc/ntp.conf
    //在后面加上:
    server 127.127.1.0
    Fudge 127.127.1.0 stratum 10
    
    //关闭防火墙:
    #service iptables stop
    
    //重新启动服务:
    #service ntpd stop
    #service ntpd start

    4.其他机器同步
    等待大概五分钟,再到其他机上同步该机器时间(先确保时区一样,否则同步以后时间也是有时区差的)

    ntpdate 服务器IP地址(第一步选定的主机IP)
    //Date查看时间是否同步完成

    5.根据需要,这里可以让分机器定时自动同步时间
     5.1.crontab -e 编辑内容: * */12 * * * /usr/sbin/ntpdate 服务器IP(每12个小时更新一次)
     5.2.保存退出即可,可以到/var/spool/mail/下查看记录

  • 相关阅读:
    Zookeeper的ZAB协议
    Netty从入门到放弃,从放弃在到入门
    Java多线程-锁的原理
    ContextLoaderListener的说明
    Jdk和Cglib 的区别
    zookeeper核心概念
    https
    [CS Academy] Infinity Array
    [JZOJ 5669] Permutaition
    [CF 613 Div.1E] Puzzle Lover
  • 原文地址:https://www.cnblogs.com/skyl/p/4854426.html
Copyright © 2011-2022 走看看