起初在linux上想使用Map/Reduce來完成操作,發現需要匯入的jar包過多,大概在6點左右寫完程式卻跑不起來,一直在找jar包,直接被卡死在這裡。
從教室回來之後,發現好多人都是在windows下完成的操作。突然想起來,暑假裡按教程做的那個精準推送的例項,也是在windows的eclipse上編寫好程式碼,將文字檔案也放入,打成jar包,然後在linux虛擬機器上啟用hadoop來進行呼叫完成操作。
所以換了一種方法,改成在windows下程式設計,通過hadoop的jar包來連線虛擬機器完成操作。
這是實驗完成的截圖。
中途遇到了一些問題,比如:
1、連線9000埠失敗。我原來做偽分佈的配置時將core-site.xml中的配置改成了localhost:8080,那時候是習慣這個號。
現在兩個問題,第一點要將localhost這個只用於本機的改成虛擬機器的ip地址,就從ifconfig可以查出來。
第二點,8080改成大多數人通用的9000,其實我也不知道這倆的區別在哪裡,不過8080經常需要使用,這也可以防止埠互相佔用。
2、主機和虛擬機器的連線問題,出現了一些小意外,已解決,截圖如下:
在自己主機下能登入(http://192.168.180.128:50070/):
在cmd裡能ping通:
剩下的就是一些程式碼上的小問題,這裡要給自己長個記性就是要重點注意路徑,因為它一般寫在字串裡,即便有錯誤也不會主動報錯,很隱祕。
實驗要求輸出內容的截圖: