簡體   English   中英

從 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-00000part-r-00001等的一組文件中的第一個. 取決於您可能定義的作業減速器的數量)與作業的結果。

如果上面的命令拋出一個錯誤,表明沒有具有該名稱的文件,那么要么您的工作在設置輸出key-value對之前偶然發現了問題,要么您的 Hadoop 版本有點舊,並且輸出文件的名稱(s) 類似於part-00000part-00001 ,然后繼續。

作為示例,以下屏幕截圖中的以下輸出來自已執行的作業,其輸出存儲在 HDFS 的wc_out目錄下:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM