当前位置: 首页>>hadoop 1.0>> 阅读正文

HDFS小文件问题及解决方案

Category: hadoop 1.0 View: 172,263 Author: Dong
, , , , ,

  • 评论 (12)
  • 引用通告 (6)
发表评论 发起引用

  • 1楼大傻 回复

    Post: 2011-07-24 06:35

    2) client收到文件位置信息后,与不同namenode建立socket连接并行获取数据。
    请问楼主,这一句话好像有笔误吧。client在收到文件位置信息后,应该是与不同的datanode建立socket连接,并获取数据。是吗?

    [回复]

    Dong 回复:

    对,我已经改过来了,谢谢更正!

    [回复]

  • 2楼jww 回复

    Post: 2012-03-19 02:59

    har,sequence file还有map file都是用来解决小文存储的问题。那么对于需要经常编辑,以及实时性是否能满足呢(比如高并发的web环境)?从Hadoop设计用来面向大文件存储,高吞吐量,高延迟来看,这写文件的存储相当于把小文件打包,减少NameNode的压力。您有什么看法?

    [回复]

    Dong 回复:

    非常好的问题!HDFS存储的数据可以被MapReduce处理的话,应该对应某种key/value格式,而map file,sstable等都是key/value的格式。HDFS上存储的数据是不可以直接被修改的,实际上,即使最新版本,也只支持append操作,如果想支持随即读写(实时性),需要借助其它系统,如HBase,Cassandra,这些系统都可以把数据存到HDFS上,以便用MapReduce处理。 推荐你用HBase,现在又一些公司已经用它搭建实时搜索引擎,效果不错!

    [回复]

  • 3楼mesopodamia 回复

    Post: 2012-04-10 07:36

    datanode同时收到namenode和datanode的确认信息后,提交写操作。

    好像是收到namenode和client的确认信息,不知是不是笔误

    [回复]

  • 4楼ydzhang 回复

    Post: 2012-05-12 08:39

    国内的paper就是坑爹啊,确实就是把自己的数据打包一下存储在HDFS里,也能发文章…

    [回复]

  • 5楼追梦人 回复

    Post: 2012-05-14 10:57

    hadoop上层的hbase足已解决,不用自己再搞个系统

    [回复]

    Dong 回复:

    hbase主要是用来解决随机存取问题的,可通过类似于sequece file形式将文件打包成大文件,但问题是,有时应用没有随机存储的需求,只是想存储小文件,然后让MapReduce处理一下,不想为了解决这个问题引入一套hbase增加维护成本。
    如果系统中有大量随机存取需求,推荐引入hbase,顺带解决小文件问题。

    [回复]

  • 6楼neo 回复

    Post: 2013-03-27 09:59

    请问怎么查询一个文件的block保存在哪些datanode里面?我如果要自己写一个程序的话,是不是自己要一个一个去连接datanode并获取相关block数据?有相应的编程接口或者例子吗?

    [回复]

    Dong 回复:

    有,自己查,不要什么都问!

    [回复]

  • 7楼operabug 回复

    Post: 2013-04-27 14:13

    如何使用hbase处理二进制的小文件?比如好多个bmp,使用hbase如何处理?

    [回复]

    Dong 回复:

    存到key/value中的value中,key可以存一些描述信息。 另外,建议使用淘宝开源的TFS,更合适存图片文件。

    [回复]

  • 8楼operabug 回复

    Post: 2013-04-28 02:49

    看了网上的一些资料,觉得tfs好像稳定性还有待提高,不少人使用都出了问题

    另外,tfs和hadoop的结合似乎也没有找到相关资料(程序需要使用mapreduce)

    [回复]

  • 9楼俺就是乞丐 回复

    Post: 2013-10-21 02:24

    你好,我在查hadoop相关的问题,看到了你的博客。很受用。先谢谢了。
    有一个问题,“(2)写文件流程 1)……否则发送给client一些可用的namenode节点”这里是不是有笔误呢?是不是应该是datanode?

    [回复]

    Dong 回复:

    是笔误,已经改了。

    [回复]

  • 10楼花猫 回复

    Post: 2014-03-30 07:46

    老师您好。“将属于同一个课件的文件合并成一个大文件”。请问这个也是在hadoop里实现的吗?可以说说下是如何实现的吗?

    [回复]

  • 11楼cloudeagle 回复

    Post: 2014-03-31 13:58

    请教一下,请问有办法获取到HDFS中不同节点间数据块的传输速率么?
    test的benchmark中只看到测试分布式文件系统整体性能的DFSIO, 没有看到相关的资料,还是说只能自己写代码获取呢? 谢谢!

    [回复]

  • 12楼xgss2000 回复

    Post: 2015-02-06 06:33

    client将文件分块,并行存储到不同节点上datanode上
    这个不对,应该是Client将数据分片(64k)发送给第一个DN,第一个DN再给第二个DN,第二个再给第三个DN.

    [回复]

发表评论