关于存放3T左右的数据的ES集群机器配置

作者 zhugw | 发布于2018年09月17日 | 阅读数:347

打算使用ES对抓取下来的文章进行检索, 文章数据量预计是3T左右, 假设机器规格是 `8C 32G` 每个shard两个副本 那么这么一个集群需要多少台机器呢?
 
根据阿里云给的公式:


最小磁盘总大小 = 源数据 * (1 + 副本数量) * 1.7 = 3 * 3 * 1.7 = 15.3
 


SSD 云盘最大存储空间支持2T 
 
那么 ==> 需要 15.3 / 2 ~= 8 个node
 
同时又提到


建议在小规格节点下单shard大小不要超过30GB。更高规格的节点单shard大小不要超过50GB。
对于日志分析场景或者超大索引,建议单shard大小不要超过100GB。
shard的个数(包括副本)要尽可能匹配节点数,等于节点数,或者是节点数的整数倍。
通常我们建议单节点上同一索引的shard个数不要超5个。
每个node的disk控制在70%以下~2TB可以用1.4TB的样子


 
假设每个shard 50GB 1.4T/0.05 = 28 一个node可以支持28个shard
 
==》 8个node 75个shard 副本2
 
这样配置有没问题?
 
另外怎么感觉好像没有什么内存的事 只要磁盘能装的下就行了呢? 
 
----------------------------------------------------------------------------
 
背景
假设每天抓取50万条数据 每条数据8K 抓取的数据同步到ES中进行检索统计 数据保存三年
 
一月 119G
一年 1.4T
二年 2.8T
三年 4.3T
 
机器规格:8C 32G 2TSSD云盘
集群配置: 1个副本
最小磁盘总大小 = 源数据 * 3.4 node数 = 最小磁盘总大小 / 2T
每个shard 50G 每个node支持 1.4/0.05 = 28个shard (每个node的disk控制在70%以下~2TB可以用1.4TB的样子)
 
一年的集群配置
3个node 3*28/2 = 42shard
二年的集群配置
5个node 5*28/2 = 70shard
三年的集群配置
7个node 7*28/2 = 98shard
 
出于经济成本的考虑 先购买3个node 但分片数=98 这样的话 当后面增加节点的时候 不用reshard了 这样可行吗?
 
已邀请:

ghnjk

赞同来自: heeexy

感觉这个太奢侈了点。
3T的数据 需要 11 台 2T ssd。
几个个人建议:
1) 副本数建议设置成1(总共两份数据)。实在担心数据丢失,建议将原数据压缩存储到其他云盘
2)如果是静态数据建议强制合并成一个段。
3)如果没有大规模的聚合、排序查询场景,查询速度又不是要求很高,建议考虑用机械硬盘试试。节省成本。

weizijun - 专注elasticsearch三十年

赞同来自:

3T的源数据存入es一般都不需要3T,看你索引字段多少和内容,数据还是得以实际ES的容量为准,有些极端情况,开启best_compressd 3T的源数据可能在ES只有几百G

ghnjk

赞同来自:

没权限评论。。。。
@zhugw接你上面的疑问:1) 副本增加确实会增加查询性能。不过你用了SSD,感觉很足够了。主要是你的查询请求量和查询场景看了。SSD还是很强大的。(如果查询并发实在要求很高, 最好能够提前压一下你的查询。如果量很大, 建议比较深入的分析一下一些相似的查询, 优化查询dsl,增加缓存命中)
2) 就是数据不怎么更新,还是类似日志数据每时每刻都有删除和写入。
3)  聚合场景多吗?一般聚合命中多少条数据呢?

zqc0512 - andy zhou

赞同来自:

3T数据,11个节点,每个节点CPU 内存是怎样的呢?
业务需求是撒,查询耗CPU的,segement Lucene 耗内存的。
8C 16核?看看SSD一块多大吧。
感觉上要不了11个节点啊。
1块SSD就2T了,根据业务测试下。感觉上3个节点就行了……
 
 

laoyang360 - [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:blog.csdn.net/laoyang360

赞同来自:

1、建议1个副本。您不是高可用的场景,一个副本足够,如果对数据丢失也能容忍,那就0副本(极端硬件不够的情况)。
2、也就是您需要至少6TB以上的磁盘存储。 1.4TB*5=7TB。 5个SSD足够(已经很奢华的配置)
3、再考虑配置几个节点,应该就是5个节点了。
 

要回复问题请先登录注册