spark 向elasticsearch 优化写入数据

 一、前言

       近期有个项目用spark向es(版本5.x)写入数据,该项目是离线任务,每天创建一个index存数据,随着数据量的增大(2亿+,峰值有5亿+)。性能出现问题:写入时间过长,es响应不过来等

 

二、 调整策列

       1.由于该项目是离线任务,并不是需要实时查询,可以将es中的near real-time search属性 设置较高的阈值30s或者-1 。默认情况下写入到es的数据并不是马上就刷到磁盘,先放在 in-memory buffer,但客户端是读取不到in-memory buffer中的数据,为了实时查询,需要定期(默认1s)将该数据刷写到介于es和磁盘之间的filesystem cache 即refresh,该操作轻量级的 。写入到filesystem cache相当于创建新的segment  是可以被客户端读取到的, 默认属性(阈值是1s)由于快速的刷数据导致很多小量的filesystem cache,同时写入到filesystem cache仍然有一些性能消耗,所以根据应用的使用场景,如果是关注写入速度并不关注实时查询,可以适当调整默认的阈值的,该属性是在创建索引(属性值为:index.refresh_interval)的时候设置 的 。关于near real-time search 原理 见官网链接:Near Real-Time Search

       2.index.translog.durability 默认值是request,该属性类似于hba

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值