文章目录
简介
Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,可以对大量数据进行快速的搜索和聚合分析。同时它能够水平扩展,每秒钟可处理海量事件,同时能够自动管理索引和查询在集群中的分布方式,以实现极其流畅的操作。而且其可以确保集群(和数据)的安全性和可用性。
使用Elasticsearch首先需要接入数据,而在大数据应用场景下,数据往往存储在hadoop集群中。如何将Hadoop集群中的数据方便地接入到Elasticsearch集群中是关键。
LogStash接入
Elasticsearch的数据接入,首先想到的是利用LogStash组件。LogStash是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到Elasticsearch。不过从LogStash组件官方支持的接入插件中并不支持HDFS输入。结合其他插件实现HDFS数据接入的三种方式:
- 将数据导入到kafka集群中,然后使用LogStash的kafka插件接入;
- 利用HDFS的
Webhdfs
接口服务读取数据,然后使用LogStash的http插件接入; - 利用FUSE安装HDFS,然后使用LogStash的文件插件接入。
ES-Hadoop接入
ES-Hadoop 实现了 Hadoop 生态(Hive、Spark、Pig、Storm 等)与 ElasticSearch 之间的数据交互,借助该组件可以将 Hadoop 生态的数据写入到 ES 中,然后借助 ES 对数据快速进行搜索、过滤、聚合等分析,进一步可以通过 Kibana 来实现数据的可视化。同时,也可以借助 ES 作为数据存储层,然后借助 Hadoop 生态的数据处理工具(Hive、MR、Spark 等)将处理后的数据写入到 HDFS 中。具体可参考:官方文档。
重要配置
ES-Hadoop核心是通过 ES 提供的 restful 接口来进行数据交互,下面是几个重要配置项,更多配置信息请参阅