[英]Getting mapreduce job result from Java API without permanent storage on HDFS
[英]Retrieve the job result from HDFS
直接從 HDFS 讀取文件而不將其復制到本地文件系統。 不過,我將結果復制到本地文件系統。
hduser@ubuntu:/usr/local/hadoop$ mkdir /tmp/gutenberg-output bin/hadoop dfs -getmerge /user/hduser/gutenberg-output /tmp/gutenberg-output 棄用:不推薦使用此腳本執行 hdfs 命令. 而是使用 hdfs 命令。
20/11/17 21:58:02 WARN util.NativeCodeLoader: 無法為您的平台加載 native-hadoop 庫...在適用的情況下使用內置 java 類,linux 答案是 getmerge: `/tmp/gutenberg-output':是一個目錄如何修復錯誤?
您似乎試圖輸出這個特定的 HDFS 目錄本身而不是其中的內容。
但是,HDFS 的好處在於它確實遵循了一些基於 Unix 的命令行約定,因此您可以真正讀取此目錄下文件的內容(您應該使用作業的輸出) cat
命令如下:
hadoop fs -cat output_directory/part-r-00000
其中output_directory
是存儲所需輸出的目錄的名稱, part-r-00000
是文件的名稱(或名為part-r-00000
、 part-r-00001
等的一組文件中的第一個. 取決於您可能定義的作業減速器的數量)與作業的結果。
如果上面的命令拋出一個錯誤,表明沒有具有該名稱的文件,那么要么您的工作在設置輸出key-value
對之前偶然發現了問題,要么您的 Hadoop 版本有點舊,並且輸出文件的名稱(s) 類似於part-00000
, part-00001
,然后繼續。
作為示例,以下屏幕截圖中的以下輸出來自已執行的作業,其輸出存儲在 HDFS 的wc_out
目錄下:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.