天天看點

大資料之Elasticsearch入門——第一章Elasticsearch基礎1.Elasticsearch介紹2.Elasticsearch功能3.Elasticsearch功能4.Elasticsearch安裝

1.Elasticsearch介紹

Elasticsearch不是什麼新技術,主要是将全文檢索、資料分析以及分布式技術,合并在了一起,才形成了獨一無二的Elasticsearch.

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

Elasticsearch是我見過的最簡單的資料分析處理的工具,單機運作的話下載下傳後解壓一下簡單配置後就能用,分布式叢集也就稍微多一點配置。

2.Elasticsearch功能

(1)分布式的搜尋引擎和資料分析引擎

(2)全文檢索,結構化檢索,資料分析(不支援關聯查詢)

(3)對海量資料進行近實時的處理

3.Elasticsearch功能

(1)Near Realtime(NRT):近實時。包括寫入資料到資料能被查詢到(秒級),基于es執行的搜尋分析達到秒級。

(2)Cluster:叢集。包含多個節點,最簡單的叢集就是一個節點構成的叢集。

(3)Node:節點。叢集中的一個節點,每個節點有一個預設的名稱。

(4)Document&field:文檔,es中最小的資料單元。document可以了解為mysql中的一行資料,field可以了解為mysql中一行資料的某個字段。

(5)Index:索引,包含一堆有相似結構的文檔資料。index可以了解為mysql的庫,和傳統資料庫中的索引不是一個概念。

(6)Type:類型,每個索引裡都可以有一個或多個type。type可以了解為mysql裡的表。注意從ES6.x開始,type的概念就淡化了,在es6.x裡面,type預設為_doc,也就是一個index裡面就隻有一個type,名字是_doc。從ES7.x開始,就取消了type。

(7)shard:又叫做primary shard。單台機器無法存儲大量資料,es可以将一個索引中的資料切分為多個shard,分布在多台伺服器上存儲。這樣在es上執行搜尋和分析的性能得到更好的提升。primary shard是建立索引時設定的,不能修改,預設5個。

(8)replica:又叫做replica shard。任何一個伺服器随時可能故障或當機,此時primary shard可能就會丢失,是以可以為每個primary shard建立多個replica副本。replica可以在primary shard故障時提供備用服務,保證資料不丢失。replica shard可以随時修改數量,預設是1個。

預設情況下每個索引10個shard,5個primary shard,同時就會有5個replica shard。通常情況下把primary shard稱為shard,replica shard稱為replic。增減節點時,shard會自動在nodes中負載均衡,shard的個數不會變,但是資料會做負載均衡。shard的數量在建立索引的時候就固定了,replica的數量可以随時修改(增加replic可以提高叢集吞吐量,性能更好)。shard不能和自己的replica放在同一個節點上(否則節點當機,shard和replica都丢失,起不到容錯的作用),但是可以和其他索引的shard的replica放在同一個節點上。

針對shard和replic舉個例子,搭建一個單節點的es叢集。建立一個索引,然後配置設定3個shard,那麼這個索引預設會有3個replic。3個shard會配置設定到一個節點上,但是另外3個replic無法配置設定。叢集可以正常工作,不過叢集一旦當機,叢集就不可用。

對比一下傳統的資料庫就能大緻了解es了。

Elasticsearch            mysql資料庫

Document                        行

Type                                表

Index                               庫 

4.Elasticsearch安裝

去官網下載下傳Elasticsearch和kibana,我下載下傳的都是6.6.0版本的。這裡說下Elasticsearch,logstash,kibana就是常說的ELK。logstash和flume很像,用來做日志資料采集的。kibana用來做可視化分析的。

1.安裝java, version在1.8以上。

2.解壓Elasticsearch,進入bin目錄,直接啟動elasticsearch.sh即可。(windows也一樣,啟動elasticsearch.bat即可,如果是單純學習elasticsearch建議下載下傳windows版本的,因為不用開啟虛拟機。)

3.通路http://localhost:9200/?pretty,頁面上會列印如下資訊,證明elasticsearch啟動成功。

{
  "name" : "1q8X7U4",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "iKjNXfpBTRCiFgOOZV7ROg",
  "version" : {
    "number" : "6.6.0",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "a9861f4",
    "build_date" : "2019-01-24T11:27:09.439740Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
           

4.解壓kibana,進入bin目錄,直接啟動kibana.sh即可。(window啟動kibana.bat即可)

5.通路http://localhost:5601/app/kibana,能正常通路說明kibana安裝成功。

6.選擇kibana左側的Dev tools,在這裡寫query dsl能幫助我們更好學習es,你可以将kibana了解為es的可視化界面操作,當然他的功能不僅僅于此。

大資料之Elasticsearch入門——第一章Elasticsearch基礎1.Elasticsearch介紹2.Elasticsearch功能3.Elasticsearch功能4.Elasticsearch安裝

7.在Dev Tools的console裡面輸入GET _cluster/health,并點選右邊的三角号執行。界面右邊會顯示es叢集的資訊。

大資料之Elasticsearch入門——第一章Elasticsearch基礎1.Elasticsearch介紹2.Elasticsearch功能3.Elasticsearch功能4.Elasticsearch安裝

繼續閱讀