集羣,一個ES集羣由一個或多個節點(Node)組成,每一個集羣都有一個cluster name做爲標識。一下是咱們的4節點集羣。html
節點,一個ES實例就是一個node,一個機器能夠有多個實例,因此並不能說一臺機器就是一個node,大多數狀況下每一個node運行在一個獨立的環境或虛擬機上。node
索引,即一系列documents的集合。git
一個擁有兩個主分片一份副本的索引能夠在四個節點中橫向擴展。github
分片是什麼?sql
簡單來說就是我們在ES中全部數據的文件塊,也是數據的最小單元塊,整個ES集羣的核心就是對全部分片的分佈、索引、負載、路由等達到驚人的速度。 數據庫
實列場景:架構
假設 IndexA 有2個分片,咱們向 IndexA 中插入10條數據 (10個文檔),那麼這10條數據會盡量平均的分爲5條存儲在第一個分片,剩下的5條會存儲在另外一個分片中。app
和主流關係型數據庫的表分區的概念有點相似,若是你比較熟悉關係型數據庫的話。yii
建立 IndexName 索引時候,在 Mapping 中能夠以下設置分片 (curl)curl
PUT indexName
{
"settings": { "number_of_shards": 5 } }
Elastic 官方文檔建議:一個 Node 最好不要多於三個 shards。注意 索引創建後,分片個數是不能夠更改的。
在進行歷史數據入庫的時候,建議先在settings中將備份設爲0,refresh關閉來提高索引效率,數據入庫完畢可恢復須要值。
"settings": {
"number_of_shards": 5, "number_of_replicas": 0, "refresh_interval": -1 }
分片好處
1.分片,ES是分佈式搜索引擎,每一個索引有一個或多個分片,索引的數據被分配到各個分片上,至關於一桶水用了N個杯子裝
2.分片有助於橫向擴展,N個分片會被儘量平均地(rebalance)分配在不一樣的節點上(例如你有2個節點,4個主分片(不考慮備份),那麼每一個節點會分到2個分片,後來你增長了2個節點,那麼你這4個節點上都會有1個分片,這個過程叫relocation,ES感知後自動完成)
3.分片是獨立的,對於一個Search Request的行爲,每一個分片都會執行這個Request.
4.每一個分片都是一個Lucene Index,因此一個分片只能存放 Integer.MAX_VALUE - 128 = 2,147,483,519 個docs。
分片個數
建議:(僅參考)
一、每個分片數據文件小於30GB
二、每個索引中的一個分片對應一個節點
三、節點數大於等於分片數
1.複製,能夠理解爲備份分片,相應地有primary shard(主分片)
2.主分片和備分片不會出如今同一個節點上(防止單點故障),默認狀況下一個索引建立5個分片一個備份(即5primary+5replica=10個分片)
3.若是你只有一個節點,那麼5個replica都沒法分配(unassigned),此時cluster status會變成Yellow。
經過調整副本數來均衡節點負載
事實上節點 3 持有兩個副本分片,然而沒有主分片並不重要。副本分片與主分片作着相同的工做;它們只是扮演着略微不一樣的角色。沒有必要確保主分片均勻地分佈在全部節點中。
從這個圖我發現兩個Node節點 ,5個shard分片,1個replica備份,沒毛病啊,每一個節點就是有完整的信息:
ok,這裏是3個node,3個shard,1份replica,發現了嗎,這邊的話每一個節點並無完整的數據,可是任意兩個節點有完整的數據即便一臺機器宕機,剩下兩個節點依然能夠提供完整的數據,依然知足高可用。
結論
發現規律了嗎?其實很簡單 若是每一個機器上要有完整的數據 ,須要知足 分片數*節點數的總分片數量,固然,這裏的總分片數量包含了 主分片和副本分片。所以,咱們得出一個公式:副本數replica =(shardNum*nodeNum-shardNum)/shardNum。當replica大於此值時,知足要求。
https://www.elastic.co/guide/cn/elasticsearch/guide/current/_analytics.html
https://www.cnblogs.com/52fhy/p/9826356.html
https://blog.csdn.net/yzhujue/article/details/53128813?utm_source=blogxgwz0
http://www.lanrenkaifa.com/post/57
IK分詞
https://github.com/medcl/elasticsearch-analysis-ik/releases
ELK下載地址
https://www.elastic.co/cn/downloads/past-releases
https://www.yiibai.com/elasticsearch/elasticsearch-getting-start.html