在 256G 的巨大的二进制文件中匹配二进制子串,这适合交给 Hadoop 吗?谢

2014-12-25 10:45:30 +08:00
 aheadlead
3553 次点击
所在节点    问与答
20 条回复
vivid
2014-12-25 10:51:11 +08:00
fgrep 很快的 。昨天在一个100G的大文件中查找 也不慢啊。
有上传这会,早结束了。
icedx
2014-12-25 10:52:19 +08:00
不适合...
aheadlead
2014-12-25 10:53:49 +08:00
@vivid 如果是对查询要求1分钟内返回呢...我这机器多
aheadlead
2014-12-25 10:54:08 +08:00
@icedx 有啥简单的解决方案吗
hahastudio
2014-12-25 10:59:23 +08:00
不适合吧?
因为这个大文件你不能拆,在分发的时候就不好办
如果刚好匹配结果被拆到两个分片呢?
而且网络里传这个整块的大文件也会是噩梦= =

不知道你是在什么场景下要做这件事情,试试其他的方案?不要匹配二进制子串呢?
aheadlead
2014-12-25 11:00:06 +08:00
@hahastudio 这个大文件每台机器都有..
aheadlead
2014-12-25 11:00:32 +08:00
@hahastudio 场景:折腾
aheadlead
2014-12-25 11:01:55 +08:00
@hahastudio 匹配时分片可以有一定重合哇。
重合的距离是关键词(用的ac自动机)最长的长度减一
hicdn
2014-12-25 11:02:02 +08:00
你首先得解决在文件切割时你的目标字符串不被截断问题
aheadlead
2014-12-25 11:03:33 +08:00
@hicdn 见8楼
aheadlead
2014-12-25 11:05:15 +08:00
@vivid 另外grep似乎不适合多字符串匹配
jerry2014
2014-12-25 11:06:16 +08:00
可以写个配置文件,指定不同偏移量,然后把配置文件提交给Hadoop。。。
aheadlead
2014-12-25 11:07:12 +08:00
@jerry2014 请推荐一个hadoop快速入门指南 感谢🙏
hahastudio
2014-12-25 11:08:55 +08:00
@aheadlead 那都有的话其实也算好办啊
你分发的就是分片的头尾,你已经想清楚头尾了啊

其实我觉得这个场景连 hadoop 都不用,自己写一个简单的 master/slave,slave 就接受要搜索的范围和搜索内容,把结果返回给 master 就行了= =
aheadlead
2014-12-25 11:10:04 +08:00
@hahastudio 有现成的工具吗..我已经在自己写了...但是最近考试太多...希望能尽快搞定
vivid
2014-12-25 11:14:59 +08:00
@aheadlead 频繁使用
1) 上传文件到hdfs
2) 用bash + hadoop stream 尝试,机器多 1分钟内绝对可以完成的啊
icedx
2014-12-25 11:52:41 +08:00
让每台机器从不同的位置读…
aheadlead
2014-12-25 11:55:26 +08:00
@icedx 有现成的轮子吗?
icedx
2014-12-25 12:19:10 +08:00
@aheadlead 米有 然后你可以试着用缓存...
weikey
2014-12-25 12:43:55 +08:00
一次性的就没必要搭集群啦,常用的机器多,可考虑spark

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

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

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

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

© 2021 V2EX