Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何在hadoop中使用通配符chac检查文件是否存在_Shell_Hadoop_Hdfs - Fatal编程技术网

Shell 如何在hadoop中使用通配符chac检查文件是否存在

Shell 如何在hadoop中使用通配符chac检查文件是否存在,shell,hadoop,hdfs,Shell,Hadoop,Hdfs,我试图检查Hadoop中是否存在part-r文件。以下是示例。目录不存在。我正在尝试捕获返回值,并将在if-else条件下使用该值来显示消息并进行适当的处理 dir_1="/user/cloudera/asdf" dir_2=${dir_1}"/part*" dir_3="/user/cloudera/asdf/part-r-00000" dir_4="/user/cloudera/asdf/part-r" echo "Check 1. " ${dir_1} hadoop fs -test -

我试图检查Hadoop中是否存在part-r文件。以下是示例。目录不存在。我正在尝试捕获返回值,并将在if-else条件下使用该值来显示消息并进行适当的处理

dir_1="/user/cloudera/asdf"
dir_2=${dir_1}"/part*"
dir_3="/user/cloudera/asdf/part-r-00000"
dir_4="/user/cloudera/asdf/part-r"

echo "Check 1. " ${dir_1}
hadoop fs -test -e ${dir_1}
retval=$?
echo "1. status is " $retval

echo "Check 2. " ${dir_2}
hadoop fs -test -e ${dir_2}
retval=$?
echo "2. status is " $retval


echo "Check 3. " ${dir_3}
hadoop fs -test -e ${dir_3}
retval=$?
echo "3. status is " $retval

echo "Check 4. " ${dir_1}/part*
hadoop fs -test -e ${dir_1}/part*
retval=$?
echo "4. status is " $retval

echo "Check 5. "
hadoop fs -ls ${dir_2}
retval=$?
echo "5. Status is " $retval
输出

[cloudera@quickstart cc_poc]$ sh chk.sh
Check 1.  /user/cloudera/asdf
1. status is  1
Check 2.  /user/cloudera/asdf/part*
test: `/user/cloudera/asdf/part*': No such file or directory
2. status is  1
Check 3.  /user/cloudera/asdf/part-r-00000
3. status is  1
Check 4.  /user/cloudera/asdf/part*
test: `/user/cloudera/asdf/part*': No such file or directory
4. status is  1
Check 5. 
ls: `/user/cloudera/asdf/part*': No such file or directory
5. Status is  1
如果我完全使用目录或文件名,它只返回返回状态。但是如果我尝试使用*它会显示一个错误

我的问题 1.1和3(目录或完整文件名)未显示错误消息的原因 2.是否可以抑制该消息并单独返回其他消息的状态