龙空技术网

Spark和Elasticsearch该如何取舍?

倾听者ZC 115

前言:

目前朋友们对“nginx与kafkaspark”大概比较注意,我们都想要分析一些“nginx与kafkaspark”的相关文章。那么小编也在网络上网罗了一些关于“nginx与kafkaspark””的相关资讯,希望小伙伴们能喜欢,小伙伴们快快来学习一下吧!

记得上大学时,有位老师说:我们要感谢开源,因为开源让我们有更多的选择。正是因此原因才使开源产品大行其道。

Spark它是发源于美国的加州大学伯克利分校amplab集群计算平台的,基于内存计算的,时速非常快,性能比Hadoop快100陪以上,它可以流处理、图计算、还有很多的计算范式,我个人认为spark是个全能的选手,是值得研究的选手。

Spark是一种通用集群计算框架,适用于涉及大量数据的使用场合,它对数据进行划分,并针对划分的数据执行计算,以便worker执行所有可能的工作,直至它们需要来自其他worker的数据。这种设计为Spark提供了巨大的可扩展性和可用性,同时让它极具弹性,可应对数据丢失。

何时应该使用Apache Spark?

Spark适用于涉及大规模分析的使用场合,尤其是数据通过多个来源到达的情况。Spark是一种强大的解决方案,适用于ETL或任何这种使用场合:需要在系统之间移动数据,无论用于从事务型数据存储持续填充数据仓库或数据湖,还是诸如数据库或系统迁移之类的一次性场景。如果企业在现有数据上构建机器学习管道、处理高延迟数据流,或执行交互式分析、临时性分析或探索性分析,会发现Spark非常适合。Spark还从合规角度提供数据屏蔽、数据过滤和大型数据集审核等功能,适合帮助企业满足合规要求。

何时不应该使用?

对于涉及实时或低延迟处理的使用场合,Spark通常不是最佳选择。(Apache Kafka或其他技术提供出色的端到端延迟以满足这些要求,包括实时流处理)。处理小型数据集或单个数据集时,Spark通常是一种大材小用的选择。另外说到数据仓库和数据湖,最好使用高级技术代替Apache Spark,不过确实存在面向Spark的此类产品。

Elasticsearch提供了一种全文搜索引擎,它有广泛的功能来搜索和分析非结构化数据。该技术提供接近实时的可扩展线性搜索、强大的搜索临时替代和强大的分析功能。

何时应该使用Elasticsearch?

Elasticsearch非常适合需要全文搜索、地理搜索、抓取和汇总公共数据、日志记录及日志分析、可视化以及少量事件数据和度量指标的使用场合。

何时不应该使用?

Elasticsearch不应该用作拥有关系数据的数据库或记录源,也不应该用来满足ACID要求。

选择互补技术

为贵企业(无论是不是开源)选择最佳技术组合显然不仅需要评估解决方案本身,决策者还要设想企业将如何采用和使用每种解决方案作为技术架构的一部分。Apache Cassandra、Apache Kafka、Apache Spark和Elasticsearch提供了一套特别互补的技术,企业结合使用它们显得很明智;又由于开源特性,它们无需许可费,也不存在供应商锁定现象。如果结合这些技术,并获得它们带来的优点,企业就可以实现目标,能够开发出高可扩展性、高可用性、易于移植、极具弹性的应用程序。

标签: #nginx与kafkaspark