您的位置:首页 > 其它

HBase集群搭建

2015-10-04 12:22 183 查看
写在开头:在部署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拷贝到每一个节点并同步时间。

//根据错误日志,可得到slave2和maste机器时间差太多,导致启动失败,解决方法:同步集群的时间。


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/下查看记录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: