为什么应该掌握Elastic Stack技术栈?

序言

Elasticsearch 到大名鼎鼎的ELK三件套,从ELK到Elastic Stack生态,ES的生态发展越来越完善,应用领域也越来越宽广。下面就以我个人视角谈谈 “为什么你会需要Elastic Stack?”,仅代表本人观点,如有异议,欢迎讨论。


行业发展阶段与痛点


程序员工作的本质

从业IT多年,从开发、架构、专家、运维、带团队、布道,一直也在思考程序员工作本质是什么?

程序员日常的工作与其说是面向对象编程,不如说是面向数据编程所有写的代码程序逻辑都是围绕数据处理展开,对于一个程序员的技能要求,无非两点,一是编程语言本身,二是数据库(泛指所有数据类产品)

编程语言不用说,是入行程序界的必备基础那对于数据产品呢,由于单人个体精力有限,仅能掌握精通少数的产品。因此,选择一个合适数据产品增强自己的核心竞争力是必须考虑的。


大数据痛点

Hadoop过去的快速发展,已经成为了大数据的代名词,Hadoop是一个非常庞大完善的技术生态,从数据采集、存储系统、计算处理、查询分析、机器学习都有,唯一的问题就是太过于复杂,企业上Hadoop需要投入很多的人力资源,很多的硬件资源,对于中小型公司,成本实在太高。对于大数据从业者,需要掌握的技术点太多而不够精深,从而导致实际项目落地非常困难

程序员圈流传过一句话 ”从入门到放弃“,说的就是Hadoop

图示 :非常复杂的Hadoop技术栈,令人望而生畏


Elastic Stack生态介绍

Elastic Stack官方即支持自有的独立生态技术栈,也有三方社区支持的技术产品。即可以独立完成大数据领域很多业务诉求,也可以与Hadoop生态集成。


Elasticsearch

Elasticsearch 简称ES,是Elastic Stack技术栈的数据中台,承担了存储、查询、聚合、机器学习等核心功能

图示:Elasticsearch核心功能


Logstash

Logstash数据处理服务程序,支持已知常用所有数据源类型,非常灵活的ETL处理引擎,解析转换加工丰富数据。

图示:Logstash支持的数据源类型


Kibana

Kibana是一个可视化的管理工具与报表工具,仅支持Elasticsearch,功能强大且便捷,可以直接看到Elastic Stack技术栈的运行状况,也可以很方便的管理集群与数据。

图示:Kibana可视化界面


Beats家族

Beats家族侧重成熟数据采集,相比Logstash更加具体化,简单配置,资源消耗少,可以直接将数据采集到Elasticsearch,也可以将数据传送到Logstash处理,然后发送到Elasticsearch。

· Metricbeat,采集各种指标数据,内置支持多种操作系统、中间件

· Filebeat,采集文本文件数据,内置支持多种操作系统、中间件、其它格式等文本文件

· Packetbeat,采集多种网络指标数据

· Heartbeat,心跳检测采集器,采集应用在线指标,支持HTTP、TCP协议,可以监听任何应用程序心跳

 


ES-Hadoop

Elastic Stack本身既有一定的大数据处理能力与生态组合,a可以对接Hadoop生态,成为其中一员虎将。官方提供了ES-Hadoop驱动包,可以很快速的与Hive、Spark,HDFS集成,数据互相访问,优势互补。


非官方支持技术产品

Elastic Stack是开源产品,其核心主题功能开源免费,围绕其开发的周边产品也有很多,其中部分已经成为各自领域的领头羊。

· Flinkx,当下最火的流式实时计算平台产品,可以将实时数据写入到Elasticsearch中。

· Grafana,非常漂亮的可视化界面,擅长运维监控,展示各种指标图示,与Elasticsearch直接集成,类似Kibana的职责。

· NiFi,大规模数据ETL平台,可视化配置多种数据处理逻辑

· Presto,交互式即席查询产品,可以连接Elasticssearch,解决索引数据关联问题

· Elassandra,是Cassandra与Elasticsearch混合,将列式数据与搜索引擎结合,即可以大规模支持Key-Value应用场景,也可以支持复杂条件查询,是不可多得的混合产品,个人非常喜爱。

 


Elastic Stack能干什么

前面概要介绍了Elastic Stack的官方生态与三方社区生态,那Elastic Stack擅长干什么,解决哪些业务场景需求呢 ?


全文搜索

Elasticsearch基于Lucene打造,天然支持文本分词,关键词文本搜索,可应用在企业知识库、电商商品搜索、以及其它垂直搜索业务领域。

 

图示:电商关键词商品搜索

其中涉及到的技术点--文本分词深入探查


地理应用

内置Geohash算法,支持地理位置搜索,结合分布式架构特性,可满足海量数据地理检索,应用在大规模的轨迹项目上,如:物流汽车运输领域,快速检索出汽车历史轨迹路径范围。 

其中涉及到的技术点--索引查询篇

 

 

向量检索

Elasticsearch内置Dense Vector字段类型,借助三方向量产品可以将文字、语音、图片、视频等转换为一个向量坐标,存储在ES中,供业务进行相似性与相关度检索,应用在图片相似、类似语音、问答系统、推荐系统领域。

图示:简单的向量坐标体系


查询加速

关系型数据库有严格的事务特性,能保证数据的可靠性,但在应对海量数据查询方面比较弱,业界通用的做法会采用DB+ES混合的策略,将数据实时同步到Elasticserch中。

图示:DB+ES混合示意图


大数据应用

ES非常擅长海量数据查询,大数据计算平台将海量数据经过计算之后,需要把最终的结果数据或者半结果数据存储起来,提供外部查询,传统的做法会选择关系型数据库承载,很容易到达性能瓶颈,此时会搭配Elasticsearch替代;另外ES自有生态也可以进行数据的计算,如:简单场景的数据实时计算,可以直接基于聚合实现

图示 Hadoop+ES 混合大数据场景

 

运用到的技术点--索引聚合、数据变换

 


日志平台

ES非常适合海量日志存储查询,早已成为业界通用日志平台的代名词,只要遇到日志查询分析需求,第一时间想到的就是ELK。

图示:支持多种日志类型采集

 

涉及到的技术点--日志分析


基础监控

在基础监控领域,有很多成熟有名的产品,Elastic Stack作为后期之秀快速崛起,得益于其通用数据平台能力,其它基础监控产品多数仅支持指标数据,不支持其它类型,而ES几乎一网打尽,尽量使用一个通用平台搞定所有的监控需求。

图示:基础指标监控


APM监控

同样的问题,研发人员不仅需要应用程序的监控信息,也需要采集应用程序的运行日志,而这又是Elasitc Stack的优势

图示:APM监控示意图


安全分析

Elastic Stack支持多种数据采集,指标数据、文本数据、网络数据等,这些数据组合在一起,可以进行机器学习分析,依据机器学习算法,可以分析出异常点,这个特性非常完美的契合网络安全,可以自动的发现潜在的安全威胁

图示:异常事件检测分析

ES的应用领域越来越广泛,而且市面上对有ES操作经验的人才也越来越重视。随便在招聘平台上一查,ES相关岗位薪酬甚至超过了Java架构师。

为了帮助大家更深入了解和掌握ES相关技术,给大家推荐一个ES训练营。讲师李猛老师,是国内ES首批认证实战专家,曾经为多个top企业提供ES架构和咨询服务。也在ES专业技术论坛做过多次干货分享,对ES有多年的实战经验和独特见解。此次课程也是干货满满。

 

感兴趣可以长按识别下方二维码咨询



国内首创实战型 ES 训练营 

3 天快速打造三位一体实时监控分析平台 

全程直播+作业点评+讲师答疑 

原价 199 元,限时优惠 0.02

基本相当于免费了~~~

识别下方海报二维码,立即报名吧!

只有200个名额哟~~ 

报名人数较多,如果群二维码失效 

可以添加下方老师微信二维码咨询