V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
aheadlead
V2EX  ›  问与答

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

  •  
  •   aheadlead · 2014-12-25 10:45:30 +08:00 · 3553 次点击
    这是一个创建于 3648 天前的主题,其中的信息可能已经有所发展或是发生改变。
    20 条回复    2014-12-25 12:43:55 +08:00
    vivid
        1
    vivid  
       2014-12-25 10:51:11 +08:00   ❤️ 1
    fgrep 很快的 。昨天在一个100G的大文件中查找 也不慢啊。
    有上传这会,早结束了。
    icedx
        2
    icedx  
       2014-12-25 10:52:19 +08:00 via Android   ❤️ 1
    不适合...
    aheadlead
        3
    aheadlead  
    OP
       2014-12-25 10:53:49 +08:00 via iPhone
    @vivid 如果是对查询要求1分钟内返回呢...我这机器多
    aheadlead
        4
    aheadlead  
    OP
       2014-12-25 10:54:08 +08:00 via iPhone
    @icedx 有啥简单的解决方案吗
    hahastudio
        5
    hahastudio  
       2014-12-25 10:59:23 +08:00   ❤️ 1
    不适合吧?
    因为这个大文件你不能拆,在分发的时候就不好办
    如果刚好匹配结果被拆到两个分片呢?
    而且网络里传这个整块的大文件也会是噩梦= =

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

    其实我觉得这个场景连 hadoop 都不用,自己写一个简单的 master/slave,slave 就接受要搜索的范围和搜索内容,把结果返回给 master 就行了= =
    aheadlead
        15
    aheadlead  
    OP
       2014-12-25 11:10:04 +08:00 via iPhone
    @hahastudio 有现成的工具吗..我已经在自己写了...但是最近考试太多...希望能尽快搞定
    vivid
        16
    vivid  
       2014-12-25 11:14:59 +08:00
    @aheadlead 频繁使用
    1) 上传文件到hdfs
    2) 用bash + hadoop stream 尝试,机器多 1分钟内绝对可以完成的啊
    icedx
        17
    icedx  
       2014-12-25 11:52:41 +08:00 via Android
    让每台机器从不同的位置读…
    aheadlead
        18
    aheadlead  
    OP
       2014-12-25 11:55:26 +08:00 via iPhone
    @icedx 有现成的轮子吗?
    icedx
        19
    icedx  
       2014-12-25 12:19:10 +08:00
    @aheadlead 米有 然后你可以试着用缓存...
    weikey
        20
    weikey  
       2014-12-25 12:43:55 +08:00 via iPhone
    一次性的就没必要搭集群啦,常用的机器多,可考虑spark
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3434 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:37 · PVG 12:37 · LAX 20:37 · JFK 23:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.