「這是我參與8月更文挑戰的第10天,活動詳情查看:8月更文挑戰」node
在ElasticSearch中主要分爲兩類節點,一類是Master節點,一類是DataNode。json
當某個節點啓動
後,而後使用Discovery機制
找到集羣中的其餘節點
,並創建鏈接
。並從候選主節點
中選出一個Master節點
。服務器
Discovery機制
:discovery.seed_hosts: ["s201", "s202", "s203"]微信
候選主節點
:cluster.initial_master_nodes: ["moe-es-node1", "moe-es-node2", "moe-es-node3"]markdown
在ElasticSearch集羣中,會有N個DataNode節點。app
大部分ElasticSearch的壓力都在DataNode節點上,在生產環境中,內存最好配置大一些。分佈式
ElasticSearch是一個分佈式的搜索引擎,索引的數據也是分紅若干部分,分佈在不一樣的服務器節點中,意思就是一臺機器存不下,多臺機器來存儲。分佈在不一樣服務器節點中的索引數據,就是分片(shard)。ElasticSearch會自動管理分片,若是發現分片不均衡,就會自動遷移。post
一個索引(index)由多個shard(分片)組成,而分片是分佈在不一樣服務器節點上的。學習
爲了保證ElasticSearch分片(shard)的高可用、容錯性,ElasticSearch會對分片(shard)引入replica(副本)機制,每個分片都有對應的副本分片。搜索引擎
每一個分片都會有一個主分片(Primary Shard),若干個副本分片(Replica Shard)
Primary Shard 和 Replica Shard不在同一個服務器節點上。
建立指定分片數量、副本數量的索引
PUT /moe_article
{
"mappings": {
"properties": {
}
},
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
}
}
複製代碼
假若有三臺服務器節點
number_of_shards:3個主分片
number_of_replicas:2個副本
shard = hash(routing) % number_of_primary_shards
routing 是一個可變值,默認是文檔的 _id
ElasticSearch節點類型分爲 Master(主節點)和 DataNode(數據節點)。分片(Shard)分爲 Primary Shard(主分片)和 Replica Shard(副分片)。分片(Shard)能夠支撐海量數據,解決單機磁盤容量問題,副本(Replica)能夠保證數據不丟失。
歡迎你們關注微信公衆號(MarkZoe)互相學習、互相交流。