【问题标题】:getting close to real-time with hadoop使用 hadoop 接近实时
【发布时间】:2010-05-23 11:30:26
【问题描述】:

我需要一些很好的参考资料来将 Hadoop 用于实时系统,例如响应时间很短的搜索。我知道 hadoop 有 hdfs 的开销,但是使用 hadoop 执行此操作的最佳方法是什么。

【问题讨论】:

    标签: hadoop real-time


    【解决方案1】:

    您需要提供更多有关系统目标和挑战的信息,才能获得好的建议。也许 Hadoop 不是您所需要的,而您只需要一些分布式系统 foo? (哦,你完全确定你需要一个分布式系统吗?在几台大内存机器上使用复制数据库可以做很多事情。

    对你的问题一无所知,我会给你一些在黑暗中尝试回答的尝试。

    1. 看看 HBase,它在 HDFS 之上提供了一个结构化的可查询数据存储,类似于 Google 的 BigTable。 http://hadoop.apache.org/hbase/
    2. 您可能只需要一些帮助来管理数据的复制和分片。查看 Gizzard,一个可以做到这一点的中间件:http://github.com/twitter/gizzard
    3. 处理总是可以提前完成的。如果这意味着你实现了太多数据,那么像 Lucandra 这样的东西可能会有所帮助—— Lucene 作为后端运行在 Cassandra 之上? http://github.com/tjake/Lucandra

    如果您真的需要在查询时进行认真的处理,那么方法是运行专门的进程来执行您需要的特定类型的计算,并使用 Thrift 之类的东西来发送计算请求并接收返回的结果.优化它们以将所有需要的数据存储在内存中。然后,接收查询的进程本身只能将问题分解成碎片,将碎片发送到计算节点,然后收集结果。这听起来像 Hadoop,但并不是因为它是为计算预加载数据的特定问题而设计的,而不是用于任意计算的通用计算模型。

    【讨论】:

    • 酷!这对我来说似乎是一个好的和新的指针列表。我会看看这些。
    【解决方案2】:

    Hadoop 完全不适合这种需求。它针对运行几分钟到几小时甚至几天的大批量作业进行了明确优化。

    FWIW,HDFS 与开销无关。事实上,Hadoop 作业将一个 jar 文件部署到每个节点上,设置一个工作区域,启动每个作业运行,通过文件在计算阶段之间传递信息,与作业运行器通信进度和状态等。

    【讨论】:

    • 嗯!那么当查询需要大数据处理时,有什么替代方案可以提供实时搜索体验
    • 使用像 Lucene 这样的搜索引擎。
    • 虽然我的代码在后端使用了lucene,但是我的数据非常大,当查询进来时我在lucene中做了很多文档的处理,这个处理不能事先完成。所以这个处理需要以分布式方式完成。
    • 这可能有助于修正您的问题,详细说明您正在尝试做什么。特别是,Google 在为查询提供服务时不会触及其文档。您的系统做了哪些工作需要比 Google 搜索更多的工作?
    • 好的!我的文档是一些问题(FAQ,数以百万计),任务是将传入的嘈杂查询与其中一个问题(我将在这里称为 FAQ)进行匹配。因此,为了将嘈杂的查询与常见问题解答之一相匹配,我找到了用户查询(嘈杂的)和常见问题解答术语之间的相似性,这需要进行大量处理,例如计算 LCS、Levenshtein 距离、同义词字典查找等. 简而言之,根据经验观察,这在计算上有点昂贵。 FAQ 数据库跨越 GB 的数据(因为它还包含答案和一些其他信息)。
    【解决方案3】:

    这个查询很旧,但它需要一个答案。即使有数以百万计的文档,但不像常见问题解答文档那样实时更改,用于分发的 Lucene + SOLR 应该足以满足需求。 Hathi Trust 使用相同的组合为数十亿份文档编制索引。

    如果索引是实时变化的,那就完全不同了。甚至 Lucene 在更新其索引时也会遇到问题,您必须查看实时搜索引擎。已经有一些尝试实时改造 Lucene,也许它应该可以工作。您还可以查看 HSearch,这是一个基于 Hadoop 和 HBase 构建的实时分布式搜索引擎,托管在 http://bizosyshsearch.sourceforge.net

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      相关资源
      最近更新 更多