ES运维(三)架构与规划(阿里云)

二龙1年前技术文章357

1、 阿里云Elasticsearch架构图

001.png

ElasticsearchKibana容器化运ECS中,监控agent(独进程)负责收集监控指标,通过SLS发送给云监控完成监控报警。实例之间由VPC实现络隔离,管控服务通过端口映射实现VPC反向接,从而管理⽤⼾Elasticsearch实例。

2、 Elasticsearch常规读写流程

002.png

A、增删改操作只能由primary shard处理

B、发送请求时客户端可以选择任意node(此节点即作为coordinate node),以为任意node都知道每个document在哪个node上。

3、 Elasticsearch节点类型图

003.png

A、 主节点数规划3个及以上

B、 数据节点根据数据量及性能要求进行规划

C、 协调节点根据请求压力规划(阿里云的协调节点一旦设置,路由请求之后从SLB分发到协调节点,不会直接访问数据节点)


4、 阿里云Elasticsearch规划

A、 磁盘容量

副本数量,1个副本。

索引开销,通常源数据10%_all 等未计算)。

操作系统预留,默认操作系统会保留5%件系统供⽤⼾处理关键流程,系统恢复,磁盘碎等。

• Elasticsearch内部开销,段合并,志等内部操作,预留20%

安全阈值,通常少预留15%的安全阈值

规划说明:

最小磁盘总 = 源数据 * 3.4

磁盘总 = 源数据 * (1 + 副本数量) * (1 + 索引开销) / (1 - Linux预留空) / (1 - Elasticsearch开销) / (1 - 安全阈值)

= 源数据 * (1 + 副本数量) * 1.7

= 源数据 * 3.4

对于_all 这项参数,如果在业务使上没有必要,我们通常的建议是禁或者有选择性的添加。

对于需要开启这个参数的索引,其开销也会随之增。根据我们的测试结果和使经验,建议在上述评估的基础上额外增加半的空间:

磁盘总 = 源数据 * (1 + 副本数) * 1.7 * (1 + 0.5)

= 源数据 * 5.1

B、 集群规格

Elasticsearch的单机规格在定程度上是限制了集群能的,根据测试结果和使经验给出如下建议。 集群最节点数 = 单节点CPU * 5
使场景不同,单节点最承载数据量也会不同,具体如下:

数据加速、查询聚合等场景 单节点最数据量 = 单节点Mem(G) * 10
志写、离线分析等场景 单节点最数据量 = 单节点Mem(G) * 50
通常情况 单节点最数据量 = 单节点Mem(G) * 30

004.png

C、 Shard大小和数量

Elasticsearch集群中任何个索引都需要有个合理的shard规划,很多情况下都会有个更好的策略来替换Elasticsearch默认的5shard7以后的版本默认1shard)。

建议在小规格节点下单shard小不要超过30GB。更规格的节点单shard小不要超过50GB。

对于志分析场景或者超索引,建议单shard小不要超过100GB

• shard的个数(包括副本)要尽可能匹配节点数,等于节点数,或者是节点数的整数倍。

通常我们建议单节点上同索引的shard个数不要超5个。

D、 产品资源

节点数量限制:250
磁盘小限制:1602048GB
规格限制:

- elasticsearch.sn2ne.xlarge416GB

- elasticsearch.sn2ne.2xlarge832GB

- elasticsearch.sn2ne.4xlarge1664GB

相关文章

Java-API对HDFS的操作(IDEA版)

Java-API对HDFS的操作(IDEA版)

前期工作首先就是安装maven在win系统下不配置hadoop环境,直接运行代码会报错,显示缺少winutils.exe 和 hadoop.dll 两个文件首先添加pom.xml文件  <dep...

dolphinscheduler部署-FAQ

dolphinscheduler部署-FAQ

如果是cdh集群会遇到一个问题5678端口被占用这是因为cdh的agent用了5678那我们改下配置文件文件:/opt/apache-dolphinscheduler-3.1.8-bin/st...

CPU--上下文切换

CPU--上下文切换

一、概述1、Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 ...

使用Sqoop将数据从Hive导入MySQL(一)

使用Sqoop将数据从Hive导入MySQL(一)

使用Sqoop将数据从Hive导入MySQL首先查看csv数据类型创建类似的hive表并导入数据CREATE TABLE data (    province STRING,    code INT,...

CDH实操--hive高可用

CDH实操--hive高可用

前言在CDH中,hive metastore、hiveserver2若角色单实例部署,或者部署多个实例但是连接配置任选其一的话,均存在单点问题,一旦实例故障就会影响业务稳定;这时我们就好考虑高可用部署...

Java-API-MapReduce的操作WordCount篇

Java-API-MapReduce的操作WordCount篇

首先就是pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。