1. Zookeeper3.x安装
Zookeeper下载地址:
http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
1.1. 下载zookeeper,解压缩到/usr/local目录
[root@localhost65 download]# tar -zxfzookeeper-3.4.6.tar.gz -C /usr/local/
[root@localhost65 download]# cd /usr/local/
[root@localhost65 local]# ls
apache-hive-1.2.2-bin bin hbase jdk1.8.0_65 sbin vmware-tools-distrib
apache-hive-2.1.1-bin etc hbase-1.1.5 lib share zookeeper-3.4.6
apache-kylin-1.5.0-HBase1.1.3-bin games hbase-1.3.1 lib64 src
apache-kylin-1.6.0-bin hadoop-2.6.2 include libexec VMwareTools-9.6.1-1378637.tar.gz
[root@localhost65 local]#
1.2. 配置zookeeper环境变量
[root@localhost65 local]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_65
export CLASSPATH=.:$JAVA_HOME/lib
export JRE_HOME=/usr/local/jdk1.8.0_65/jre
exportPATH=.:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export HADOOP_HOME=/usr/local/hadoop-2.6.2
exportHADOOP_CONF_DIR=/usr/local/hadoop-2.6.2/etc/hadoop
exportYARN_CONF_DIR=/usr/local/hadoop-2.6.2/etc/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
exportZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6
exportZOOKEEPER_CONF=/usr/local/zookeeper-3.4.6/conf
exportPATH=$ZOOKEEPER_HOME/bin:$PATH
[root@localhost65 local]#
使文件生效
[root@localhost65 local]# source/etc/profile
[root@localhost65 local]#
1.3. 修改zookeeper配置文件,设置心跳时间等信息
[root@localhost65 conf]# cp zoo_sample.cfgzoo.cfg
[root@localhost65 conf]# ls
configuration.xsl log4j.properties zoo.cfg zoo_sample.cfg
[root@localhost65 conf]# vim zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot isstored.
# do not use /tmp for storage, /tmp here isjust
# example sakes.
dataDir=/home/zookeeper/data
# the port at which the clients willconnect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle moreclients
#maxClientCnxns=60
#
# Be sure to read the maintenance sectionof the
# administrator guide before turning onautopurge.
#
#http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain indataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable autopurge feature
#autopurge.purgeInterval=1
[root@localhost65 conf]#
1.4. 启动zookeeper服务
[root@localhost65 bin]# zkServer.sh restart
JMX enabled by default
Using config:/usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg
JMX enabled by default
Using config:/usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
JMX enabled by default
Using config:/usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ...
STARTED
[root@localhost65 bin]#
[root@localhost65 bin]#
1.5. 客户端查看zookeeper服务
[root@localhost65 ~]# cd/usr/local/zookeeper-3.4.6/
[root@localhost65 zookeeper-3.4.6]# ls
bin contrib ivy.xml README_packaging.txt zookeeper-3.4.6.jar
build.xml dist-maven lib README.txt zookeeper-3.4.6.jar.asc
CHANGES.txt docs LICENSE.txt recipes zookeeper-3.4.6.jar.md5
conf ivysettings.xml NOTICE.txt src zookeeper-3.4.6.jar.sha1
[root@localhost65 zookeeper-3.4.6]# bin/zkCli.sh
Connecting to localhost:2181
2017-08-28 09:55:43,737 [myid:] - INFO [main:Environment@100] - Clientenvironment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2017-08-28 09:55:43,741 [myid:] - INFO [main:Environment@100] - Clientenvironment:host.name=localhost65
2017-08-28 09:55:43,741 [myid:] - INFO [main:Environment@100] - Clientenvironment:java.version=1.8.0_65
2017-08-28 09:55:43,744 [myid:] - INFO [main:Environment@100] - Clientenvironment:java.vendor=Oracle Corporation
2017-08-28 09:55:43,744 [myid:] - INFO [main:Environment@100] - Clientenvironment:java.home=/usr/local/jdk1.8.0_65/jre
2017-08-28 09:55:43,745 [myid:] - INFO [main:Environment@100] - Clientenvironment:java.class.path=/usr/local/zookeeper-3.4.6/bin/../build/classes:/usr/local/zookeeper-3.4.6/bin/../build/lib/*.jar:/usr/local/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/usr/local/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/usr/local/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/usr/local/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/usr/local/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/usr/local/zookeeper-3.4.6/bin/../conf:.:/usr/local/jdk1.8.0_65/lib
2017-08-28 09:55:43,746 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2017-08-28 09:55:43,746 [myid:] - INFO [main:Environment@100] - Clientenvironment:java.io.tmpdir=/tmp
2017-08-28 09:55:43,747 [myid:] - INFO [main:Environment@100] - Clientenvironment:java.compiler=<NA>
2017-08-28 09:55:43,747 [myid:] - INFO [main:Environment@100] - Clientenvironment:os.name=Linux
2017-08-28 09:55:43,747 [myid:] - INFO [main:Environment@100] - Clientenvironment:os.arch=amd64
2017-08-28 09:55:43,747 [myid:] - INFO [main:Environment@100] - Clientenvironment:os.version=2.6.32-431.el6.x86_64
2017-08-28 09:55:43,748 [myid:] - INFO [main:Environment@100] - Clientenvironment:user.name=root
2017-08-28 09:55:43,748 [myid:] - INFO [main:Environment@100] - Clientenvironment:user.home=/root
2017-08-28 09:55:43,748 [myid:] - INFO [main:Environment@100] - Clientenvironment:user.dir=/usr/local/zookeeper-3.4.6
2017-08-28 09:55:43,750 [myid:] - INFO [main:ZooKeeper@438] - Initiating clientconnection, connectString=localhost:2181 sessionTimeout=30000watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@67424e82
Welcome to ZooKeeper!
2017-08-28 09:55:43,798 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@975] - Openingsocket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt toauthenticate using SASL (unknown error)
JLine support is enabled
2017-08-28 09:55:43,912 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@852] - Socketconnection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
2017-08-28 09:55:43,930 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1235] - Sessionestablishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =0x15e2673e433000e, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:Nonepath:null
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper, hbase]
[zk: localhost:2181(CONNECTED) 1]
1.6. Zookeeper启动错误
2017-08-2811:46:45,506 INFO [localhost65:16000.activeMasterManager]master.ServerManager: Waiting for region servers count to settle; currentlychecked in 1, slept for 3796 ms, expecting minimum of 1, maximum of 2147483647,timeout of 4500 ms, interval of 1500 ms.
2017-08-2811:46:46,225 INFO [localhost65:16000.activeMasterManager]master.ServerManager: Finished waiting for region servers count to settle;checked in 1, slept for 4514 ms, expecting minimum of 1, maximum of 2147483647,master is running
2017-08-2811:46:46,231 INFO [localhost65:16000.activeMasterManager]master.MasterFileSystem: Log folder hdfs://192.168.3.65:9000/hbase/WALs/localhost65,16020,1503891995767belongs to an existing region server
2017-08-2811:46:46,335 INFO [localhost65:16000.activeMasterManager] zookeeper.MetaTableLocator:Failed verification of hbase:meta,,1 ataddress=localhost65,16020,1503891868721,exception=org.apache.hadoop.hbase.NotServingRegionException: Regionhbase:meta,,1 is not online on localhost65,16020,1503891995767
at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegionByEncodedName(HRegionServer.java:2899)
atorg.apache.hadoop.hbase.regionserver.RSRpcServices.getRegion(RSRpcServices.java:960)
atorg.apache.hadoop.hbase.regionserver.RSRpcServices.getRegionInfo(RSRpcServices.java:1245)
at org.apache.hadoop.hbase.protobuf.generated.AdminProtos$AdminService$2.callBlockingMethod(AdminProtos.java:22233)
atorg.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2127)
atorg.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133)
atorg.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108)
at java.lang.Thread.run(Thread.java:745)
解决办法:
1.系统防火墙开启后主机ip对应主机名解析有问题,需要删除Hbase 的tmp文件夹重启(每个节点都要操作)
将/etc/hosts中的127.0.0.1 psyDebian删除(从节点对应也删除)后程序运行正常。接着尝试运行HBase,没有出现问题!创建表也正常了!
一开始也知道得删除hosts文件中127.0.1.1,但是没想到127.0.0.1 主机名也得删除。
2.hadoop 集群进入了safe model 模式,需要执行hadoop dfsadmin -safemode leave退出安全模式
3.存储在Hbase的数据有丢失,需要利用hadoop的回收站的机制恢复数据,或者删除HBase的数据