您的位置:首页 > 其它

当 Elasticsearch 遇上 MaxCompute —— 「Elasticsearch on MaxCompute 」简介

2017-03-14 18:40 666 查看

转自haixia

Elasticsearch on MaxCompute(原ODPS)

Elasticsearch 是目前最流行的开源分布式搜索系统之一,它有着优秀的近实时搜索性能和丰富的周边配套工具。以 Elasticsearch 为核心的 Elastic Stack (Elasticsearch + Logstash + Kibana + Beats) 正逐渐成为企业和个人进行数据收集、搜索、分析、可视化的首选解决方案。作为一个分布式系统,Elasticsearch 在部署使用时会面临一些运维方面的问题:如扩容缩容、failover、集群运维和管理等。对于这些问题,ODPS 已经有了成熟、稳定的解决方案,而 Elasticsearch 的搜索功能一直是 ODPS 的短板——存储在 ODPS 表里的数据难以进行高效的全文检索,但是越来越多的 ODPS 用户对数据提出了搜索需求。所以,我们把 Elasticsearch 和 ODPS 结合起来——让 Elasticsearch 运行在 ODPS 集群上,通过 ODPS 统一调度和管理,并且打通 ODPS 表数据到 Elasticsearch 的通道,利用 Elasticsearch 满足用户的搜索需求。(PS:本产品目前只对专有云输出,公共云暂不提供服务)

实现简介

1. Elasticsearch —— ODPS long running job

Elasticsearch on ODPS 整体架构如下图所示 (橙色部分是 ODPS,绿色部分是 Elasticsearch):

在 ODPS 上,一个 Elasticsearch 集群对应一个 ODPS 的 long running 作业。用户通过提交 ODPS 作业启动 Elasticsearch 集群,作业提交成功后会返回相应 instanceID;客户端提供调整 Elasticsearch 集群的接口,用户可以根据 instanceID 请求扩容、缩容和停止 Elasticsearch 集群。其中:ODPS 控制集群负责启动和停止 Elasticsearch 的 long running 作业,以及将客户端的 RPC 请求转发到相应的 App Master 上。

App Master 是管理 Elasticsearch 集群的核心组件,负责向 Fuxi 申请资源、拉起 Elasticsearch 节点、监控节点运行状态并处理 failover 的情况,同时还要响应客户端通过控制集群转发的 RPC 请求,返回 Elasticsearch 集群的运行状态信息或对集群进行相应调整。

worker 负责拉起 Elasticsearch 进程,并向 App Master 汇报运行状态

Elasticsearch 启动成功后即可通过 Nodeclient 提供服务,用户通过 RESTful API 或 Elasticsearch SDK 使用 Elasticsearch 的相关功能

2. 数据打通

Logstash 是 Elasticsearch 最常用的数据导入工具,使用灵活,有很好的插件化支持。我们开发了 ODPS-Logstash 插件,用户进行简单的配置,就可以把 ODPS 表作为 Elasticsearch 的数据源,使用 Logstash 把数据导入到 Elasticsearch 集群中。Elasticsearch 即可建立索引并提供搜索服务。

现状和展望

ODPS 给 Elasticsearch 带来了真正的“开箱即用”,Elasticsearch 填补了 ODPS 在搜索上的不足。目前 Elasticsearch on ODPS 正在内测使用中,后续会有更多的使用经验交流,大家对这个项目有任何的建议欢迎随时和我联系。Elasticsearch 和 ODPS 究竟能擦出怎样的火花?我们拭目以待。原文链接:http://click.aliyun.com/m/14008/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  解决方案 用户 流行