我想检查hdfs中是否存在文件。我正在使用
if $(hadoop fs -test -e $myfilewithpath) ; then echo "ok";else echo "not ok"; fi

现在我收到一条错误消息,如
test: `/data/bi/udm/incoming/Viewership/year=2016/month=02/day=26/hour=07/part-m-*.avro': No such file or directory
not ok

我在路径中期待的文件可以是任何映射器输出文件,即它可以是part-m-00000.avro
,也可以是part-m-00099.avro
,这就是我在我使用*
的原因像part-m-*.avro
一样搜索。
但是我们可以消除以下消息并仅输出not ok
test: `/data/bi/udm/incoming/Viewership/year=2016/month=02/day=26/hour=07/part-m-*.avro': No such file or directory

答案 0 :(得分:1)
我可以通过以下代码解析它
if $(hadoop fs -ls $tilldirectorypath|grep "part-m-*.avro") ; then echo "ok";else echo "not ok"; fi
Where tilldirectorypath=/data/bi/udm/incoming/Viewership/year=2016/month=02/day=26/hour=07
And previous path defined as myfilewithpath=/data/bi/udm/incoming/Viewership/year=2016/month=02/day=26/hour=07/part-m-*.avro