我需要通過Java API從遠程桌面使用HDFS集羣。一切正常,直到寫入訪問。如果我試圖創建任何文件,我會收到訪問權限異常。路徑看起來不錯,但異常表明我的遠程桌面用戶名當然不是我需要訪問所需的HDFS目錄。通過Java API從遠程主機進行HDFS訪問,用戶認證
現在的問題是: - 有沒有什麼方法可以在Java API中使用'簡單'認證來表示不同的用戶名? - 您能否在使用Java API示例時更好地解釋hadoop/HDFS中的認證/授權方案?
是的,我已經知道'whoami'可能在這種情況下使用shell別名重載,但我更喜歡避免這樣的解決方案。這裏還有一些細節是我不喜歡使用一些技巧,比如通過SSH和腳本進行管道操作。我想用Java API來執行所有的事情。 預先感謝您。
我已經偶然發現了和你一樣的問題。我試圖將Hadoop作業從遠程客戶端發送到將執行它的集羣。在我的情況下,問題是** Cloudera的Hadoop 2.0.0(Hadoop 2.0.0-cdh4.3.1)不提供您使用的UserGroupInformation類**。看來相應的Apache Hadoop版本也不提供它。只有一個名爲UserGroupInformation的枚舉 - [link](http://archive.cloudera.com/cdh4/cdh/4/hadoop/api/org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html)。在你看來,這樣的情況下怎麼可能呢? – falconepl 2013-09-05 11:39:20
它在那裏,只是它不是cloudera。我現在使用2.0.0-cdh4.3.1 hadoop客戶端。 – 2013-09-05 15:26:46
你說什麼在那裏意味着什麼?我已經檢查了Apache Hadoop 2.0.6 API [[link](http://hadoop.apache.org/docs/r2.0.6-alpha/api/index.html)]以及2.1.0 API [[link ](http://hadoop.apache.org/docs/r2.1.0-beta/api/index.html)](Apache在他們的網站上提供的那些Javadocs),不幸的是沒有UserGroupInformation類,只是enum這並沒有多大幫助。順便說一下,您提到Cloudera的Hadoop發行版不是'2.0.0-cdh4.3.1' Hadoop嗎? – falconepl 2013-09-05 15:57:01