“这是我参与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)互相学习、互相交流。