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中