为什么选择hadoop或spark?有ElasticSearch

at0kjp5o  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(399)

实际上,这里也有类似的问题:https://stackoverflow.com/questions/23922404/elasticsearch-hadoop-why-would-i
但答案并不能让我满意。
我的问题很简单:
既然存在elasticsearch,为什么要使用hadoop或spark?
hadoop或spark有什么,而elasticsearch没有什么?
如果算法是答案的话,我相信我在创建算法方面并不比kimchy强。在hadoop或spark中,我们需要创建自己的算法。再说一遍,为什么还是hadoop或spark?
答案是:“elasticsearch是一个分布式搜索引擎,它不应该被用作数据仓库。”
为什么不把它用作数据仓库呢?
谢谢并致以最诚挚的问候,
里兹基·苏纳里奥

f45qwnt8

f45qwnt81#

我远不是一个分布式计算Maven,但我在这里遗漏了什么还是你在比较两个完全不同的东西?
hadoop是一个分布式批处理计算平台,允许您运行数据提取和转换管道。es是一个搜索和分析引擎(或数据聚合平台),允许你,比方说,索引hadoop作业的结果,以便进行搜索。
所以一个完整的管道应该是这样的:
数据-->hadoop/spark(mapreduce或其他范例)-->管理数据-->elasticsearch/lucene/solr/etc。
您可能只想提取和/或转换数据,而不使用elasticsearch。您还可能遇到这样的情况:您的数据源不需要分布式批处理范式,或者不适合分布式批处理范式,在这种情况下,hadoop对您没有任何用处。
您可能会感到困惑的是,es提供了elasticsearch hadoop,可以说,直接插入hadoop可以为您提供“一体化”解决方案。
希望有比我知识渊博的人也能参与进来。

gopyfrb3

gopyfrb32#

我也在问自己同样的问题,我想这几乎回答了我们现在的问题:
elasticsearch已经开始超越搜索引擎,并增加了一些分析和可视化功能,但它的核心仍然是一个主要的全文搜索引擎,对复杂的计算和作为查询一部分的聚合提供较少的支持。
所以这取决于你的用例(如此多的文本分析->elk;这么多的聚合和计算->spark)虽然很模糊:
elasticsearch和ApacheHadoop/spark可能在一些非常有用的功能上有重叠,但每个工具都有特定的用途,我们需要选择最适合给定需求的工具。如果我们只想通过关键字定位文档并执行简单的分析,那么elasticsearch可能适合这项工作。如果我们有大量的数据需要各种不同类型的复杂处理和分析,那么hadoop提供了最广泛的工具和最灵活的方式。但好在我们不局限于一次只使用一种工具或技术。我们总是可以根据我们需要的结果来组合。众所周知,hadoop和elasticsearch结合使用效果最好。未来,随着这些技术的发展速度,这些界限将变得更加模糊。
参考文献:
https://thecustomizewindows.com/2017/02/apache-hadoop-spark-vs-elasticsearch-elk-stack/

相关问题