环境准备
zookeeper集群
hadoop集群,hadoop的搭建参考
集群组成
hostname | hadoop cluster | ip | hbase cluster |
master | namenode & zookeeper | 192.168.137.117 | master |
slave1 | datanode | 192.168.137.117 | |
slave2 | datanode & zookeeper | 192.168.137.118 | regionserver |
slave3 | datanode & zookeeper | 192.168.137.119 | regionserver |
3. 下载hbase-1.0.0包,
4. 解压,配置环境变量
cd /data0tar zxvf hbase-1.0.0-bin.tar.gzvi ~/.bashrcexport HBASE_HOME=/data0/hbase-1.0.0export PATH=$HBASE_HOME/bin:$PATHsource ~/.bashrc
5. hbase集群配置
vi hbase-env.shexport JAVA_HOME=/usr/java/jdk1.7.0_71export HBASE_MANAGES_ZK=false #使用独立的zookeeper集群vi hbase-site.xmlvi regionserversslave2slave3 hbase.rootdir hdfs://master:9000/hbase hbase.cluster.distributed true hbase.master master:60000 hbase.zookeeper.quorum master,slave2,slave3 hbase.zookeeper.property.clientPort 2181 Property from ZooKeeper's config zoo.cfg. The port at which the clients will connect.
6. 将配置好的文件scp到slave2,slave3节点的$HBASE_HOME/conf下
7. 在master节点启动hbase
cd $HBASE_HOME/bin./start-hbase.sh
遇到的问题,由于集群机器的时间不统一,导致regionserver启动失败。
2015-09-18 19:52:12,465 FATAL [regionserver/slave3/192.168.137.119:16020] regionserver.HRegionServer: Master rejected startup because clock is out of syncorg.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server slave3,16020,1442577129946 has been rejected; Reported time is too far out of sync with master. Time difference of 28820322ms > max allowed of 30000ms at org.apache.hadoop.hbase.master.ServerManager.checkClockSkew(ServerManager.java:357) at org.apache.hadoop.hbase.master.ServerManager.regionServerStartup(ServerManager.java:250) at org.apache.hadoop.hbase.master.MasterRpcServices.regionServerStartup(MasterRpcServices.java:298) at org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$2.callBlockingMethod(RegionServerStatusProtos.java:7910) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107) at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130) at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107) at java.lang.Thread.run(Thread.java:745) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106) at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:95) at org.apache.hadoop.hbase.protobuf.ProtobufUtil.getRemoteException(ProtobufUtil.java:313) at org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:2134) at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:826) at java.lang.Thread.run(Thread.java:745)
解决办法是手工修改系统的硬件时间
date -s 时间clock -w
查看hbase集群运行状态
[hadoop@slave3 logs]$ hbase shellSLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/data0/hbase-1.0.0/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/data0/hadoop-2.6.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]2015-09-18 17:21:12,198 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableHBase Shell; enter 'help' for list of supported commands.Type "exit " to leave the HBase ShellVersion 1.0.0, r6c98bff7b719efdb16f71606f3b7d8229445eb81, Sat Feb 14 19:49:22 PST 2015hbase(main):001:0> listTABLE table01 1 row(s) in 0.1690 seconds=> ["table01"]hbase(main):002:0> scan 'table01'ROW COLUMN+CELL 0 row(s) in 0.1130 secondshbase(main):003:0>