AndyTsai 寫:
請問小弟有兩個檔案 要用hadoop編譯
第一個檔案
public class MST extends ExampleBaseJob {
public static void main(String[] args) throws Exception {
}
}
第二個檔案
public abstract class ExampleBaseJob {
}
小弟想問如果要在linux環境下用hadoop編譯 他沒辦法抓到第二個檔案導致錯誤
想請問編譯上要怎麼編譯呢
因為小弟用eclipse跑是可以的 但是用hadoop 編易 直接打 卻有錯誤 找不到第二個檔案
小弟想問要怎麼打指令才能抓到檔案
感謝幫忙~~~
先編譯 ExampleBaseJob 再編譯 MST
代碼:
javac -cp ${HADOOP_HOME}/hadoop-*-core.jar ExampleBaseJob
javac -cp .:${HADOOP_HOME}/hadoop-*-core.jar MST ### 加上 . 代表要搜尋目前工作目錄的 ExampleBaseJob.class
我自己是懶惰打那麼多指令,都用 ant
如果在 Hadoop4Win 環境下,可以參考
http://trac.nchc.org.tw/cloud/wiki/III130615/Lab7只要把所有 java 檔放在 src 目錄中,然後下 ant 就會全部編好。
講起來很簡單啦~不過如果不知道 build.xml 在寫什麼,換一個環境大概也是不會用。
您遇到的問題我猜是 CLASSPATH 的問題(因為沒有貼錯誤訊息,發問第一大忌,只陳述現象,這也是為何遲遲沒有人願意回您。
第二大忌,沒有說明環境,上一則您用的是 Windoop。這沒花時間細讀是不會知道的。
第三大忌,大哉問,第一則發問是問怎麼改寫原始程式變成 MapReduce,這樣的問題是不會有人回答的,
因為除非這件事情是自己份內的工作,不然我幹嘛殺自己的腦細胞去幫忙想怎麼改)。
CLASSPATH 算是 Java 入門該會的除錯技巧,也是 Java 初學者一定會撞到的牆。
學習這條路,別人是幫不了的,
如果 Java 不夠熟,那要寫 Java MapReduce 程式就會卡得更嚴重。
如果 Linux 不夠熟,光是安裝 Hadoop 實驗環境也是搞死人。
在這裡看到很多人都想速成~可是真的沒有捷徑可以走 XD
這也是為什麼我會建議初學者,先到
http://hadoop.nchc.org.tw 註冊帳號,
搞懂該怎麼用 hadoop.nchc.org.tw 的實驗環境就好。我們想要讓入門的門檻降低,可是
往往發現再走深一點,一樣會遇到背景知識夠不夠的問題。
- Jazz