我對Kerberos來說很新奇。我正在使用共享的Hadoop集羣。我的管理員爲我提供了一個用戶名和密碼以及KDC服務器的位置。如何使用java API訪問安全kerberized hadoop
是否可以使用JAVA GSS API和Hadoop USerGroupInformation類來訪問Hadoop集羣。
對於非Kerberos Hadoop集羣,這將是代碼片段我會用,比如讀取HDFS文件:
String uname = <Some username>;
UserGroupInformation ugi = UserGroupInformation.createRemoteUser(uname);
ugi.doAs(new PrivilegedExceptionAction<Void>(){
public Void run() throws Exception {
HdfsConfiguration hdfsConf = new HdfsConfiguration();
... SETUP Configuration ...
FileSystem fs = FileSystem.get(hdfsConf);
... Use 'fs' to read/write etc ...
}
});
現在對於安全集羣,我還提供了Kerberos口令對於用戶.. 有人可以請我提供什麼是我需要對上述代碼片段做出的確切更改,以首先訪問KDC並執行kinit,然後繼續進行HDFS操作
請記住,在我打算部署Java應用程序的環境,我可能沒有在本地安裝'kinit',因此調用th Java內部的kinit進程不是一個選項。
在此先感謝..
如果你可以從你的客戶執行的Java程序,那麼除非你構建一個Kerberos客戶到你的程序不能部署對安全集羣你的工作,之前沒有執行kinit。 – jtravaglini