Elasticsearch(簡稱:ES)是一個開源的分佈式搜索引擎, Elasticsearch 還是一個分佈式文檔數據庫.並提供了大量數據的存儲功能快速的搜索與分析功能.
起源於 Lucene, 基於 Java 語言開發的搜索引擎類庫, 創建於 1999 年, 2005 年成爲 Apache 頂級開源項目.Lucene 具有高性能, 以擴展的優點,
主要功能
- 分佈式搜索引擎
- 大數據近實時分析引擎
- 高性能
- 容易使用/容易擴展
- 聚合功能
- 分佈式存儲及集羣管理
Elasticsearch個版本特性
5x版本(2016-10)
- Lucene 6x,性能提升,默認打分機制從 TF-IDF 改爲 BM 25.
- 支持 Ingest 節點 / Painless Scripting / Completion suggested 支持/ 原生的 Java REST 客戶端
- Type 標記成 deprecated, 支持 Keyword 的類型
- 性能優化
- 內部引擎移除了避免同一文檔併發更新的競爭鎖, 帶來 15% - 20% 的性能提升.
- Istan aggregation, 支持分片上聚合的緩存.
- 新增了 Profile API.
6X版本(2017-10)
- Lucene 7X
- 新功能
- 跨集羣複製(CCR)
- 索引生命週期管理
- SQL 的支持
- 更友好的升級及數據遷移
- 在主要版本之間的遷移更爲簡單,體驗升級.
- 全新的基於操作的數據複製框架,可加速恢復數據.
- 性能優化
- 有效存儲稀疏字段的新方法,降低了存儲成本.
- 在索引時進行排序,可加快排序的查詢性能.
7X版本(2019-4)
- Lucene 8.0
- 重大改進 - 正式廢除單個索引下多 Type 的支持.
- 7.1開始, Security 功能免費試用.
- ECK - Elasticsearch Operator on Kubernetes
- 新功能
- 新的集羣協調機制.
- 功能完整的 REST 客戶端.
- Script Score Query.
- 性能優化
- 默認的 Primary Shard 數從 5 改爲 1, 避免 Ober Sharding.
- 性能優化,更快的 TOP k.
部署elasticsearch
下載地址:https://www.elastic.co/cn/downloads/elasticsearch
elasticsearch7X版本自帶JDK環境,之前版本需要安裝JDK.
通用環境配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
|
下載並安裝elasticsearch
1 2 3 |
|
目錄說明
目錄 | 主要配置文件 | 描述 |
/usr/share/elasticsearch/bin/ | elasticsearch | 腳本文件存放目錄,包括 elasticesearch,安裝插件.運行統計數據等. |
/etc/elasticsearch/ |
elasticsearch.yml | 集羣配置文件,jvm配置文件 |
/usr/share/elasticsearch/jdk/ | java | java運行環境 |
/data/elasticsearch/ | 日誌和數據目錄 | 數據文件及日誌目錄 |
/usr/share/elasticsearch/lib/ | java類庫 | |
/usr/share/elasticsearch/modules/ |
包含所有ES模塊 | |
/usr/share/elasticsearch/plugins/ | 包含所有已安裝的插件 | |
主配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
JVM配置
配置建議:
官網配置建議: https://www.elastic.co/cn/blog/a-heap-of-trouble
- Xms 和 Xmx 設置成一樣
- Xmx 不要超過機器內存的 50 %.
- 不要超過 30G.
1 2 3 |
|
啓動並檢查集羣狀態
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
elasticsearch狀態說明
- green:表示每個index的shard和replica都是活躍狀態的。
- yellow:表示每個index的shard是活躍狀態的,replica是不可用狀態的。
- red:表示索引中有些shard是不可用狀態,導致數據丟失。
elasticsearch-head
elasticsearch-head 是集羣管理, 數據可視化, 增刪改查, 查詢語句可視化工具. 從 ES5 版本後安裝方式 和 ES2 以上版本有所不同. ES2 可使用安裝插件方式進行安裝, 但是從 ES5 之後需要使用 NodeJs來啓動.
官網地址: https://github.com/mobz/elasticsearch-head
安裝部署
1 2 3 4 5 |
|
修改配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
cerebro
cerebro 和 elasticsearch-head 類似.是一款基於Web的ElasticSearch管理監控工具 圖形化比elasticsearch-head更加友好.
項目地址: https://github.com/lmenezes/cerebro
安裝軟件
1 2 3 |
|
修改配置文件
1 2 3 4 5 6 7 |
|
啓動程序
1 2 3 4 |
|