`
weitao1026
  • 浏览: 1058183 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Elasticsearch与hadoop比较

 
阅读更多

过去的几年的日志分析领域,开源搜索引擎Elasticsearch已经变得越来越流行。它与其开源的服务器端的日志收集产品Logstash,其开源可视化工具kibana一起组成了ELK分析组合。这个功能强大的组合正蓄势待发。

 

Elasticsearch是一个基于Lucene的分布式搜索服务器。它存储json格式的文档数据,有基于RESTful的操作接口。利用Elasticsearch可以方便的在任何Web应用中集成搜索应用。另外它更有出色的聚合功能(aggregation),能轻松的对数据进行统计分析 ,这一点上Elasticsearch已经超越了其最初的纯搜索引擎的角色,但是如果真正用它来做为复杂的数据分析工具,它能打败hadoop或spark吗?

 

Elasticsearch流行的原因

 

1. Elasticsearch集群实例很容易搭建。

2. 基于json格式的查询语言比开发MapReduce或spark系统更容易掌握。

3. 开发人员可以很方便的将Elasticsearch集成到Hadoop中。

 

这些都是非常引人注目的特性,利用Elasticsearch能快速搭建起一套分析系统。但是否可以认为Elasticsearch就是一个高度可用的数据分析平台了?要成为一个成熟的高可用的数据分析平台,一个高可用的数据存储系统和一套可以支撑复杂数据的计算框架是必不可少的。

 

对于分布式数据存储,Elasticsearch集群中的数据一致性,正是我们担心的问题之一。正常情况下,集群中所有的节点,应该对集群中master的选择是一致的,这样获得的状态信息也应该是一致的,由于Elasticsearch集群中每个节点都是状态维护者,在集群中网络不稳定的情况下就有可能出现集群脑裂(不同的节点对master节点的选择出现了异常)。如图所示正常环境下的Elasticsearch集群。

 

 

当出现网络异常时,主节点丢失,不同的节点对master节点的选择出现了异常。

 

 

这意味着如果要保证数据的一致性和完整性,我们必须把数据储存在一个更可靠的数据库中。

 

与Elasticsearch不同,在Hadoop 里中有效的避免了脑裂情况的出现。如下图

 

 

主namenode维护datanode状态,主备namenode同步信息;保证任何时刻保证只使用一个主namenode来管理集群中的datanode状态。

 

Elasticsearch拥有功能强大的聚合统计和全文搜索功能,可以轻松的用于网络问题分析,如404错误计数,页面浏览量,用户访问统计信息等。但它缺少类似标准SQL中的join或子查询的功能。Elasticsearch不支持查询结果的额外处理或分析的中间数据的输出,也不支持数据集的转换(即一个100万行的表,使用分析处理后,成为另一个100万行的表),故不太适合处理复杂的计算逻辑。

 

相反利用Hadoop的mapreduce或者spark计算框架,我们可以支持处理任何数据聚合和转换工作;我们还可以使用hive或spark SQL来降低我们的开发难度。

 

虽然Elasticsearch存在这些问题,但是它仍然是一个非常优秀的分布式计算框架,而且Elasticsearch可以非常方便的集成在hadoop中,我们也可以用它优秀的数据检索能力来构造自己的查询系统;同时Elasticsearch仍然在不停的版本迭代中,相信未来的版本中Elasticsearch会一步步解决这些问题。

分享到:
评论

相关推荐

    elasticsearch与hadoop比较

    Elasticsearch与Hadoop是当今大数据处理领域的两大重要技术,它们在数据存储、处理和检索方面各有所长。Elasticsearch是一个基于Lucene的分布式搜索服务器,其设计目的是提供一个分布式的、可扩展的全文搜索引擎,...

    elasticsearch-hadoop-8.8.0

    Elasticsearch-Hadoop是Elasticsearch与Hadoop生态系统集成的重要组件,主要目的是让Hadoop能够无缝地访问和处理存储在Elasticsearch中的大数据。标题"elasticsearch-hadoop-8.8.0"指的是该组件的一个特定版本,即...

    elasticsearch 与hadoop 相关的jar

    包含 elasticsearch-hadoop-6.6.1.jar elasticsearch-hadoop-hive-6.6.1.jar elasticsearch-spark-20_2.11-6.6.1.jar elasticsearch-storm-6.6.1.jar 等

    Elasticsearch集成Hadoop最佳实践

    本文将探讨如何优化 Elasticsearch 与 Hadoop 的整合,以实现最佳性能和效率。 ### 1. **Hadoop 与 Elasticsearch 的关系** Hadoop 的核心在于 MapReduce,它将大数据分割为小块并进行分布式处理。然而,MapReduce...

    elasticsearch-hadoop-2.4.0.zip

    Elasticsearch-Hadoop是Elasticsearch与Apache Hadoop之间的桥梁,允许用户在Hadoop生态系统内无缝集成和处理Elasticsearch的数据。此版本"elasticsearch-hadoop-2.4.0.zip"是专为Hadoop 2.4.0版本设计的,确保了...

    elasticsearch-hadoop-5.2.1

    Elasticsearch-Hadoop是Elasticsearch与Hadoop生态系统集成的重要组件,主要允许用户在Hadoop环境中无缝地存储、处理和分析Elasticsearch的数据。版本5.2.1是这一组件的一个稳定版本,提供了对Elasticsearch 5.x系列...

    elasticsearch-hadoop-hive-2.3.4.jar包下载

    elasticsearch-hadoop-hive-2.3.4.jar包下载

    elasticsearch-hadoop-5.6.7

    elasticsearch-hadoop是一个深度集成Hadoop和ElasticSearch的项目,也是ES官方来维护的一个子项目,通过实现Hadoop和ES之间的输入输出,可以在Hadoop里面对ES集群的数据进行读取和写入,充分发挥Map-Reduce并行处理...

    Elasticsearch集成Hadoop最佳实践.pdf

    Elasticsearch集成Hadoop最佳实践PDF版本,帮助你快速搭建Hadoop+ES搜索服务器集群

    elasticsearch-hadoop-6.8.23.zip

    Elasticsearch-Hadoop是Elasticsearch与Apache Hadoop集成的桥梁,它允许用户在Hadoop环境中充分利用Elasticsearch的强大搜索和分析能力。Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,而Hadoop是...

    elasticsearch-hadoop-1.2.0.jar

    jar包,官方版本,自测可用

    elasticsearch-hadoop-8.5.3.zip

    **Elasticsearch for Apache Hadoop (ES-Hadoop)** 是一个数据集成工具,它允许用户将Apache Hadoop与Elasticsearch无缝连接,实现大数据分析和实时搜索的完美结合。Elasticsearch是一个分布式、RESTful风格的搜索和...

    elasticsearch-hadoop-0.17.2.jar

    jar包,官方版本,自测可用

    elasticsearch-hadoop-0.18.7.jar

    jar包,官方版本,自测可用

    elasticsearch-hadoop-5.5.0.jar

    elasticsearch 结合spark和hadoop包地方 希望广大用户积极下载使用目,少量积分

Global site tag (gtag.js) - Google Analytics