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/下查看记录

posted @ 2015-10-04 12:22  skyl夜  阅读(336)  评论(0编辑  收藏