1.ElasticSearch介紹及基本概念


一、ElasticSearch介紹

  1. 一個采用RESTful API標准的高擴展性的和高可用性的實時性分析的全文搜索工具
  2. 基於Lucene[開源的搜索引擎框架]構建
  3. ElasticSearch是一個面向文檔類型的數據庫
  4. es為非關系型數據,存儲非結構化的數據

二、ElasticSearch概念

1.節點(node):

  1. 一個裝有es的服務並且提供故障轉移和擴展的服務器,
  2. 單獨一個es服務可以存儲數據及搜索功能
  3. 在集群中一個節點的名稱必須是唯一的
  4. 如果在集群中,通過節點名稱進行管理

2.集群(cluster):

  1. 集群就是有多個node組織在一起。共同工作分享整個數據具有負載均衡功能的集群
  2. 集群里的節點協調工作,共享數據。
  3. 集群里通過master節點進行集群管理工作
  4. 集群里通過選舉選出一個matser節點
  5. 一個集群里只有一個matser節點
  6. 每一個節點都有成為matser節點的可能

3.索引(Index)

  1. 索引就是一個擁有幾分相似特征的文檔集合
  2. 相當於mysql里的database

4.文檔(Document)

  1. 一個文檔是一個可以被索引的基礎信息單元
  2. 相當於mysql里的行
  3. 文檔用json格式來表示

5.類型(type)

  1. 一個索引中,可以定義一種或者多種數據類型
  2. 一個類型是你的索引的一個邏輯上的分類/分區

6.字段(field)

  1. es里的最小單元 相當於數據的某一列
  2. 類似於json里一個鍵

7.分片(shards)

  1. es將索引分成若干份 每個部分是一個shards
  2. 每一個shards存在不同的節點上
  3. 一個節點上不能存在兩個相同的shards
  4. 每一個文檔通過文檔id進行hash來確定放在哪一個節點上
  5. 每一個分片都相當於一個獨立的Lucene實例

8.副本(replicas)

  1. 索引的一份或者多份拷貝
  2. 容災作用,防止主分片丟失后,副本分片會作為新的主分片,保證集群的數據完整性
  3. 提供查詢性能,query的時候,既可以查詢主分片,也可以查詢副本分片

三、ElasticSearch和關系型數據庫對比

關系型數據庫Mysql 非關系型數據庫es
數據庫 database 索引 Index
表tables 類型 type
數據行row 文檔 Documents
數據列Column 字段 Fieid

四、ElasticSearch架構圖

1.Gateway

  1. gateway是ES數據存儲的格式
  2. 可以使用hdfs,本地,亞馬遜的s3等多種存儲方式
  3. 存儲索引信息,集群信息,mapping, 索引碎片信息,以及transaction logs

2.Distributed Lucene Directory

  1. Lucene框架 es就是基於Lucene框架開發的
  2. Lucene框架服發現等

3.Index Module

  1. 創建索引的模塊

4.Search Module

  1. 搜索模塊

5.Mapping

  1. 相當於mysql里的schema

6.river

  1. 從外部獲取異構數據 來創建索引

7.Discovery

  1. 節點啟動后會互相ping 根據在es.yml配置文件里找到對應的端口
  2. 進行開始選舉,從各個節點任務的master中選,進行id字典排序,選擇第一個
  3. 如果各個節點上都沒有認為的master, 那么就從所有節點中選擇
  4. 如果就一個節點 那么master就是她自己
  5. ES支持任意數目的集群,通過一個規則,只要所有的節點都遵循同樣的規則,得到的信息都是對等的,選出來的主節點肯定是一致的. 但分布式系統的問題就出在信息不對等的情況,這時候很容易出現腦裂(Split-Brain)的問題,大多數解決方案就是設置一個quorum值,要求可用節點必須大於quorum(一般是超過半數節點),才能對外提供服務。而 Elasticsearch 中,這個quorum的配置就是 discovery.zen.minimum_master_nodes

8.Scriptsing

  1. 腳本執行功能 對查詢出來的數據進行處理
  2. 支持多種語言

9.3rdplugins

  1. 支持安裝第三方插件

10. transport

  1. 是支持的協議類型 默認使用http進行交互


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM