對HDFS文件檢查的快速方法是使用tail:爲什麼沒有'hadoop fs -head'shell命令?
~$ hadoop fs -tail /path/to/file
這將顯示數據的文件,這是非常有用的,在過去的千字節。但是,相反的命令head
似乎不是shell命令集合的一部分。我覺得這很令人驚訝。
我的假設是,由於HDFS是爲在非常大的文件上進行非常快的流式讀取而構建的,因此存在一些影響head
的訪問導向問題。這讓我猶豫不決,無法進入頭部。有人有答案嗎?
對HDFS文件檢查的快速方法是使用tail:爲什麼沒有'hadoop fs -head'shell命令?
~$ hadoop fs -tail /path/to/file
這將顯示數據的文件,這是非常有用的,在過去的千字節。但是,相反的命令head
似乎不是shell命令集合的一部分。我覺得這很令人驚訝。
我的假設是,由於HDFS是爲在非常大的文件上進行非常快的流式讀取而構建的,因此存在一些影響head
的訪問導向問題。這讓我猶豫不決,無法進入頭部。有人有答案嗎?
我會說它更多的是與效率有關 - 頭部可以很容易地通過管理hadoop fs -cat的輸出通過linux head命令來複制。
hadoop fs -cat /path/to/file | head
這是有效,因爲頭將關閉出底層流線的期望數量之後已經輸出
以這種方式使用尾將是相當少的高效率 - 如你必須超過流整個文件(所有HDFS塊)找到最後的x行。
hadoop fs -cat /path/to/file | tail
Hadoop的FS的,你注意,最後千字節作品-tail命令 - 的Hadoop可以有效地找到了最後一塊跳到最後千字節的位置,然後流輸出。通過尾巴管道不容易做到這一點。
如何把這個頭hadoop的東西變成別名形式。argpas(){ HDFS DFS -cat $ 1 |頭部 - $ 2 } alias hh = argpas 我試過這個,但它不起作用 –
bash函數調用相同的(可選通過'-n {num} {hdfs_path}'給出num行顯示):'hdfs- head(){[「$ 1」=「-n」] && {n = $ 2;班次2; } || N = 10; hdfs dfs -cat「$ @」|頭-n $ n; '' – michael
hdfs -dfs /path | head
是解決問題的好方法。
你可以嘗試如下因素命令
hadoop fs -cat /path | head -n
其中-n
可以與記錄編號替換查看
在Hadoop的V2:
hdfs dfs -cat /file/path|head
在Hadoop的V1和V3:
hadoop fs -cat /file/path|head
缺乏實施此功能的社區興趣? [https://issues.apache.org/jira/browse/HDFS-206](https://issues.apache.org/jira/browse/HDFS-206)。 – cabad