1

我想要jun一個定製的jar,其主要類是一系列map減少作業,第一個作業的輸出作爲第二個jar的輸入,依此類推。亞馬遜EMR的輸出文件夾

我在FileOutputFormat.setOutputPath(「什麼路徑應該在這裏?」)中設置什麼?

如果我在參數中指定-outputdir,則會出現FileAlraedy存在的錯誤。如果我沒有說明,那麼我不知道輸出的地方在哪裏。我希望能夠看到鏈式映射減少作業的每個作業的輸出。

謝謝你。請幫忙!

回答

0

您可能會收到「FileAlraedy exists」錯誤,因爲該輸出目錄存在於您正在運行的作業之前。確保刪除您爲Hadoop作業指定的輸出目錄;否則你將無法運行這些工作。

0

好的做法是從命令行取得輸出,因爲它會增加代碼的靈活性如果更改與路徑相關,您將只編譯一次jar。 EMR如果您啓動您的羣集並編譯您的罐子

例如,

dfs_ip_folder=HDFS_IP_DIR 
dfs_op_folder=HDFS_OP_DIR 
hadoop jar hadoop-examples-*.jar wordcount ${dfs_ip_folder} ${dfs_op_folder} 

注意:您必須創建dfs_ip_folder並將輸入數據存儲在其中。 將在HDFS上自動創建dfs_op_folder而不是在本地文件系統上 要訪問HDFS操作系統文件夾,您可以將其複製到本地文件系統,也可以做貓。 例如。

hadoop fs -cat ${dfs_op_folder}/<file_name> 
hadoop fs -copyToLocal ${dfs_op_folder} ${your_local_input_dir_path}