我有一些本地数据文件(csv),我想将它们上传到AWS中的Hadoop hdfs。我想在没有先将文件上传到远程服务器,然后将文件复制到HDFS的情况下完成此操作。所以我按照this post在CLI中创建了一个单行内容。
现在为了加快进程并节省带宽,我想我可以压缩每个文件(本地),上传,解压缩(在远程服务器上),然后放入HDFS。
如何在我的pipline中添加压缩和解压缩?
以下是我目前的脚本:
java.util.Date
更新
经过一些实验,我想出了以下解决方案:
#! /bin/bash
DATA_FOLDER="~/data"
for fpath in $DATA_FOLDER/*; do
fname=`basename "$fpath"`
#echo $fname
cat $DATA_FOLDER/$fname | ssh namenode ". ~/.bash_profile; hdfs dfs -put - /data/ShenXianNongShangHang/$fname"
echo "Copied \"$fpath\" to HDFS."
done
答案 0 :(得分:0)
没有足够的代表发表评论。也许尝试这样的事情?
cat $ DATA_FOLDER / $ fname | gzip $ fname | ssh namenode“.~ / .bash_profile; gzip -d $ fname; hdfs dfs -put - / data / ShenXianNongShangHang / $ fname”