1. 程式人生 > >ElasticSearch群集搭建介紹,實現高可用

ElasticSearch群集搭建介紹,實現高可用

ElasticSearch簡介:

ElasticSearch 是一個分散式、高擴充套件、高實時的搜尋與資料分析引擎。它能很方便的使大量資料具有搜尋、分析和探索的能力。充分利用ElasticSearch的水平伸縮性,能使資料在生產環境變得更有價值。ElasticSearch 的實現原理主要分為以下幾個步驟,首先使用者將資料提交到Elastic Search 資料庫中,再通過分詞控制器去將對應的語句分詞,將其權重和分詞結果一併存入資料,當用戶搜尋資料時候,再根據權重將結果排名,打分,再將返回結果呈現給使用者。

 

ElasticSearch可以做什麼:

Elasticsearch可以用於搜尋各種文件。它提供可擴充套件的搜尋,具有接近實時的搜尋,並支援多租戶。”Elasticsearch是分散式的,這意味著索引可以被分成分片,每個分片可以有0個或多個副本。每個節點託管一個或多個分片,並充當協調器將操作委託給正確的分片。再平衡和路由是自動完成的。“相關資料通常儲存在同一個索引中,該索引由一個或多個主分片和零個或多個複製分片組成。一旦建立了索引,就不能更改主分片的數量。

 

ElasticSearch成功案例:

1) 2013年初,GitHub拋棄了Solr,採取ElasticSearch 來做PB級的搜尋。 “GitHub使用ElasticSearch搜尋20TB的資料,包括13億檔案和1300億行程式碼”。

2)維基百科:啟動以elasticsearch為基礎的核心搜尋架構。 

3)SoundCloud:“SoundCloud使用ElasticSearch為1.8億使用者提供即時而精準的音樂搜尋服務”。 

4)百度:百度目前廣泛使用ElasticSearch作為文字資料分析,採集百度所有伺服器上的各類指標資料及使用者自定義資料,通過對各種資料進行多維分析展示,輔助定位分析例項異常或業務層面異常。目前覆蓋百度內部20多個業務線(包括casio、雲分析、網盟、預測、文庫、直達號、錢包、風控等),單叢集最大100臺機器,200個ES節點,每天匯入30TB+資料。

 

Elasticsearch的特點:

1)可以作為一個大型分散式叢集(數百臺伺服器)技術,處理PB級資料,服務大公司;也可以執行在單機上,服務小公司

2)Elasticsearch不是什麼新技術,主要是將全文檢索、資料分析以及分散式技術,合併在了一起,才形成了獨一無二的ES;lucene(全文檢索),商用的資料分析軟體(也是有的),分散式資料庫(mycat)

3)對使用者而言,是開箱即用的,非常簡單,作為中小型的應用,直接3分鐘部署一下ES,就可以作為生產環境的系統來使用了,資料量不大,操作不是太複雜

4)資料庫的功能面對很多領域是不夠用的(事務,還有各種聯機事務型的操作);特殊的功能,比如全文檢索,同義詞處理,相關度排名,複雜資料分析,海量資料的近實時處理;

 

好了,介紹了這麼多進入正題,首先是環境準備:

1)>=jdk1.7(ES版本不同,對jdk的版本要求也不一樣)

2)下載Elasticsearch包,直接在ES官網下載,ES最近幾年特別活躍,版本更新頻次也比較高

3)準備三臺伺服器

伺服器名稱 IP地址

node-1 192.168.86.130

node-2 192.168.86.131

node-3 192.168.86.132

4)編輯elasticsearch.yml檔案,檔案在安裝包/config/目錄下

http.cors.enabled: true http.cors.allow-origin: "*" node.master: true node.data: true cluster.name: ESTest ###保證三臺伺服器節點叢集名稱相同 node.name: node-1 ###每個節點名稱不一樣,其他兩臺為node-2,node-3 network.host: 192.168.86.130 ###實際伺服器的ip地址 discovery.zen.ping.unicast.hosts: ["192.168.86.130", "192.168.86.131","192.168.86.132"] ###多個服務叢集ip discovery.zen.minimum_master_nodes:1

5)其他幾臺伺服器只需修改node.name和network.host屬性

6)分別啟動每臺伺服器上的ES

7)在位址列輸入http://192.168.86.130/_cat/nodes?pretty驗證群集是否啟動,帶“*”證明是master節點,否則是slave節點

是不是ES的群集搭建非常簡單,那是因為ES在背後為我們做了很多事情,有人可能會問,其中某臺服務掛掉了怎麼辦:

(1)ES會自動選舉新的master;

(2)ES在群集中會有多副本,異地備份能力;

(3)故障恢復,資料恢復能力

下一篇將會給大家分享,如何通過NBI大資料視覺化工具連線Elasticsearch服務,通過寫SQL的方式分析ES中