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

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

  •  1
     
  •   dhairoot Nov 15, 2018 6092 views
    This topic created in 2737 days ago, the information mentioned may be changed or developed.

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

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


    如果是后者。。。
    dhairoot
        17
    dhairoot  
    OP
       Nov 15, 2018 via Android
    @est hdfs 上和本地上的文件是一样的
    dhairoot
        18
    dhairoot  
    OP
       Nov 15, 2018 via Android
    @dawncold 我现在测试在本地多线程解压,但是因为都是小文件,每秒 io 次数很多,但是读写速度只能达到 10mb/s
    mmtromsb456
        19
    mmtromsb456  
       Nov 15, 2018   1
    要考虑磁盘的 IOPS 吧..小文件多线程并发解压应该算个低队列深度 IO.你先确认下 IOPS 到达你的 SSD 瓶颈没有.而不是看读写速度
    20015jjw
        20
    20015jjw  
       Nov 15, 2018 via Android
    为啥要 mapreduce.~
    est
        21
    est  
       Nov 15, 2018
    @dhairoot 完全不一样。hdfs 的 io 成本很高。解压效率应该不是瓶颈。。纯粹是你小文件 open() 的瓶颈。
    atomstar
        22
    atomstar  
       Nov 15, 2018
    处理 zip 里面的数据可以用 mr,但是就解压 zip,为什么要和 mr 扯上关系呢
    About     Help     Advertise     Blog     API     FAQ     Solana     5910 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 86ms UTC 02:01 PVG 10:01 LAX 19:01 JFK 22:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86