我每天得到5个文件(通过wget)保存到/tmp中,用bash脚本加载到hdfs中。
唐纳德鸭-2013-07-20.zip
米老鼠-2013-07-20.zip
goofygoof-2013-07-20.zip文件
冥星-2013-07-20.zip
大灰狼-2013-07-20.zip
文件名的日期部分是动态的。
然后我该如何告诉hadoop加载5个文件中的每一个?我听说了一个循环。
for file in /tmp/*; do
echo "Running ${file##*/} ...."
done
我要用“hadoop fs-put…”语句替换回显行吗?会是什么样子?
2条答案
按热度按时间2lpgd9681#
下面是我要做的:
这实际上会获取目录中包含特定日期并以.zip结尾的所有文件,并将这些文件中的每个文件上载到hdfs中的特定目录。
bjp0bcyl2#
你可以这样做:
解释
这些名称存储在一个数组中
$names
. 因此,我们可以用for file in "${names[@]}"
. 同时,我们将日期存储在$when
,以便与格式匹配$file-$when.zip
.