Linux

cat 並拆分文件並上傳到 hdfs?

  • October 7, 2017

我正在嘗試實現這種情況,我可以拆分本地 linux 上的 gz 文件並將其作為部分解壓縮或壓縮文件上傳到 hdfs,而無需將拆分輸出寫入磁碟。嘗試以下命令後我遇到了問題。

下面的命令寫入本地磁碟,然後我可以上傳到我不想要的 hdfs:-

zcat ./file.txt.gz | tail  -n +2 | split -l 20 - file.part 


hdfs dfs -copyFromLocal ./*file.part* /folder/in/hdfs/

我想要這樣的東西可以實現嗎?:-

zcat ./file.txt.gz | tail  -n +2 | split -l 20 | gzip -d | hdfs dfs -put - /folder/in/hdfs/file.part

您可以避免拆分並自行進行拆分:

number_of_files=5 # for you to determine
zcat ./file.txt.gz | for((i=0;i<5;i++)); do
   head -n 20 | hdfs dfs -put - /folder/in/hdfs/file.part_$i
done

引用自:https://unix.stackexchange.com/questions/396695