Can*_*ic3 7 terminal hadoop hdfs hadoop2
我知道从终端,可以执行find
命令来查找文件,例如:
find . -type d -name "*something*" -maxdepth 4
Run Code Online (Sandbox Code Playgroud)
但是,当我在hadoop文件系统中时,我还没有找到办法做到这一点.
hadoop fs -find ....
Run Code Online (Sandbox Code Playgroud)
抛出错误.
人们如何遍历hadoop中的文件?我正在使用hadoop 2.6.0-cdh5.4.1
.
hadoop fs -find
在Apache Hadoop 2.7.0中引入.很可能你使用的是旧版本,因此你还没有.请参阅:HADOOP-8989了解更多信息.
在此期间你可以使用
hdfs dfs -ls -R <pattern>
Run Code Online (Sandbox Code Playgroud)
例如:hdfs dfs -ls -R /demo/order*.*
但这并不像"发现"那样强大,缺乏一些基础知识.据我所知,人们一直在编写脚本来解决这个问题.
小智 5
如果您使用的是 Cloudera 堆栈,请尝试使用查找工具:
org.apache.solr.hadoop.HdfsFindTool
Run Code Online (Sandbox Code Playgroud)
将命令设置为 bash 变量:
COMMAND='hadoop jar /opt/cloudera/parcels/CDH/lib/solr/contrib/mr/search-mr-job.jar org.apache.solr.hadoop.HdfsFindTool'
Run Code Online (Sandbox Code Playgroud)
用法如下:
${COMMAND} -find . -name "something" -type d ...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9556 次 |
最近记录: |