假設我寫了一個java程序,我想在Hadoop中運行它,然後hadoop - 存放在hadoop中的輸入/輸出文件以及如何在hadoop中執行java文件?
- 應該在哪裏文件被保存?
- 如何從hadoop訪問它?
- 我應該通過以下命令調用它嗎?
hadoop classname
- hadoop中執行java文件的命令是什麼?
假設我寫了一個java程序,我想在Hadoop中運行它,然後hadoop - 存放在hadoop中的輸入/輸出文件以及如何在hadoop中執行java文件?
hadoop classname
我能想到的對您的問題最簡單的答案是:
1)任何地方
2,3,4)$HADOOP_HOME/bin/hadoop jar [path_to_your_jar_file]
它看起來很複雜,但比你想象的要簡單!
map/reduce
類和你的main
類編譯成jar。我們稱之爲罐子myjob.jar
。
hadoop
命令行實用程序的任何計算機上。hadoop jar myjob.jar
希望有所幫助。
數據應保存在「hdfs」中。您可能希望使用Apache Flume之類的東西將其從數據源加載到羣集中。該文件可以放在任何地方,但大多數家庭是/用戶/ hadoop/
SSH進入hadoop集羣headnode像標準的linux服務器。
要列出的hadoop根HDFS hadoop fs -ls /
hadoop classname
您應該使用Hadoop的命令來訪問您的數據和運行您的程序,嘗試hadoop help
hadoop -jar MyJar.jar com.mycompany.MainDriver arg[0] arg[1] ...
謝謝你,我會嘗試!!!! – apoorva 2011-03-23 05:44:19
假設我有一個map函數和一個reduce函數,那麼它們是否也適用? – apoorva 2011-03-23 05:50:38
@apoorva:在http://hadoop.apache.org/mapreduce/docs/current/mapred_tutorial.html中有一個WordCount示例,其中包含映射器和縮減器的源代碼。 – Nija 2011-03-23 14:55:51