分享

hadoop怎么查看文件放在哪台计算机?

395455030 发表于 2015-12-3 13:28:23 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 11956
    我知道hadoop把数据装在一些块里,一个块的位置可能在多个datanode中的随机一个,怎么知道在哪个?我看以前版本的hadoop的50070端口对应的网页似乎能查询。我用2.7.1版的50070界面有overview、datanodes、datanode volume failure等几个选项,点下去都没反应,只有browse the file system和logs可以用。选择browse the file system,找到我要看的文件,点进去,只能看到这样的信息:
    Block ID: 1073741825
    Block Pool ID: BP-683251717-192.168.163.129-1449043564609
    Generation Stamp: 1001
    Size: 88
    Availability:
        * slave1
    我的namenode的IP是192.168.163.129(主机名master);datanode两个是192.168.163.129、192.168.163.130(主机名slave1)。
    测试后发现Block Pool ID和Availability都不是反应文件存储的机器的,那这二个表示什么意思?
    50070页面的datanodes名字上看感觉可以查询当前namenode连接了哪些datanode,datenode状态如何,实际点下去没反应,那么多按键真的不能用吗?
    我想知道怎么查看一个文件有哪些块,都放在哪台机器上啊?

已有(2)人评论

跳转到指定楼层
Joker 发表于 2015-12-3 14:24:08
在fsimage中,并没有记录每一个block对应到哪几个Datanodes的对应表信息,而只是存储了所有的关于namespace的相关信息。而真正每个block对应到Datanodes列表的信息在hadoop中并没有进行持久化存储,而是在所有Datanode启动时,每个Datanode对本地磁盘进行扫描,将本Datanode上保存的block信息汇报给Namenode。

【查看文件的时候从元数据中就可以知道该文件有几个文件块。而且这个block的所在的DT地址可能会变化】
回复

使用道具 举报

starrycheng 发表于 2015-12-3 17:15:54
彻底了解namenode
http://www.aboutyun.com/thread-15630-1-1.html

这篇对楼主可能有所帮助

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条