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

2018-11-15 09:32:11 +08:00
 dhairoot

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

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


如果是后者。。。
dhairoot
2018-11-15 15:01:32 +08:00
@est hdfs 上和本地上的文件是一样的
dhairoot
2018-11-15 15:03:02 +08:00
@dawncold 我现在测试在本地多线程解压,但是因为都是小文件,每秒 io 次数很多,但是读写速度只能达到 10mb/s
mmtromsb456
2018-11-15 16:01:36 +08:00
要考虑磁盘的 IOPS 吧..小文件多线程并发解压应该算个低队列深度 IO.你先确认下 IOPS 到达你的 SSD 瓶颈没有.而不是看读写速度
20015jjw
2018-11-15 16:02:15 +08:00
为啥要 mapreduce.~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/507999

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX