我在「-file」選項中的hadoop 流式處理中遇到了一個非常基本的問題。Java類文件的Hadoop Streaming -file選項存在問題
首先,我試圖在流的非常簡單的例子:
Hadoop的@ Ubuntu的:在/ usr /本地/ Hadoop的$斌/ Hadoop的罐子 的contrib /流/ Hadoop的流-0.20.203.0.jar -mapper org.apache.hadoop.mapred.lib.IdentityMapper \ -reducer /斌/ WC -inputformat KeyValueTextInputFormat - 輸入古滕貝格/ * - 輸出 古騰堡outputtstchk22
這工作絕對沒問題。
然後我複製了IdentityMapper.java源代碼並編譯它。 然後我將這個類文件放在/ home/hadoop文件夾中,並在終端中執行下面的 。
Hadoop的@ Ubuntu的:在/ usr /本地/ Hadoop的$斌/ Hadoop的罐子 的contrib /流/ Hadoop的流式0.20.203.0.jar -file 〜/ IdentityMapper.class -mapper IdentityMapper.class \ -reducer /斌/ WC -inputformat KeyValueTextInputFormat - 輸入古滕貝格/ * - 輸出 古騰堡outputtstch6
執行失敗與stderr文件以下錯誤:
產生java.io.IOException:不能運行程序「IdentityMapper。類「: java.io.IOException:error = 2,沒有這樣的文件或目錄
再說我嘗試通過在 Hadoop的安裝複製IdentityMapper.class文件並執行以下操作:
Hadoop的@ Ubuntu的:在/ usr /本地/ Hadoop的$斌/ Hadoop的罐子 的contrib /流/ Hadoop的流-0.20.203.0.jar -file IdentityMapper.class -mapper IdentityMapper.class \ -reducer /斌/ WC -inputformat KeyValueTextInputFormat - 輸入古滕貝格/ * - 輸出 古騰堡outputtstch5
但不幸的是,我再次得到了同樣的錯誤。
這將是偉大的,如果你能幫助我,因爲我不能移動任何進一步 沒有克服這一點。
感謝您的期待。
感謝您的回覆,我知道jar已經存在,我嘗試了這個之後,我嘗試了hadoop流爲一個不同的類文件失敗,所以以確定是否有東西錯誤的類文件本身或與我使用它的方式 –