由於我用的hadoop是1.0.4,網上大部分教程都是0.2.0的,有一些地方不能借鑑。
eclipse的hadoop的插件可以從網上下載,或者自己從下載的hadoop包裏邊編譯而來(具體方法搜下即可)。
拿到插件後放到eclipse安裝目錄下的plugins目錄下即可。然後重啓eclipse。
用eclipse建立 DFS Locations後,發現不能連接到HDFS。
仔細檢查了配置,沒有錯。
環境是:
虛擬機下的ubuntu 作爲hadoop的僞分佈式環境,ip 192.168.0.111。
win7下的eclipse 去連接HDFS,各種不能連上。
無奈在ubuntu下安裝了eclipse,安裝了插件。在創建Hadoop Location時,Map/Reduce Master 和 DFS Master的Host 設爲localhost (127.0.0.1也可),成功連上。
然後修改了conf/core-site.xml
將<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
的value配置改爲<value>hdfs://192.168.0.111:9000</value>。
然後重啓hadoop,win7下的eclipse 可以連接虛擬機下的HDFS。
但是此時虛擬機下的eclipse不能連接HDFS,再次將虛擬機的 Map/Reduce Master 和 DFS Master的Host 設爲192.168.0.111,可以連上。
瞬間無語...
平時我認爲綁定了localhost 或者127.0.0.1會默認綁定本機的對外ip地址(也就是說本文中的192.168.0.111)。但是hadoop並沒有這樣做.
不知道是我理解有偏差還是hadoop真的做錯了?
=========
處理掉上個問題之後,在虛擬機下的eclipse能成功執行操作hdfs的程序。但是在win7下的運行程序會報org.apache.hadoop.security.AccessControlException
解決方法參見
http://39382728.blog.163.com/blog/static/353600692011101051217731/