1. 程式人生 > >CDH禁用kerberos

CDH禁用kerberos

CDH禁用kerberos

1、zookeeper enableSecurity 設定為false。配置kerberos時候是需要勾選該選項的


CDH禁用kerberos

2、hbase 設定 hbase.security.authentication 為false

CDH禁用kerberos

取消勾選 hbase.security.authorizatio

CDH禁用kerberos
3、hdfs 

設定 hadoop.security.authentication 為simple

CDH禁用kerberos

取消勾選 hadoop.security.authorization

CDH禁用kerberos
重置dn address 埠為50010

dfs.datanode.address = 50010

CDH禁用kerberos
 

重置 dn http埠為 50075

dfs.datanode.http.address 修改為50075

CDH禁用kerberos
4、hue

Hue例項中刪除Kerberos Ticket Renewer

CDH禁用kerberos
 

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

CDH禁用kerberos
如果不執行以上操作,將會執行以下錯誤:

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節點.

 

 

重啟叢集 !

CDH禁用kerberos
 

 

   參考 :

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