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的內核層面,而且幾乎所有原理知識點的講解100%都使用現場一點一點手工畫圖的方式來剖析和講解。比如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對員工信息進行聚合分析
課程學習地址:http://www.roncoo.com/course/view/03b0916b225f4feb995586ab3e975c8f