IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Elasticsearch核心技术与实战

    admin发表于 2019-06-23 14:20:38
    love 0

    Elasticsearch视频新课,感兴趣的同学可以看看:Elasticsearch核心技术与实战

    搜索是现代软件必备的一项基础功能,而 Elasticsearch 就是一款功能强大的开源分布式搜索与数据分析引擎。

    它可以从海量数据中快速找到相关信息,在同领域内几乎没有竞争对手——近两年 DBRanking 的数据库评测中,ES 在搜索引擎领域始终位列第一。

    当你在 GitHub 上搜索时,Elasticsearch 可以实现代码级的搜索与高亮显示 ;当你在网上购物时,ES 可为你推荐喜欢的商品;当你下班打车回家时,ES 可以通过定位附近的乘客和司机,帮助平台优化调度。

    Elasticsearch 还被广泛运用于大数据近实时分析,包括日志分析、指标监控、信息安全等多个领域。

    它可以探索海量结构化、非结构化数据,按需创建可视化报表,对监控数据设置报警阈值,甚至通过使用机器学习,做到自动识别异常状况。

    作为目前最流行的开源搜索引擎,ES 在全球的下载量已超过 3.5 亿次,腾讯、滴滴、今日头条、饿了么、360 安全、小米,vivo 等国内诸多知名公司都在使用 Elasticsearch。

    Elasticsearch 有什么特点?

    Elasticsearch 非常容易上手,具有开箱即用的特性,你可以在极短的时间内设置好开发环境,然后快速上手使用,继而在成百上千台服务器上实现 PB 级的数据处理。

    虽然上手快,但要做到深入理解并高效使用,可就没那么简单了,比如:

    1. 为什么我的数据查不到,明明是有的啊!

    2. 什么鬼?为什么这几条数据出现在搜索结果的前几位?

    3. 生产环境我需要多少台机器,索引的分片数怎么样设置才是合理的?

    4. 应该关注哪些指标,才能保证集群健康高效地运行?

    5. 对于日志型应用,如何设置 Hot & Warm Architecture 节约成本,怎样管理和优化基于时间序列的索引数据,才能提高集群的整体性能?

    4. 为什么我的集群脑裂了?数据损坏后,怎样才能恢复?

    其实,想要掌握 Elasticsearch,除了要理解其分布式架构的原理外,还要了解一些信息检索领域的知识和相关技巧。

    分享给你一张 Elasticsearch 核心知识图谱,只有对每一个知识点仔细梳理并深入理解,才能解决工作中的实际问题。

    这张图谱出自阮一鸣,我之前听过他在 Elastic 中国开发者大会的分享,讲得非常不错。

    最近,得知他跟极客时间合作,推出了一门视频课《Elasticsearch 核心技术与实战》,我有幸提前看到了目录和一部分内容,很想推荐给你。

    在课程中,他用理论与实践相结合的方式、深入浅出地讲解了 Elasticsearch,只要你坚持学习,就可以掌握 ES 的基本概念和服务搭建,了解其运行机制和常用技巧,并通过上手实战理解 ES 在实际项目中的应用。

    近几年 ES 非常热门,所以去年 Elastic 公司推出了官方的 Elastic 工程师认证考试,需要考生在 3 个小时的线上考试中,动手解决 12 个实际问题,就算有多年工作经验的老手都未必能通过。

    所以,这个认证的含金量还是挺高的,有证跟没证不仅能力水平可能差一个档次,收入也有可能差一个档次。

    阮一鸣说,这门课覆盖了 Elastic 认证考试的全部考点,想参加考试的朋友可以将这门课作为参考教材,这也算是「学习技能之外的 bonus」了。

    关于阮一鸣

    阮一鸣,eBay Pronto 平台技术负责人。Pronto 平台管理了 eBay 内部上百个 Elasticsearch 集群,数据规模超过了 4000 个节点。这些集群在 ebay 的生产环境中,支撑了包括订单搜索,商品推荐,日志管理,风险控制,IT 运维,安全监控等不同领域的服务。

    作为一名互联网行业的老兵,他从业近 20 年了,在大数据、云计算和性能优化方面积累了丰富的经验。同时,他还是一名连续创业者,创办过手机游戏公司、个性化音乐推荐与分享平台 8box。

    他是如何讲解 Elasticsearch 的?

    如果你对 Elasticsearch 有些了解,就会发现 ES 的产品迭代速度非常快,很多老的 API 都已经被废弃不再使用,搜索到的参数配置也大多发生了变化。

    市面上的书籍和教程都是基于 5.x 甚至是 2.x 版本。而在课程中,哥们儿使用 Elasticsearch 最新的 7.1 版本进行教学。

    所有 ES 最新版本的特性,在课程里都会有全面和直观地展现,比如:用机器学习进行异常检测;用 Canvas 展示数据;用索引的生命周期管理工具对索引进行优化等等。

    结合目录,我总结了一下,这个课大概分为 5 个部分:

    1. 初识 Elasticsearch:

    Elasticsearch 核心概念、工作机制与应用场景;本地开发环境搭建;倒排索引的原理与 ES 中 Analysis 的具体细节;Mapping 设置和一些基本的 Search & Aggregation API。

    2. 深入了解 Elasticsearch:

    理解 Elasticsearch 分布式架构的原理;相关性算分的原理;数据建模的最佳实践;深入搜索及聚合功能以提高搜索结果的相关度。

    3. 管理 Elasticsearch 集群:

    集群的水平扩展、参数配置、性能优化、故障诊断。

    4. 利用 ELK 做大数据分析:

    结合使用场景和数据,探索 Logstash、Kibana 的各项功能。

    5. 应用实战工作坊:

    设计了电影搜索和 Stack Overflow 用户调查问卷数据分析两个实战项目,通过上手实践,你可以巩固所学的知识点,并运用到实际项目中。

    需要什么基础,能获得什么?

    这门课不仅适合有 ES 使用经验的人,也适合初学者。编程知识和数据库的相关使用经验,会对你学习 ES 有一定帮助,但并不是必须的。

    针对开发人员,搜索是一项被广泛需要的功能,哥们儿详细地讲解了相关的搜索概念在 Elasticsearch 中是如何对应和具体实现的。

    如果你是一名 ES 的运维人员,管理了公司内部的 Elasticsearch 集群:上线前的如何进行容量规划,上线后如何保证这些集群在生产环境内稳定高效的运行,如何在凌晨识别出异常信号,及时发出告警,以避免灾难的发生。

    这些问题,他在课程中都会给出相关的最佳实践。

    其实,无论是开发还是运维,架构师抑或数据分析师,甚至是产品经理,都应该学一学 Elastic Stack。

    在大数据时代,近实时的搜索和分析能力,会让你唯快不破,洞见未来。——这句 copy 了阮一鸣,要我说其实就是升职加薪走上人生巅峰呗,这话够实在吧。

    跟着好好学,结合课程中的练习和实践,相信你一定能学以致用,基于 Elasticsearch 构建出你自己的搜索和数据分析产品。

    这部分好像写得有点长啊,要我总结就一句:放心学,学得会,用得着。

    课程大纲
    第一部分:初识 Elasticsearch
    第 1 章:概述
    课程概述及学习建议
    Elasticsearch 简介及其发展历史
    Elastic Stack 家族成员及其应用场景
    第 2 章:安装上手
    Elasticsearch 的安装与简单配置
    Kibana 的安装与界面快速浏览
    在 Docker 容器中运行 Elasticsearch,Kibana 和 Cerebro
    Logstash 安装与导入数据
    第 3 章:Elasticsearch 入门
    基本概念(1):索引,文档和 REST API
    基本概念(2):节点,集群,分片及副本
    文档的基本 CRUD 与批量操作
    倒排索引入门
    通过分析器进行分词
    Search API 概览
    URI Search 详解
    Request Body 与 Query DSL 简介
    Query String & Simple Query String 查询
    Dynamic Mapping 和常见字段类型
    显式 Mapping 设置与常见参数介绍
    多字段特性及 Mapping 中配置自定义 Analyzer
    Index Template 和 Dynamic Template
    Elasticsearch 聚合分析简介
    第一部分总结
    第二部分:深入了解 Elasticsearch
    第 4 章:深入搜索
    基于词项和基于全文的搜索
    结构化搜索
    搜索的相关性算分
    Query & Filtering 与多字符串多字段查询
    单字符串多字段查询:Dis Max Query
    单字符串多字段查询:Multi Match
    多语言及中文分词与检索
    Space Jam,一次全文搜索的实例
    使用 Search Template 和 Index Alias 查询
    综合排序:Function Score Query 优化算分
    Term & Phrase Suggester
    自动补全与基于上下文的提示
    配置跨集群搜索
    第 5 章:分布式特性及分布式搜索的机制
    集群分布式模型及选主与脑裂问题
    分片与集群的故障转移
    文档分布式存储
    分片及其生命周期
    剖析分布式查询及相关性算分
    排序及 Doc Values & Fielddata
    分页与遍历:From, Size, Search After & Scroll API
    处理并发读写操作
    第 6 章:深入聚合分析
    Bucket & Metric 聚合分析及嵌套聚合
    Pipeline 聚合分析
    作用范围与排序
    聚合分析的原理及精准度问题
    第 7 章:数据建模
    对象及 Nested 对象
    文档的父子关系
    Update By Query & Reindex API
    Ingest Pipeline & Painless Script
    Elasticsearch 数据建模最佳实践
    第二部分总结回顾
    第三部分:管理 Elasticsearch 集群
    第 8 章:保护你的数据
    集群身份认证与用户鉴权
    集群内部安全通信
    集群与外部间的安全通信
    第 9 章:水平扩展 Elasticsearch 集群
    常见的集群部署方式
    Hot & Warm 架构与 Shard Filtering
    如何对集群进行容量规划
    分片设计及管理
    在公有云上管理与部署 Elasticsearch 集群
    在私有云上管理 Elasticsearch 集群的一些方法
    第 10 章:生产环境中的集群运维
    集群健康与问题排查
    生产环境常用配置与上线清单
    监控 Elasticsearch 集群
    诊断集群的潜在问题
    解决集群 Yellow 与 Red 的问题
    集群压力测试
    段合并优化及注意事项
    缓存及使用 Breaker 限制内存使用
    一些运维的相关建议
    第 11 章:索引生命周期管理
    使用 Shrink 与 Rollover API 有效管理时间序列索引
    索引全生命周期管理及工具介绍
    第四部分:利用 ELK 做大数据分析
    第 12 章:用 Logstash 和 Beats 构建数据管道
    Logstash 入门及架构介绍
    Beats 介绍
    第 13 章:用 Kibana 进行数据可视化分析
    使用 Index Pattern 配置数据
    使用 Kibana Discover 探索数据
    基本可视化组件介绍
    Visual Builder 介绍
    构建 Dashboard
    第 14 章:探索 X-Pack 套件
    用 Monitoring 和 Alerting 监控 Elasticsearch 集群
    用 APM 进行程序性能监控
    用机器学习实现时序数据的异常检测
    用 ELK 进行日志管理
    用 Canvas 做数据演示
    用 Graph 进行数据分析
    用 Timelion 分析时序型数据
    第五部分:应用实战工作坊
    实战 1:电影搜索服务
    项目需求分析及架构设计
    将音乐数据导入 Elasticsearch
    搭建你的电影搜索服务
    实战 2:Stackoverflow 用户调查问卷分析
    需求分析及架构设计
    数据 Extract & Enrichment
    构建 Insights Dashboard
    备战:Elastic 认证
    Elastic 认证介绍
    考点梳理



沪ICP备19023445号-2号
友情链接