CDH禁用kerberos
CDH禁用kerberos
1、zookeeper enableSecurity 設定為false。配置kerberos時候是需要勾選該選項的
2、hbase 設定 hbase.security.authentication 為false
取消勾選 hbase.security.authorizatio
設定 hadoop.security.authentication 為simple
取消勾選 hadoop.security.authorization
dfs.datanode.address = 50010
重置 dn http埠為 50075
dfs.datanode.http.address 修改為50075
Hue例項中刪除Kerberos Ticket Renewer
5、重啟叢集前,刪除zk 下的/hbase 節點
(1)Zookeeper新增引數(跳過zk目錄許可權檢查): java Configuration Options for Zookeeper Server :
-Dzookeeper.skipACL=yes
(2)刪除zk元資料目錄:hbase zkcli;rmr /hbase 或者直接 zookeeper-client ; rmr /hbase
org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /hbase/running
at org.apache.zookeeper.KeeperException.create(KeeperException.
at org.apache.zookeeper.KeeperException.create(KeeperException.
at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.getData(RecoverableZooKeeper.
at org.apache.hadoop.hbase.zookeeper.ZKUtil.getDataInternal(ZKUtil.
at org.apache.hadoop.hbase.zookeeper.ZKUtil.getDataAndWatch(ZKUtil.
at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.
at org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.
at org.apache.hadoop.hbase.master.HMaster.(HMaster.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.
at
at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.
at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.
at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.
at org.apache.hadoop.hbase.master.HMaster.main(HMaster.
2018-06-15 03:04:47,499 FATAL org.apache.hadoop.hbase.master.HMaster: Unexpected exception during initialization, aborting
org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /hbase/running
at org.apache.zookeeper.KeeperException.create(KeeperException.
at org.apache.zookeeper.KeeperException.create(KeeperException.
at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.getData(RecoverableZooKeeper.
at org.apache.hadoop.hbase.zookeeper.ZKUtil.getDataInternal(ZKUtil.
at org.apache.hadoop.hbase.zookeeper.ZKUtil.getDataAndWatch(ZKUtil.
at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.
at org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.
at org.apache.hadoop.hbase.master.HMaster.(HMaster.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.
at
at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.
at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.
at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.
at org.apache.hadoop.hbase.master.HMaster.main(HMaster.
丟擲以上錯誤的原因是:
zookeeper和hbase啟用kerberos後,/hbase目錄許可權屬於hbase。
getAcl /hbase/table
'world,'anyone
: r
'sasl,'hbase
: cdrwa
網上參考的解決方案:
重新啟用kerberos,然後手動將zookeeper中/hbase下所有znode許可權設定為world:anyone:cdrwa。
使用hbase賬號,然後在hbase zkcli中進行修改。如果啟動zkcli時報jline相關錯誤,只需將zookeeper/lib目錄下0.9版本刪除,然後拷貝1.1.2版本到此目錄即可解決。
---
某並未使用以上方案解決,只用了之上的第一個方案,在zk server中新增跳過ACL檢查的程式碼,然後刪除/hbase節點.
重啟叢集 !
參考 :
https://www.jianshu.com/p/9aef0be5cc43
http://wzktravel.github.io/2016/03/05/Disable-kerberos-in-CDH/
https://blog.csdn.net/xiao_jun_0820/article/details/39375819