推荐的大数据应用程序设置

时间:2015-01-09 18:58:01

标签: solr elasticsearch cassandra hive apache-pig

我目前正在开展一项需要支持的长期项目:

  • 通过RESTful服务进行大量快速读/写操作
  • 分析引擎不断阅读和理解数据

至关重要的是,Google Analytics引擎的性能不会受到来自API调用的读/写量的影响。

因此,我认为我可能不得不使用"前端"数据库和某种"后端"数据仓库。我还需要像Elastic Search或Solr索引存储在数据仓库中的数据。

问题:

  1. 这是推荐设置吗?替代方案是什么?
  2. 如果是这样......

    1. 我考虑将Hive或Pig用于数据仓库,将Elastic Search或Solr用作搜索引擎。已知哪种组合可以更好地协同工作?
    2. 最后......

      1. 我认真考虑将Cassandra作为" fron-end"数据库。 Cassandra和Hadoop之间的关系是什么?何时/为什么要将它们放在一起工作而不仅仅是Cassandra?
      2. 请注意,我的目的不是开始讨论哪些更好,而是要了解如何更有效地使用它们。如果它有所不同,主要是代码是用Scala和Java编写的。

        我真的很感谢你的帮助。我基本上都在学习,所有的评论都非常有帮助。

        谢谢。

2 个答案:

答案 0 :(得分:1)

首先让我们谈谈Cassandra

这是一个具有最终一致性的NoSQL数据库,这对您来说基本上意味着Cassandra集群中的不同节点可能具有不同的快照'在存在群集间通信/可用性问题的情况下的数据。但数据最终会保持一致。

因为你认为它是一个前端'数据库您需要了解的是如何为数据建模。 Cassandra可以利用索引,但您仍需要预先定义访问模式。

通常Cassandra和Hadoop之间没有任何关系(除了两者都是用Java编写的),但Datastax发行版(企业版)直接从Cassandra获得Hadoop支持。

作为一般工作流程,您可以从您的小型'中读取/写入最新数据(比如说 - 最后24小时)。数据库表现出足够的性能(Cassandra对它有很好的支持),你可以将任何超过X(超过24小时)的东西移到一个长期存储空间'比如Hadoop,你可以运行所有类型的Map Reduce等。

关于文本搜索,它实际上取决于你需要什么 - 弹性搜索是对Solr和反向的竞争。你可以在这里看到自己如何比较http://solr-vs-elasticsearch.com/

答案 1 :(得分:0)

至于你的第三个问题,

我认为Cassandra更像是一个保存数据的数据库。

Hadoop负责提供一个计算模型,让您分析大数据 卡桑德拉。 因此将Cassandra与Hadoop结合起来非常有帮助。

还有其他可以考虑的方法,例如与mongo和hadoop结合使用, 因为mongo支持hadoop和它的数据之间的mongo-connector。

此外,如果您有一些搜索要求,您也可以使用solr,直接从mongo生成索引。