Elasticsearch高手系列-高手进阶

2020-05-29 00:00:00 数据 原理 分布式 搜索引擎 初识

Elasticsearch,是目前行业中非常热门的一个技术。Elasticsearch是一种分布式的海量数据搜索与分析的技术,可以用于电商网站、门户网站、企业IT系统等各种场景下的搜索引擎,也可以用于对海量的数据进行近实时的数据分析。相较于Lucene来说,Elasticsearch天然的分布式特性,让其可以支持海量的、PB级的大数据搜索。相对于Spark Streaming、Storm等大数据实时计算引擎来说,Elasticsearch天生为分布式执行数据分析操作而生的架构,海量数据量级下的近实时(秒级)性能支持,以及无比强大的搜索和聚合分析的语法支持,让ES更加适合进行大数据场景下的数据分析应用。

Spark Streaming进行实时数据分析,有天然的无法全量多数据流join、内核shuffle过程大量基于磁盘落地等缺陷,导致其实时数据分析功能较差,实时数据分析性能也较差。Storm则作为实时计算引擎的鼻祖,由于其对SQL的支持很弱,导致其非常不适合进行实时数据分析,开发成本巨大。而Elasticsearch克服了上述大数据技术的缺点,更加适合进行大数据场景下的数据分析操作。

在此向大家推荐一套Elasticsearch系列课程,本课程深入浅出剖析了Elasticsearch的核心基础知识,带着大家一步一步,从快速入门,到理解Elasticsearch的工作原理、内核级原理,再到动手实战操作Elasticsearch的各种核心功能,到后可以基于Java开发基本的搜索和分析应用程序。

课程特点如下:

1、基于Elasticsearch新版本,5.2版本,进行课程的讲解,让大家学好技术后,不会落伍。而市面上的书籍和视频,使用的Elasticsearch版本都非常陈旧,一般都是1.x,或者2.x,即使学了,也完全跟现在新的版本无法兼容,无法让同学们学以致用。

2、大白话讲解各种复杂知识点,不用太官方和学术的语言照着ppt简单讲解,而是采用与朋友聊天式的方式,进行对话和讲解,尽量采用通俗的语言来解释各种复杂的技术问题,还有底层原理。

3、课程知识体系设计的足够详细,将一门技术的各个知识点和技术点,全部包含在课程中,一点一点的细致剖析和展开讲解,绝不让大家遗漏任何有用的知识点,尽量做到,课程知识体系完整,系统化,有广度,而且也有深度。比如说本套课程中,既全面包括了从入门使用,到分布式文档系统操作,到搜索引擎操作,到索引管理,后到Java API使用,这样完整的知识体系。同时还细致到包含很多的知识点,比如说Elasticsearch如何突破扩容瓶颈,search timeout机制,如何定位不合法的搜索,等等。

4、包含很多的核心知识点和技术,比如乐观锁并发控制,写一致性与quorum机制,bulk api底层性能优化,deep-paging性能问题,大数据量零停机重建索引,等等。

5、课程的原理性讲解足够深入,一直剖析到ES的内核层面,而且几乎所有原理知识点的讲解都使用现场一点一点手工画图的方式来剖析和讲解。比如ES容错机制,document数据路由,object类型底层结构,相关度评分TF/IDF算法,doc value,type底层数据结构,内核级数据写入流程,index segment、memory buffer、filesystem cache、flush、commit等内核级原理。

6、大量的上机动手实验,几乎所有功能都会带着大家上机动手实战操作,演练,掌握功能的使用。比如入门级的电商网站商品管理案例,基于版本号进行乐观锁并发控制的实验,mget+bulk批量处理的实验,scoll滚动搜索大量数据的实验,scoll+bulk+alias零停机重建索引的实验,基于Java开发的员工管理案例,等等。

本套课程学完以后能够达到的效果:

1、快速掌握Elasticsearch的各种使用,包括document管理,索引管理,搜索,聚合分析,等等。

2、细致掌握Elasticsearch的各种核心知识点,包括乐观锁并发控制,mget+bulk批处理,零停机场景下重建索引,dynamic mapping模板定制,分词器定制,等等。

3、深入理解Elasticsearch的各种核心原理,包括分布式架构原理,分布式文档系统原理,分布式搜索引擎原理,内核级原理。

4、快速掌握基于Java来开发Elasticsearch的简单应用程序,实现包括document增删改查,常见的搜索操作,常见的聚合分析操作。

5、基于上述4点的掌握,可以为更加进一步深入学习Elasticsearch这门技术打好基础。

课程大纲:

01节:课程介绍

02节:用大白话告诉你什么是Elasticsearch

03节:Elasticsearch的功能、适用场景以及特点介绍

04节:手工画图剖析Elasticsearch核心概念:NRT、索引、分片、副本等

05节:在windows上安装和启动Elasticseach

06节:快速入门案例实战之电商网站商品管理:集群健康检查,文档CRUD

07节:快速入门案例实战之电商网站商品管理:多种搜索方式

08节:快速入门案例实战之电商网站商品管理:嵌套聚合,下钻分析,聚合分析

09节:手工画图剖析Elasticsearch的基础分布式架构

10节:shard&replica机制再次梳理以及单node环境中创建index图解

11节:图解2个node环境下replica shard是如何分配的

12节:图解横向扩容过程,如何超出扩容极限,以及如何提升容错性

13节:图解Elasticsearch容错机制:master选举,replica容错,数据恢复

14节:初步解析document的核心元数据以及图解剖析index创建反例

15节:分布式文档系统-document id的手动指定与自动生成两种方式解析

16节:分布式文档系统-document的_source元数据以及定制返回结果解析

17节:分布式文档系统-document的全量替换、强制创建以及图解lazy delete机制

18节:分布式文档系统-深度图解剖析Elasticsearch并发冲突问题

19节:分布式文档系统-深度图解剖析悲观锁与乐观锁两种并发控制方案

20节:分布式文档系统-图解Elasticsearch内部如何基于_version进行乐观锁并发控制

21节:分布式文档系统-上机动手实战演练基于_version进行乐观锁并发控制

22节:分布式文档系统-上机动手实战演练基于external version进行乐观锁并发控制

23节:分布式文档系统-图解partial update实现原理以及动手实战演练

24节:分布式文档系统-上机动手实战演练基于groovy脚本进行partial update

25节:分布式文档系统-图解partial update乐观锁并发控制原理以及相关操作讲解

26节:分布式文档系统-上机动手实战演练mget批量查询api

27节:分布式文档系统_上机动手实战演练bulk批量增删改

28节:分布式文档系统_阶段性总结以及什么是distributed document store

29节:分布式文档系统_深度图解剖析document数据路由原理

30节:分布式文档系统_document增删改内部原理图解揭秘

31节:分布式文档系统_图解写一致性原理以及quorum机制深入剖析

32节:分布式文档系统_document查询内部原理图解揭秘

33节:分布式文档系统_bulk api的奇特json格式与底层性能优化关系大揭秘

34节:初识搜索引擎_search结果深入解析(search timeout机制揭秘)

35节:初识搜索引擎_multi-index&multi-type搜索模式解析以及搜索原理初步图解

36节:初识搜索引擎_分页搜索以及deep paging性能问题深度图解揭秘

37节:初识搜索引擎_快速掌握query string search语法以及_all metadata原理揭秘

38节:初识搜索引擎_用一个例子告诉你mapping到底是什么

39节:初识搜索引擎_匹配与全文搜索的对比分析

40节:初识搜索引擎_倒排索引核心原理快速揭秘

41节:初识搜索引擎_分词器的内部组成到底是什么,以及内置分词器的介绍

42节:初识搜索引擎_query string的分词以及mapping引入案例遗留问题的大揭秘

43节:初识搜索引擎_什么是mapping再次回炉透彻理解

44节:初识搜索引擎_mapping的核心数据类型以及dynamic mapping

45节:初识搜索引擎_手动建立和修改mapping以及定制string类型数据是否分词

46节:初识搜索引擎_mapping复杂数据类型以及object类型数据底层结构大揭秘

47节:初识搜索引擎_search api的基础语法介绍

48节:初识搜索引擎_快速上机动手实战Query DSL搜索语法

49节:初识搜索引擎_filter与query深入对比解密:相关度,性能

50节:初识搜索引擎_上机动手实战常用的各种query搜索语法

51节:初识搜索引擎_上机动手实战多搜索条件组合查询

52节:初识搜索引擎_上机动手实战如何定位不合法的搜索以及其原因

53节:初识搜素引擎_上机动手实战如何定制搜索结果的排序规则

54节:初识搜索引擎_解密如何将一个field索引两次来解决字符串排序问题

55节:初识搜索引擎_相关度评分TF&IDF算法解密

56节:初识搜索引擎_内核级知识点之doc value初步探秘

57节:初识搜索引擎_分布式搜索引擎内核解密之query phase

58节:初识搜索引擎_分布式搜索引擎内核解密之fetch phase

59节:初识搜索引擎_搜索相关参数梳理以及bouncing results问题解决方案

60节:初识搜索引擎_上机动手实战基于scoll技术滚动搜索大量数据

61节:索引管理_快速上机动手实战创建、修改以及删除索引

62节:索引管理_快速上机动手实战修改分词器以及定制自己的分词器

63节:索引管理_内核级知识点:深入探秘type底层数据结构

64节:索引管理_mapping root object深入剖析

65节:索引管理_定制化自己的dynamic mapping策略

66节:索引管理_复杂上机实验:基于scoll+bulk+索引别名实现零停机重建索引

67节:内核原理探秘_倒排索引组成结构以及其索引可变原因揭秘

68节:内核原理探秘_深度图解剖析document写入原理(buffer,segment,commit)

69节:内核原理探秘_优化写入流程实现NRT近实时(filesystem cache,refresh)

70节:内核原理探秘_继续优化写入流程实现durability可靠存储(translog,flush)

71节:内核原理探秘_后优化写入流程实现海量磁盘文件合并(segment merge,optimize)

72节:Java API初步使用_员工管理案例:基于Java实现员工信息的增删改查

73节:Java API初步使用_员工管理案例:基于Java对员工信息进行复杂的搜索操作

74节:Java API初步使用_员工管理案例:基于Java对员工信息进行聚合分析

相关文章