首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
拉钩
V2EX  ›  Hadoop

大量 zip 压缩包,每一个都很小, 10M 以内,如何利用 MapReduce 实现快速解压呢?

  •  1
     
  •   dhairoot · 31 天前 · 1670 次点击
    这是一个创建于 31 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大量 zip 压缩包,每一个都很小,10M 以内,如何利用 MapReduce 实现快速解压呢?

    22 回复  |  直到 2018-11-15 16:07:09 +08:00
        1
    ym1ng   31 天前
    自己写 InputFormat (别问我怎么写有没有资料啥的,逃~
        2
    dhairoot   31 天前
    @ym1ng 自己实现了解压工作,但是现在的问题是速度异常慢
        3
    dhairoot   31 天前
    @ym1ng 我是参考这个博主写的代码实现解压的,http://cutler.io/2012/07/hadoop-processing-zip-files-in-mapreduce/
        4
    Vamposine   31 天前 via iPhone   ♥ 1
    你这个瓶颈是磁盘 io 吧
        5
    dawncold   31 天前
    如果你只是想解压这些 zip 文件的话,多开几个进程或者线程,和 CPU 个数差不多,一个个解压就挺快吧?当然如果有很多资源可用,确实可以搞分布式解压,就行 mapreduce 一样?
        6
    dhairoot   31 天前
    @Vamposine 但是目前解压速度远远没到磁盘 io 的瓶颈
        7
    Valyrian   31 天前
    多开几个进程同时解
    为什么要扯到 mapreduce 上去
        8
    Ediacaran   31 天前
    线程池足够了把
        9
    dhairoot   31 天前
    @dawncold 现在的情况是总共有 16T 文件,通过手动的把文件分开放在不同电脑上,开多线程去解压就已经非常耗时了,所以才想通过上传到 hdfs,利用 MapReduce 解压,。但是目前发现解压速度太慢了,完全不知道因为什么。
        10
    dawncold   31 天前
    @dhairoot 这个不好说呢,分布式解压也得看你有多少资源可以被用起来,是有闲置的资源吗,还是解压速度已经够好了只是达不到心理预期?
        11
    AnyISalIn   31 天前
    MapReduce 肯定没有本地多线程解压快的
        12
    hearfish   31 天前
    不同压缩格式的解压速度是不一样的,先看看你的压缩格式能支持多快的速度吧
        13
    meisky6666   31 天前
    应该用 c 语言来写
        14
    surfire91   31 天前
    这个没必要 MapReduce 吧,你这个全是小任务,就多进程 /线程来好了,效率肯定比 MapReduce 高。
        15
    cyhulk   31 天前
    forkjoinpool
        16
    est   31 天前
    你是说 hdfs 上有大量 zip 文件,还是说你本地硬盘上有很多小 zip 文件想用 mapreduce 加速?


    如果是后者。。。
        17
    dhairoot   31 天前 via Android
    @est hdfs 上和本地上的文件是一样的
        18
    dhairoot   31 天前 via Android
    @dawncold 我现在测试在本地多线程解压,但是因为都是小文件,每秒 io 次数很多,但是读写速度只能达到 10mb/s
        19
    mmtromsb456   31 天前   ♥ 1
    要考虑磁盘的 IOPS 吧..小文件多线程并发解压应该算个低队列深度 IO.你先确认下 IOPS 到达你的 SSD 瓶颈没有.而不是看读写速度
        20
    20015jjw   31 天前 via Android
    为啥要 mapreduce.~
        21
    est   31 天前
    @dhairoot 完全不一样。hdfs 的 io 成本很高。解压效率应该不是瓶颈。。纯粹是你小文件 open() 的瓶颈。
        22
    atomstar   31 天前
    处理 zip 里面的数据可以用 mr,但是就解压 zip,为什么要和 mr 扯上关系呢
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1583 人在线   最高记录 4019   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 20ms · UTC 16:24 · PVG 00:24 · LAX 08:24 · JFK 11:24
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1