2017-04-25 24 views
0

我想檢查是否有一個HDFS位置獲取錯誤的結果,而尋找一個HDFS目錄內的Avro文件

[[email protected] scripts]$ hdfs dfs -ls /user/cloudera/output_files/file_date_2017-04-05 

Found 11 items 
-rw-rw---- 2 cloudera cloudera   0 2017-04-24 13:57 /user/cloudera/output_files/file_date_2017-04-05/_SUCCESS 
-rw-rw---- 2 cloudera cloudera  781714 2017-04-24 13:56 /user/cloudera/output_files/file_date_2017-04-05/part-r-00000-7e1d4e4e-9166-4744-b73b-095a7cc0e090.avro 
-rw-rw---- 2 cloudera cloudera  782132 2017-04-24 13:56 /user/cloudera/output_files/file_date_2017-04-05/part-r-00001-7e1d4e4e-9166-4744-b73b-095a7cc0e090.avro 
-rw-rw---- 2 cloudera cloudera  782467 2017-04-24 13:56 /user/cloudera/output_files/file_date_2017-04-05/part-r-00002-7e1d4e4e-9166-4744-b73b-095a7cc0e090.avro 
-rw-rw---- 2 cloudera cloudera  785117 2017-04-24 13:56 /user/cloudera/output_files/file_date_2017-04-05/part-r-00003-7e1d4e4e-9166-4744-b73b-095a7cc0e090.avro 

但是當我申請以下HDFS命令我進去一個或多個可用的Avro文件沒有。

[[email protected] scripts]$ hdfs dfs -ls /user/cloudera/output_files/file_date_2017-04-05/* | grep "part*.avro" 
[[email protected] scripts]$ echo $? 
1 
[[email protected] scripts]$ hdfs dfs -ls /user/cloudera/output_files/file_date_2017-04-05/ | grep "part*.avro" 
[[email protected] scripts]$ echo $? 
1 

我期待0,因爲有位於HDFS位置裏面很多的Avro要打印的文件。

有人能幫助我在什麼地方出了錯在這個上面的命令

回答

1

在這裏,你將需要.*grep匹配文件名模式之間的零個或多個字符。

hdfs dfs -ls /user/cloudera/output_files/file_date_2017-04-05/ | grep "part.*\.avro" 

或者,如果只需要退出代碼,則可以使用-test

hdfs dfs -test -e /user/cloudera/output_files/file_date_2017-04-05/part*.avro 
echo $? 
0 
相關問題