为何选择Hadoop或Spark?有ElasticSearch

Riz*_*ryo 2 hadoop elasticsearch apache-spark

实际上,这里有类似的问题:https://stackoverflow.com/questions/23922404/elasticsearch-hadoop-why-would-i

但答案并不能让我满意.

我的问题很简单:

  1. 当ElasticSearch存在时,我们为什么要使用Hadoop或Spark?
  2. 它是什么,Hadoop的或火花,和ElasticSearch 没有?
  3. 如果算法是答案,我相信我在创建算法方面并不比Kimchy好.在Hadoop或Spark中,我们需要创建自己的算法.再次,为什么还有Hadoop或Spark?
  4. 答案说,"Elasticsearch是一个分布式搜索引擎,它不应该用作数据仓库."

为什么不将它用作数据仓库

感谢你并致以真诚的问候,

Rizki Sunaryo

Mat*_*ier 9

我离分布式计算专家很远,但我在这里遗漏了什么,或者你在比较两个完全不同的东西?

Hadoop是一个分布式批处理计算平台,允许您运行数据提取和转换管道.ES是一个搜索和分析引擎(或数据聚合平台),允许您将Hadoop作业的结果编入索引以用于搜索目的.

所以一个完整的管道将是这样的:

数据 - > Hadoop/Spark(MapReduce或其他范例) - > Curated Data - > ElasticSearch/Lucene/SOLR/etc.

您可能处于只想提取和/或转换数据的情况,并且不使用elasticsearch.您可能还处于数据源不需要或与分布式批处理范例一起使用的情况,在这种情况下,hadoop对您没用.

您可能会感到困惑的是ES提供elasticsearch-hadoop,直接插入Hadoop为您提供"一体化"解决方案,可以这么说.

希望比我更有知识的人也可以参与其中.

  • 如上所述,ES正在解决一个完全不同的问题,即数据聚合和索引.既然你已经在Hadoop和Spark中解决了Extract&Transform问题,那么你已经拥有了强大且经过验证的工具,我真的不明白为什么ES会尝试自己创建.是的,它们经常一起使用,但这并不意味着它们应该合并为一个(特别是如果你相信模块化).话虽如此,你说对,没有什么是不可能的...... (2认同)