2015-07-21 99 views
0

我想通過webhdfs調用來從安全節點使用Java檢索文件。如何使用webhdfs從安全節點讀取hdfs文件?

這是我在做什麼 1.使用keytab登錄(正常工作)。我得到一個Kerberos票據 2.現在,當我嘗試調用下面的代碼,它的作用是,它試圖獲得通過進行HTTPS調用delegationtoken和失敗與401 https://mynode:50070/webhdfs/v1/?op=GETDELEGATIONTOKEN&user.name=myuser

下面是代碼打開hdfs文件 FileSystem webFS = FileSystem.get(new URI(「swebhdfs://」+ domain +「myfile」),conf);
BufferedReader br = new BufferedReader(new InputStreamReader(webFS.open(new Path(「swebhdfs://」+ domain +「myfile」))));

我的問題是因爲我有kerberos票證,我怎麼能通過這一個UserGropupInformation對象?

感謝,

回答

0

我假設你有機會獲得keytab文件。 在連接到hadoop羣集之前添加以下代碼片段。
loginUserFromKeytab方法將爲指定用戶加載和驗證keytab。 (在簡單的術語 '在日誌')

String user = "[email protected]" 
String keyPath = "somekeytab.keytab" 
UserGroupInformation.loginUserFromKeytab(user, keyPath) 

UserGroupInformation位於hadoop-common罐子。

參考:

Authenticating Kerberos Principals in Java Code