https://developer.aliyun.com/topic/elasticsearch講師:阮一鳴——eBay Pronto 平台技術負責人、極客時間『Elasticsearch 核心技術與實戰』課程講師
課程為了更多同學能快速體驗 Elasticsearch,為大家提供了免費的阿裡雲 Elasticsearch (3節點1核2G)的測試環境>>>>
去開通

課程回顧
7 | 在Docker容器中運作Elasticsearch Kibana和 Cerebro 8 | Logstash安裝與導入資料 9 | 基本概念:索引、文檔和REST API 10 | 基本概念:節點、叢集、分片及副本知識點一:在 Docker 容器中運作 Elasticsearch Kibana和 Cerebro
lasticsearch 成立之初就開始擁抱容器技術,官方不僅提供 Docker Image,同時在2019年5月,在釋出7.1版本時,免費支援并提供 Elatic Operator on Kubernetes。而Cerebro 可以很好的讓大家學習了解 Elasticsearch 分布式特性。
關于在本機運作 Docker 環境去啟動 Elasticsearch 有兩點好處
- 可以通過一行指令,快速搭建環境
- 非常快捷的清除資料
Demo 部分請跟随課程,動手試試吧
課程相關資料通路及下載下傳
下載下傳安裝 Docker 與 Docker Compose
•
https://www.docker.com https://docs.docker.com/compose https://docs.docker.com/machine/install-machine/Docker - Compose 相關指令
• 運作 Docker- compose up
• docker Compose down
• docker Compose down - v
• docker stop / rm containerID
GitHub:
https://github.com/onebirdrocks/geektime-ELK/知識點二:Logstash 安裝與導入資料
我們通過 Elastic 官網下載下傳并安裝 Logstash,并在 Docker 本地運作,下載下傳需要確定版本号跟 Elasticsearch 相一緻;
下載下傳安裝 Logstash:http://www.elastic.co/downloads/logstash
開通阿裡雲 Logstash 2核4G 1個月免費測試環境_
點選開通通過Movieiens 測試資料集,寫了一個配置檔案,并通過 Logstash 将這些資料寫入 Elasticsearch,這些測試資料對于我們學習查詢 Elasticsearch 起到非常關鍵的作用
下載下傳 Movie Len 資料:https://grouplens.org/datasets/movielens/
知識點三:基本概念(1)- 索引,文檔和 REST API
Elasticsearch 中的“索引”和“文檔”是一個邏輯概念,偏向與開發者視角;“文檔”是所有可能搜尋資料的最小機關,“索引”是相似文檔的集合。
關于“文檔”
在 Elasticsearch 中,“文檔”以序列化成 JSON 格式儲存,每個文檔均對應一個 Unique ID和中繼資料,如 【_index-索引名】、【_type-類型名】等
關于“索引”
在 Elasticsearch 中“索引”是相似文檔的集合,每一個“索引”都有屬于自己的 Mapping 定義文檔,用于描述包含的字段名和類型。每一個索引可以建立一個 “Type”(Elasticsearch 7.0之後),每個“Type”底下有相同結構的文檔。
與關系型資料庫類比時,當用于全文檢索,Elasticsearch 比較有優勢,往往會将Elasticsearch 與資料庫組合使用。
關于“REST API”
“REST API”是 Elasticsearch 為了友善其他語言整合,對程式做調用。當程式需要與 Elasticsearch 做內建時,我們僅需發出 HTTP 的請求,就可以得到相應的結果。
• 檢視一些與 index 的相關 API
• 進入 Kinbana Index Management 界面,探索 Index 相關的資訊
知識點四:基本概念(2)- 叢集 / 節點 / 分片 / 副本
關于“叢集”
Elasticsearch 的“叢集”是一個分布式叢集,滿足“高可用”、“可拓展”的特性。不僅提供存儲的水準擴容,而且當出現部分節點停止服務,也不影響整個叢集的服務。
Elasticsearch 官方也提供 CAT API,來幫助了解“叢集”健康狀況,用“green”、“yellow”、“red”,分别代表叢集“主、副分片配置設定正常”、“主分片正常配置設定,副本未正常配置設定”、“主分片未正常配置設定
關于“節點”
“節點”是一個 Elasticsearch 的執行個體,本質上是一個 JAVA 的程序,當節點啟動後,系統會配置設定一個 UID,儲存着在 Data 目錄下。
不同的節點,會承擔不同的角色
其他還有很多類型節點,比如需要做日志 Case 時,有“Hot & Warm Node”、用于機器學習的“Machine Learning Node”;
每個節點啟動,都會讀取 Elasticsearch YML 配置檔案,用于決定自己承擔說明角色
關于“分片/副本”
“分片”分為 Primary Shard & Replica Shard(主、副分片)
通過分片,将資料分布在叢集節點上,生産環境中,需要提前規劃分片容量
當分片設定過小
- 導緻後續無法增加節點實作水準擴充
- 當分片資料量超過容量,重新配置設定資料會耗費過多時間
當分片設定過大
- 影響搜尋結果相關性打分。
- 導緻統計不準确,影響性能造成浪費。
• 檢視一個叢集的健康狀态
http://localhost:9200/_cluster/health• CAT API
- http://localhost:9200/_cat/nodes
- 檢視索引和分片
• 設定分片數
• Kibana+Cerebro 界面介紹
下周課程預告
點選預約課程
11 | 文檔的基本CRUD與批量操作 12 | URI Search詳解 13 | 通過Analyzer進行分詞 14 | Search API概覽相關活動
更多折扣活動,請通路
阿裡雲 Elasticsearch 官網 • 阿裡雲 Elasticsearch 商業通用版,1核2G首月免費 阿裡雲 Elasticsearch 日志增強版,首月六折,年付六折 阿裡雲 Logstash 2核4G首月免費