资讯专栏INFORMATION COLUMN

让我们ElasticSearch作伴,一起潇洒复习~

tomato / 1671人阅读

摘要:我们会得到查询语句中根据哪个字段进行聚合,另外每个字段基数会由其他服务进行统计,例如根据字段进行聚合,由于基数过大。如果是针对大基数字段进行聚合查询预估消耗内存较大时,就会把这种查询熔断。

12月15日,即便天气寒冷,飘着雨。跨星空间座无虚席由袋鼠云、阿里云、elastic中文社区主办袋鼠云、阿里云、有赞、滴滴的技术大牛倾囊相授~

“ElasticSearch运维技术实践”精彩上演!

Now,温故而知新,一起来回顾吧~

干货来啦,别带着它入睡,赶紧拿小本本记下来吧!

解 惑 篇

在此本萌特别精编了一辑本场沙龙现场讲师和学员的A&Q,分享给大家~

阿里云Elasticsearch实时计算平台实践

Q:使用时一边构建索引一边查询,性能会下降,如何处理?

A:

架构

1)增加clientnode,降低DataNode的CPU开销

2)换更好的硬件,多盘组成RAID或SSD

配置

1)增大translog flush时间间隔

2)增加索引refresh时间

3)调整merge速度,调小index.merge.scheduler.max_thread_count和merge.policy.max_merged_segment,增大merge.policy.segments_per_tier

4)调整mapping,不需要分词的字段不用text改用keyword

具体的还是要根据业务场景去测试和做取舍

Q:ES取消translog还有副本吗?性能提升4倍是指在哪些方面?

A:

elasticbuild是用于离线build,所以不需要副本,依赖的HDFS自身有副本机制;去掉tranlog和内存merge减少IO开销以及网络开销。

Q:写入HDFS的数据,如何恢复到ES?增量如何处理?

A:

在全量结束后会做一个snapshot到OSS上,然后再restore到在线集群。bahamut在拉起全量build任务的时候会记住全量启动的数据时间戳,然后增量任务从记录的时间戳开始补数据。

袋鼠云百亿日志数据下ES性能优化实践

Q:5台节点,master节点经常负载较高,两台MI,三台DI,合理吗?

A:

master建议3台以上类似于zk三节点的原理防止脑裂。

Q:索引规划,分片不超过40G,每个node不要超过3个分片,32G的内存配置下,每个分片1Gbuffer,有测试过吗?

A:

分片越多,写入性能更好,分片更多,分片的管理性能消耗增加,对单个索引来说。

Q:分片初始配置后不要修改?三台服务器最多分片数?

A:
改,除非做reindex的操作,建议最多不要超过12个(包括副本分片)

Q:冷热数据处理,怎么做?如何区分冷数据?查询冷数据体验如何提高?

A:

在我们使用日志的场景中,超过3天或7天的数据定义为冷数据,冷数据迁移到大存储的节点(OSS);查询时需要恢复到热节点,恢复有一定的时间。对用户来说有冷热数据存储的概念。

Elasticsearch的索引和集群隔离实践

Q:索引是每30S刷新一次,刷新的那一刻rp比较高,如何降低影响?
A:

1)建议把数据做拆分,热数据刷新频率高一点,冷数据刷新频率低一点

2)可以适当看下缩短刷新时间能否平滑毛刺

3)数据变更太频繁的内容考虑做下采样,减少更新次数

Q:多索引查询时怎么提高性能?不同索引mapping不一致,解析response耗时长
A:

1)从查询本身上做优化

2)response在业务层做多线程处理;

3)加缓存,经常查询的数据结果记录在缓存中;

4)执行中断,查询一部分结果就返回,查询高并发性能不行的。

滴滴Elasticsearch Query DSL分析系统

Q:mapping优化中对用户使用习惯未知,优化的意义在哪?
A:

ES默认对所有字段建立索引,通过mapping优化,可以自动化的把索引中用户查询不使用的字段不建索引来节省成本。自动化体现在用户新增或者减少字段能被系统自动感知到,从而减少和用户沟通成本。

Q:有哪些用户?查询的索引中不同字段的数据量是不同,此时进行聚合查询怎么办?
A:

滴滴内部使用ES的同学,例如客服,运维和RD。我们会得到查询语句中根据哪个字段进行聚合,另外每个字段基数会由其他服务进行统计,例如根据IP字段进行聚合,由于IP基数过大(count distinct IP)。如果是针对大基数字段进行聚合查询预估消耗内存较大时,就会把这种查询熔断。

Q:还没有数据进来时没有建索引时,是自动生成索引还是动态映射?
A:

每一类数据写入索引前会根据这个索引中索引模板信息进行映射,在索引模板中会定义一些字段对应的类型,例如字符串内容符合date format的字段就会映射成date类型。没有在索引模板中找到的字段其类型由es根据第一次出现这个字段的内容推导,例如字符串自动映射成keyword类型。

Q:复杂的聚合查询如何处理?
A:

聚合查询嵌套不能太深(一般不要超过3层),当然这个跟聚合查询的索引中聚合字段的基数有关,如果字段基数大聚合产生的桶就会有很多,消耗的内存也会很大,需要对消耗内存大的聚合查询语句进行熔断。至于复杂的聚合语句优化,

可以从减少聚合返回的size,合理调整聚合字段顺序,使用date_histogram来代替histogram等。

Q:gateway是自研的吗,是否会考虑开源?
A:

gateway是自研的,后期会开源。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/34363.html

相关文章

  • 跳槽季如何快速全面复习面试题

    摘要:排序算法和集合工具类排序算法和集合工具类。面试官总是问排序算法也不是在难为你,而是在考察你的编程功底。你首先要理解多线程不仅仅是和那么简单,整个并发包下面的工具都是在为多线程服务。 去年的这个时候楼主通过两个月的复习拿到了阿里巴巴的 offer,有一些运气,也有一些心得,借着跳槽季来临特此分享出来。简单梳理一下我的复习思路,同时也希望和大家一起交流讨论,一起学习,如果不对之处欢迎指正一...

    keke 评论0 收藏0
  • 长路漫漫,唯剑作伴,每日3+1,从今天开始

    摘要:写在开头接触前端一年了,很少有系统化的去整理和学习。从今天起,决定跟随大佬的脚步,每日整理前端试题,从今天做起,从自己做起。页面导入样式时,使用和有什么区别页面导入样式时,使用和有什么区别 写在开头 接触前端一年了,很少有系统化的去整理和学习。从今天起,决定跟随大佬的脚步,每日整理前端3+1试题,从今天做起,从自己做起。 ### 页面导入样式时,使用link和@import有什么区...

    MadPecker 评论0 收藏0
  • 深藏功与名,利用Python修改前女友婚礼现场WIFI,转身潇洒离去!

    摘要:对于前女友发来的结婚请柬,男人多半是不会去参加婚礼的,但也有少数前任,还是会收下请柬,准备好红包,如约去参加前女友的婚礼,而在婚礼现场默默,掏出了,连上现场的婚礼第一大厅,打开开发工具。 目录 前言 安装模块 生成密码本 完整代码 连接成功 拿下路由器 修改WIFI名称 结语 前言     ...

    LuDongWei 评论0 收藏0
  • [web前端发微] 潇洒地操作 window.history

    摘要:如果把操作换成其他操作呢比如一般的操作如此看来,借鉴于的机制和原理,我们能干的事情很多。对于需要让浏览器记录的事件操作或者状态,我们按这个套路实现就好了。从需求出发来考虑设计实现需求驱动,是培养架构能力的好习惯。原创不易,转稿请注明作者出处 如果你想在 web 应用实现类似 pjax 的功能特性,往往需要做一些准备,比如对于不支持 history.pushState 方法的部分浏览器,...

    Coly 评论0 收藏0
  • [web前端发微] 潇洒地操作 window.history

    摘要:如果把操作换成其他操作呢比如一般的操作如此看来,借鉴于的机制和原理,我们能干的事情很多。对于需要让浏览器记录的事件操作或者状态,我们按这个套路实现就好了。从需求出发来考虑设计实现需求驱动,是培养架构能力的好习惯。原创不易,转稿请注明作者出处 如果你想在 web 应用实现类似 pjax 的功能特性,往往需要做一些准备,比如对于不支持 history.pushState 方法的部分浏览器,...

    chnmagnus 评论0 收藏0

发表评论

0条评论

tomato

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<