如何从hadoop的Hdfs上查询文件

打算设计一个基于Hadoop的网络硬盘,包含文件搜索功能。Hadoop会在namenode创建整个文件系统的索引,问题:1如何查看该索引并对该索引进行操作(api);2有... 打算设计一个基于Hadoop的网络硬盘,包含文件搜索功能。Hadoop会在namenode创建整个文件系统的索引,问题:1如何查看该索引并对该索引进行操作(api);2有没有专门的api可以对hdfs上的文件进行查找
先给50分,问题解决再给200分。
希望大家帮忙
展开
 我来答
ama2000
2012-06-05 · TA获得超过203个赞
知道答主
回答量:17
采纳率:0%
帮助的人:8.6万
展开全部
A1.该索引叫FsImage, 但没有对外提供api, 参考 附录的链接1
整个文件系统的名字空间,包括数据块到文件的映射、文件的属性等,都存储在一个称为FsImage的文件中,这个文件也是放在Namenode所在的本地文件系统上。

A2. FS Shell, 详细请参考链接2
1)hadoop fs -ls
功能跟shell 的 ls 命令相同
2)hadoop fs -lsr
ls命令的递归版本。类似于Unix中的ls -R。

如果要实现复杂的查找功能,可以考虑用下述方式
hadoop fs -lsr / | awk/sed/grep .....

链接1:FsImage/EditLog的官方说明
http://hadoop.apache.org/common/docs/r0.21.0/cn/hdfs_design.html#%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%85%83%E6%95%B0%E6%8D%AE%E7%9A%84%E6%8C%81%E4%B9%85%E5%8C%96

链接2:HDFS shell
http://hadoop.apache.org/common/docs/r0.21.0/cn/hdfs_shell.html#ls
追问
脚本命令我知道用法,但不知道API,http://hadoop.apache.org/common/docs/r1.0.2/api/里面的org.apache.hadoop.contrib.index.lucene是否提供了index的api呢?我查了好多次但也没看出个所以然,你可以帮我查一下吗?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
15811207096
2012-06-12
知道答主
回答量:14
采纳率:0%
帮助的人:7.2万
展开全部
java API:
FileStatus[] status = fs.listStatus(paths);
Path[] listedPaths = FileUtil.stat2Paths(status);
for(Path p : listedPaths) {
System.out.println(p);
}
追问
这个我会 就是请教一下有没有直接从Hadoop的索引文件(FsImage)里检索的API
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式