shell 遍歷 hdfs上的檔案目錄

2021-10-23 10:45:52 字數 723 閱讀 4448

背景:

需要批量把hdfs上某個目錄中的所有以.pending 結尾的檔案,去掉.pending字尾。主要原因是建立的hive外表無法讀取.tmp或.pending的檔案,所以需要去掉字尾。

hdfs上檔案的結構是根目錄/data/test/flink/ttengine_predict/下有dt=2017-12-28的天級目錄,在天級目錄下會有hour=00-23的24個小時級目錄,檔案都在小時級目錄中。

#!/bin/bash  

#print the directory and file

hadoop fs -ls /data/abc/flink/ttengine_predict/dt=2017-12-27/ | awk '' > files0.txt

#迴圈遍歷,提取所需資料

cat ./files0.txt | while read line

do echo "$line"

hadoop fs -ls $line | awk '' > files1.txt

cat ./files1.txt | while read fname

do echo "$fname"

_path=`echo $fname | awk -f'.' ''`

hadoop fs -mv $fname $_path

#echo $_path

done

done

shell遍歷hdfs上的檔案目錄

背景 需要批量把hdfs上某個目錄中的所有以.pending 結尾的檔案,去掉.pending字尾。主要原因是建立的hive外表無法讀取.tmp或.pending的檔案,所以需要去掉字尾。hdfs上檔案的結構是根目錄 data test flink ttengine predict 下有dt 201...

Shell 檢查HDfS檔案

tip 假設要檢查的路徑為check path bytes獲取檔案大小,單位為位元組 base為轉換單位的基準,我這裡取1g,所以是1x1024x1024x1024bytes,其他單位轉換同理 第三步real只需要做除法即可,bc是shell自帶運算處理,這裡做2位小數保留,其餘同理 獲取大小 by...

shell遍歷檔案

有時候要對某個資料夾下面的所有檔案做同樣的處理,比如對每個檔案統計行數,這時用遍歷檔案的方式就很簡單了。for i in ls do wc l i done 55552 f123.txt 55819 f124.txt 56118 f125.txt 56404 f126.txt 56633 f127....