2017-08-08 135 views
0

我想從我的HDFS directories.I的一個最新的更新的文件夾是能夠得到在HDFS文件系統的最新文件,但不知道如何做到這一點的HDFS one.I試圖與外殼腳本。獲取最新更新文件夾中的HDFS

+0

你是如何獲得最新的文件?您也可以使用相同的腳本文件夾。 – daemon12

+0

hadoop的FS -ls -R/TMP /應用| awk -F「」'{print $ 6「」$ 7「」$ 8}'| sort -nr |頭-1 |切-d」「-F3 –

+0

的答案部分解決方案是類似的。嘗試一下,看看它是否有效。 – daemon12

回答

1

用Hadoop 2.6,我能得到它使用以下命令工作:

hdfs dfs -ls -R ${DIR} | grep "^d" | sort -k6,7 | tail -1 | tr -s ' ' | cut -d' ' -f8 

其中,

hdfs dfs -ls -R ${DIR}:給所有迪爾斯遞歸

grep "^d":只給出目錄

sort -k6,7:按照修改時間順序排序

tail -1:給出最後修改目錄

上市

tr -s ' ':一些格式

cut -d' ' -f8:只給出目錄路徑

例子:

[[email protected]]$ hdfs dfs -ls -R /tmp/a 
drwxr-xr-x - hduser supergroup   0 2017-08-08 03:08 /tmp/a/b 
drwxr-xr-x - hduser supergroup   0 2017-08-08 03:11 /tmp/a/b/c 
drwxr-xr-x - hduser supergroup   0 2017-08-08 03:12 /tmp/a/b/c/CC 
-rw-r--r-- 3 hduser supergroup   0 2017-08-08 03:12 /tmp/a/b/c/CC/f2.txt 
drwxr-xr-x - hduser supergroup   0 2017-08-08 03:08 /tmp/a/b/c/d 
drwxr-xr-x - hduser supergroup   0 2017-08-08 03:08 /tmp/a/b/c/d/e 
-rw-r--r-- 3 hduser supergroup   6 2017-08-08 03:10 /tmp/a/b/c/f1.txt 

解決方案:

[[email protected]]$ hdfs dfs -ls -R /tmp/a | grep "^d" | sort -k6,7 | tail -1 | tr -s ' ' | cut -d' ' -f8 

/tmp/a/b/c/CC 
相關問題