現在學習大數據的小夥伴有不少,本篇文章扣丁學堂大數據培訓小編給讀者們分享一下大數據ElasticScarch的學習總結,對大數據開發技術感興趣的小夥伴就隨小編來了解一下吧。數據庫
從字義上理解就是彈性搜索的意思,其實他就是一個搜索引擎,基於Lucene開發的分佈式搜索引擎,和基於RESTful Web接口,搜索接近實時、快速、穩定。緩存
目前這款搜索引擎很是的健壯和流行。本文章總結的都是一些學習過的知識。另外有操做的文檔,建議最好是先本身動手搭建好以後再看本文章。(每一個人學習的方式都不同,我的不太喜歡太理論的東西,我喜歡先動手操做一遍再理論 這樣的學習方式對我來講比較高效率。)安全
特色介紹:微信
分佈式: 任何的單點出現故障,都不會影響集羣的總體運做。架構
支持RESTful接口:對外提供RESTful接口服務,下降服務的侷限性、可跨平臺。app
實時索引: 實時索引實際上是近實時,它最快的速度能夠到達寫入數據後1秒後立馬可見。負載均衡
ElasticScarch名詞的解釋:框架
每門技術都有本身的專業名詞,下面總結一下該技術的名詞解釋,在用ElasticScarch的過程當中可能會常常聽到一些專業名詞,下面爲你們解釋而且理解這些詞彙的概念。分佈式
名詞解釋:oop
Cluster(集羣): ElasticScarch是一個分佈式的搜索引擎,它由多臺機器的Node(節點)組成在一塊兒,每臺機器都有ClusterName,當他們發現本身的ClusterName相同時,就會組織成一個Cluster(集羣),他們會共同分享數據、又具備負載均衡的特性。
Node(節點):至關於一個單節點的ElasticScarch,單機的一個服務,在Cluster(集羣) 中的其中一臺主機。
Shards(分片):一個Index(索引)是由N個、多個Shards(分片)組成的,把Index(索引)的數據都分在不一樣的分片上,再把分片放在不一樣的物理機器上。由多臺機器承載這些大量的數據。
Replicas(副本):他會從Shards(分片)中複製多份的分片,當裝有Shards(分片)的機器宕機後,會自動成爲主分片,一個安全的備份。
索引名詞解釋:
Index(索引): 一個Index(索引)有一個分片的概念,一個Index(索引)包含了N個分片,由於ElasticScarch是基於Lucene封的,一個分片又能夠理解成是一個Lucene的索引。(先把它理解成一個大的關係型數據庫)
Type(類型):在一個Index(索引)中你能夠有一種或者多種數據類型。(理解成在一個關係型數據庫中有一張或者多張表)
Document(文檔):一個文檔是一個可被Index(索引)的基礎信息單元。(理解成數據庫表裏面的一條數據)
Field(列):Field(列)是ElasticScarch中最小的單位(一條數據某一列、一個字段)
咱們從最底層往上講
Gateway層:
最底這一層最主要是是作數據持久化的,其實就是數據層,能夠看到能夠支持各類的存儲系統,本地的存儲系統、HadoopHDFS等等各類各樣的數據存儲系統,用於存元數據。
Lucene層
ElasticScarch的底層就是對Lucene的一個封裝,它由始至終都要用到Lucene,ElasticScarch在Lucene的基礎之上作了一個分佈式的框架,把多個Lucene的索引給管理起來,最後作一個很是大規模的搜索引擎。
倒數第三層 index、search、mapping:
index模塊: 怎麼建立某個索引,數據如何建立,如何存儲 都由它來管理。
search模塊: 數據的查詢由它來完成。
mapping模塊: 相單于如何建立一個表的結構、怎麼建立這個mapping都由它管理
River模塊: 這個模塊如今沒有了,我記得是數據同步仍是什麼鬼(反正不重要)
倒數第四層 Discovery、Scripting、3rdPlugins:
Discovery模塊: 服務發現模塊、當有節點要加入進來須要經過此模塊,主要處理節點與節點之間的問題,目前實現有兩種方式,分別是ZEN、EC2,用的最多的是ZEN。
Scripting模塊: 腳本模塊、能夠本身寫一段腳本代碼 來進行元數據的二次處理 返回給前臺頁面。(性能低最好別用)
3rdPlugins:第三方插件,ElasticScarch支持不少的第三方插件。
Transport層:
Transport層主要用於數據的傳輸、想訪問ElasticScarch,第一步就是要和它進行鏈接,那麼鏈接的步驟和數據的傳輸,就在這層。通常咱們都用http進行交互。
Memcached層:這個架構圖是比較早期的,如今沒有這一層了。之前這層好像是作緩存的(反正不重要)。
RESTful 層:這一層就很簡單了,就不說了。
想要了解更多關於大數據方面內容的小夥伴,請關注扣丁學堂大數據培訓官網、微信等平臺,扣丁學堂IT職業在線學習教育有專業的大數據講師爲您指導,此外扣丁學堂老師精心推出的大數據視頻教程定能讓你快速掌握大數據從入門到精通開發實戰技能。