天天看點

[hadoop學習筆記] 之 eclipse插件操作hdfs出現的權限問題

    在搗鼓hadoop的時候,覺得eclipse寫Mapreduce程式很不爽。就配置了一個eclipse的hadoop插件。但是遇到了問題。

   先說明下我的情況: 我叢集有3台機器。都在虛拟機中。實體機也是linux,但并未安裝hadoop加入叢集。hadoop版本是1.2.1

   此時,我在實體機上裝eclipse,然後遠端連接配接到虛拟機的hdfs。

    根據教程一切都完成了。然而在操作hdfs的時候,出現了一個錯誤:

org.apache.hadoop.security.AccessControlException: Permission denied.

user=kai,access=WRITE, inode="hadoop":hadoop:supergroup:rwxr-xr-x

初步估計,應該是權限問題(看到錯誤資訊裡有user=kai,而我hadoop叢集裡的使用者名為hadoop,kai是我實體機的使用者名)。在網上百度了一下解決的方法:

    有人說在插件的Advanced Parameters頁籤中,将"hadoop.job.ugi" 修改一下。但我找半天沒有找到。是以我推測,這應該是0.20.X以前的老版本的解決辦法。

 新版的解決辦法是修改hdfs-site.xml檔案。增加 如下項:

<property>  
  <name>dfs.permissions</name>  
  <value>false</value>  
</property> 
           

這個是把hdfs的權限檢查給關掉。這個預設是true的。

有一步切記!那就是修改完畢後,把檔案scp到各個Slave上,把原檔案覆寫,當然如果你SecondaryNameNode是獨立的節點,也要拷貝。

完成後重新開機叢集。解決。

不過這樣做可能會有安全性的問題。目前能想到的辦法就是: 把eclipse安裝到叢集的任意節點上,并以hadoop專用使用者來執行,如我專用使用者名就是hadoop,那我在開機登入時,就使用它。

繼續閱讀