每个分片存储数据量可以控制在几GB到几十GB之间,涉及到时间相关数据场景中,分片可以控制在20GB到40GB之间 ,大多数场景分片大小限制在50G以内。可以根据索引数据总量估算每个索引对应的分片数。如果索引的数据总量在1GB内,每个索引分配1个分片即可。
es7.0之前版本默认为一个索引创建5个分片,每个分片有1个副本。es7.0之后默认为一个索引创建1个分片,每个分片有1个副本。主分片及副本都能处理查询请求,不同副本需要存在不同节点上,副本过多会导致数据过大数据冗余。索引创建初始可以选择默认1个副本,随着数据量增多和查询要求的提高后续再动态增加副本数。
Master节点可以设置3个。data数据节点主要提供数据写入和查询,会使用内存来进行数据缓存,所以数据读取和写入与节点JVM堆内存有关。一般偏重于搜索查询的业务,每个节点堆内存与索引数据存储比例为1G:16G ;偏重于存储的业务每个节点堆内存与索引数据存储比例为1G:48G~96G。ES推荐每个节点堆内存配置32G左右,可以根据以上比例计算每个节点存储的数据量来计算大体的数据节点数。
最准确的方式是结合自己的先有集群进行压测得到准确数据。