elasticseach从apachehadoop读取数据

ia2d9nvy  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(325)

我们正试图在我们的大数据环境中实现elasticsearch。目前我们正在运行ApacheHadoop2.7,包括hive和spark。在hadoop中以parquest格式存储数据。
当我们在环境中实现elk时,我们只能将数据存储到hadoop hdfs中吗?或者我们必须从hadoop中提取数据并导入elasticsearch以便创建索引,但是我们在系统中有重复的数据集(hadoop hdfs和elasticsearch)
谢谢您。

1hdlvixo

1hdlvixo1#

抱歉,如果这有点长,但我希望这会有帮助!

什么是elasticsearch?

elasticsearch是一个搜索引擎。句号。搜索解决方案。或者更确切地说是一种数据库或数据存储,它可以帮助您组织数据,从而帮助您执行数据发现或为您的组织构建搜索应用程序等活动。
尽管您也可以进行大量的分析查询,并围绕它构建分析解决方案,但仍有一定的局限性。
elasticsearch的性质和其中使用的数据结构非常不同,因此您需要将数据(摄取)推入其中,以便执行所有搜索/数据发现/分析活动。它有自己的文件系统和数据结构,专门用于管理/存储数据以实现高效搜索。
所以是的,会有重复的数据。

elasticsearch不是什么?

它不能用作分析解决方案,尽管它确实带有许多聚合查询,但它不像处理引擎那样具有表现力 Apache Spark 或数据虚拟化工具,如 Denodo 或者 Presto .
它不是像hdfs或s3那样的存储解决方案,而是用作组织的数据湖。
它不会被用作事务数据库,而被rdbms解决方案所取代。
大多数情况下,许多组织从各种不同的来源(如olap、rdbms、nosql数据库、cms、消息队列)将数据摄取到es中,以便更有效地搜索数据。
在某种程度上,在大多数情况下,es从来不是一个主要的数据源。

组织如何使用它?

例如,如果您希望提供或构建任何电子商务解决方案,您可以让elasticsearch管理其搜索实现。
企业搜索解决方案(内部和外部),使it人员更高效,并允许客户的数据为其产品找到所需的文档、知识库、可下载的PDF文本等,例如安装文档、配置文档、发布文档、新产品文档。所有的内容都将从一个公司的各种不同的来源组装起来,然后推送到es中,这样就可以 searchable .
从应用程序服务器和消息队列获取日志等数据,以便执行日志记录和监视活动(警报、欺诈分析)。
所以es最常见的两种用法是 searching 以及 logging and monitoring activities . 基本上是实时活动。

它与hadoop有何不同?

大多数组织都在增加对hadoop文件系统的利用,即hdfs用作数据存储,同时利用spark或hive进行数据处理。主要是做大量的数据分析解决方案,其中es有局限性。
hadoop具有存储所有文件格式的能力(当然,为了高效存储,您需要使用parquet或其他格式),但是elasticsearch只使用json。这使得hadoop与s3和其他fs一起成为数据湖或数据存档存储工具的默认行业标准。
如果您在hadoop中存储数据,那么您可能需要使用其他框架来进行有效的数据处理,比如spark、giraph或hive来转换数据并进行复杂的分析处理,而es对此有一定的限制。es的核心是一个全文检索/搜索引擎。

hadoop搜索

您可能需要运行map reduce或spark作业,并编写大量的模式匹配算法来查找包含任何要搜索的关键字的文档或文件夹。每一次搜索都会得到一份这样的工作。这是不实际的。
即使您以这样一种方式来转换和组织它们以便利用hive,它仍然不如elasticsearch用于文本处理的效率高。
下面的链接可以帮助您了解elasticsearch中使用的核心数据结构,以及为什么文本搜索更快/不同/高效。

我们如何利用hadoop和elasticsearch?

也许下面这个链接中提到的图表会有用。

基本上,您可以设置摄取管道、处理来自hadoop的原始数据、转换,从而在elasticsearch中对它们进行索引,以便您可以利用它的搜索功能。
查看此链接,了解如何使用elasticsearch的spark,并在它们之间实现双向通信。
希望有帮助!

相关问题