bash—使用shell脚本将文件从unc复制到hdfs

oug3syen  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(223)

我在此路径中有unc路径文件夹 " //aloha/log/folderlevel1/folderlevel2/" 每个level2文件夹都有如下文件 "empllog.txt","deptlog.txt","adminlog.txt" 其他文件也很少。
如果这些文件夹是在过去24小时内创建的,我想复制它们的内容&仅当这3个文件存在于hdfs cloudera集群中时才复制。但是如果其中一个文件不存在,则不应复制该特定文件夹。我还需要保存folderstructure。
i、 在hdfs中应该是 "/user/test/todaydate/folderlevel1/folderlevel2" 我已经写了下面的shell脚本复制文件到hdfs与日期文件夹创建。但不确定如何进一步使用unc路径和其他标准。

day=$(date +%Y-%m-%d)

    srcdir="/home/test/sparkjops"
    stdir="/user/test/$day/"

    hadoop  dfs -mkdir $day /user/test

    for f in ${srcdir}/*

    do

if [ $f == "$srcdir/empllog.txt" ]

then

   hadoop dfs -put $f   $stdir

elif [  $f == "$srcdir/deptlog.txt" ]

then hadoop dfs -put $f  $stdir

elif [ $f == "$srcdir/adminlog.txt" ]

then hadoop dfs -put $f $stdir

fi

done

我试图改变unc路径如下。它什么也没做。没有错误&也没有复制内容。

srcdir="//aloha/log/*/*"

srcdir='//aloha/log/*/*'

srcdir="\\aloha\log\*\*"

谢谢你的帮助。谢谢。
编辑1:
我用代码sh-x调试模式运行它,也用bash-x(只是为了检查)。但它返回的文件未找到错误如下

test@ubuntu:~/sparkjops$ sh -x ./hdfscopy.sh
+ date +%Y-%m-%d
+ day=2016-12-24
+ srcdir= //aloha/logs/folderlevel1/folderlevel2
+ stdir=/user/test/2016-12-24/
+ hadoop dfs -mkdir 2016-12-24 /user/test
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.

mkdir: `2016-12-24': File exists
mkdir: `/user/test': File exists
+ //aloha/logs/folderlevel1/folderlevel2/* = //aloha/logs/folderlevel1/folderlevel2/empllog.txt.txt
./hdfscopy.sh: 12: ./hdfscopy.sh: //aloha/logs/folderlevel1/folderlevel2/*: not found
+ //aloha/logs/folderlevel1/folderlevel2/* = //aloha/logs/folderlevel1/folderlevel2/deptlog.txt.txt
./hdfscopy.sh: 12: ./hdfscopy.sh: //aloha/logs/folderlevel1/folderlevel2/*: not found
+ //aloha/logs/folderlevel1/folderlevel2/* = //aloha/logs/folderlevel1/folderlevel2/adminlog.txt.txt
./hdfscopy.sh: 12: ./hdfscopy.sh: //aloha/logs/folderlevel1/folderlevel2/*: not found
test@ubuntu:~/sparkjops$

但无法理解为什么它不是从这条道路上阅读。我也尝试过不同的转义序列(每个斜杠用双斜杠,正斜杠和windowfolderpath一样)。但都没用。所有人都抛出相同的错误消息。我不知道如何在脚本中读取此文件。任何帮助都将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题