前言
集群使用外部的zk来管理所有的选举和通讯的,hbase内嵌了一个zk。每次运行hbase后,我的外部zk进程就会挂掉。取而代之的是一个名字叫做HQuorumPeer的进程!
名字是不是很眼熟。和我们的外部zk进程就多了个H?那么这个进程到底是怎么回事呢,搞明白为什么这个进程出现,搞明白为什么我外部的myid文件被篡改就搞明白了真相!
查明原因
每次我的myid文件都会被篡改,在日志中也没有反应相应的操作,那么只能做一个事情,那么就是将文件权限改为只读。当我把文件改为只读以后,奇妙的事情就这样发生了!
启动完hadoop集群以后,我启动了hbase,这里就出现了写权限问题!那么问题来了,为什么hbase会操作我的myid呢。而且一个熟悉的进程名字出现在了日志上!
原来hbase内部的zk我一直没有去管理他!但是我把hbase的zkData目录指定给了hbase!而zkData这个目录我放了myid!
真相
原来是hbase在偷偷的改我的myid文件!那么怎么去处理呢?
在hbase-env.sh 修改128行!
export HBASE_MANAGES_ZK=false
以防再次出现类似情况,建议将外部的myid文件权限改为只读!
再次启动一切正常!
总结
配置hbase要细心!我只配置了site文件,却忘记配置了env文件。
从源头解决问题,直接将文件权限修改,防止篡改。查名真相以后及时处理!