指令碼檔名為unzip-batch.sh
#批量解壓壓縮檔案,將檔案解壓到指定目錄
#!/bin/bash
for zipfilenamefull in `ls ./*.zip`
do #echo "$zipfilename"
zipfilename=`basename $zipfilenamefull`
filename=$(basename $zipfilename .zip)
echo "$filename"
unzip $zipfilename -d $filename
done
指令碼檔名為file-merge.sh
#先檢查是否存在txtfile目錄,若不存在,則建立
#由於當前目錄小檔案數目巨大,若用ls 命令時出現argument list too long錯誤
#所以利用find 命令,將當前小檔案合併成乙個大檔案
#!/bin/bash
if [ ! -d txtfile ];then
mkdir txtfile
fifor catalognamefull in ` ls -l |grep '^d'|awk ''`
do #echo $catalognamefull
echo " find ./$catalognamefull -type f -name '*.txt' -exec cat {} \; >./txtfile/$catalognamefull.txt"
find ./$catalognamefull -type f -name '*.txt' -exec cat {} \; > ./txtfile/$catalognamefull.txt
done
hive小檔案合併機制 Hive小檔案合併遷移
1 需求 2 小檔案合併 我們通過sparksql進行小檔案合併,首先開啟spark shell申請足夠多的資源 spark shell master yarn driver memory 20g driver cores 4 executor cores 6 num executors 18 ex...
MapReduce大量小檔案問題
1.預設情況下,textinputformat對任務的切片機制是按檔案規劃切片,不管檔案多小,都會是乙個單獨的切片,都會交給maptaskz這樣,如果有大量小檔案,就會產生大量的maptask,處理效率及其低下 2.優化方法 最好的辦法 在資料處理系統的最前端 預處理 採集 就將小檔案合併成大檔案,...
快速刪除大量小檔案
由於bash會展開例如 rm aa 這樣的命令 如果後面的檔案太多就會報引數太長,所以有時候刪除大量小檔案就不適合用rm了 可以使用find先查詢在刪除 就不會出現上面那種報錯問題,可是還有乙個問題檔案太多的話 exec rm 完全沒有效率,一兩個小時估計也就只能刪除幾十萬的檔案 對於需要刪除百萬為...