Elasticserach 同步索引报错:ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 《Java 核心知识整理&面试.pdf》资源链接!!
个人网站: https://www.exception.site/essay/elasticsearch-sync-index-read-only-allow-delete
目录
- 一、背景
- 二、题外话
- 三、开始排查
- 四、为什么索引处于只读状态呢?
- 五、如何解决
一、背景
前几天小哈在钉钉群里收到重庆业务线反馈,说是中台数据传输中间件在同步 Mysql 增量数据到 Elasticsearch 总是失败。
二、题外话
你说的这个数据传输和阿里云提供的数据传输DTS是一个东西吗?
不是!上面说的数据传输是小哈所在的中台研发部自主研发的中间件,目的是为了取代各业务线对阿里DTS同步功能的依赖!
目前来说,数据传输还是要依赖于阿里开源 Canal, 或者阿里 DTS,依赖的目的是实现对 Mysql 数据库 binlog 增量订阅。
以上网络架构示例图中,中台数据传输充当一个 binlog 事件消费者的角色,通过自定义规则映射,数据加工,分发并最终同步到目标源 Elasticsearch 中。
三、开始排查
回归正题,出了问题,立马赶紧通过跳板机连上数据传输所在的服务器,开始查看日志:
看到日志中存在大量的 [FORBIDDEN/12/index read-only / allow delete (api)] 错误!!
提示错误也很明显:ES 索引处于只读状态!!在和业务组沟通以后,发现需要同步的目标索引有两个,一个商品索引(充当主表),一个商品属性索引(充当商品从表),从表同步是 ok 的,也就是说商品属性索引非只读状态,写入正常,仅仅是商品索引处于只读状态,最终未能正常同步数据。
四、为什么索引处于只读状态呢?
什么原因导致的索引只读的?小哈开始翻阅 Elasticsearch 官方文档, 原文如下:
Elasticsearch considers the available disk space on a node before deciding whether to allocate new shards to that node or to actively relocate shards away from that node.
Elasticsearch 在决定是否分配新分片给该节点,或对该节点重新定位分片之前,会先判断该节点存储空间是否足够,如果说你的使用磁盘空间已经超过 95%,ES 会自动将索引 index 置为 read-only 状态。
于是,让运维看下 ES 机器的磁盘空间是否足够,运维反馈说:前两天就是因为磁盘不足告警,刚刚扩的容,肯定是够的!
真相大白了!
前两天磁盘空间不足,那个时候,商品索引刚好有写入的操作,由于 ES 的保护机制,将该索引置为了只读状态。
五、如何解决
原因找到了!要如何解决呢?
处于只读状态的索引,只能被查询或者删除。而 ES 还不会自动将索引状态切换回来,就需要我们手动切换了:
PUT /<yourindex>/_settings
{
"index.blocks.read_only_allow_delete": null
}
对商品索引执行如上命令后。让业务组再次同步数据,一切正常了。
六、参考
- https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html
- https://stackoverflow.com/questions/48032661/transporterror403-ucluster-block-exception-ublocked-by-forbidden-12-inde
- https://blog.51cto.com/michaelkang/2164181
- https://www.aityp.com/%E8%A7%A3%E5%86%B3elasticsearch%E7%B4%A2%E5%BC%95%E5%8F%AA%E8%AF%BB/
免费分享 | 面试&学习福利资源
最近在网上发现一个不错的 PDF 资源《Java 核心知识&面试.pdf》分享给大家,不光是面试,学习,你都值得拥有!!!
获取方式: 关注公众号: 小哈学Java, 后台回复资源,既可免费无套路获取资源链接,下面是目录以及部分截图:
重要的事情说两遍,关注公众号: 小哈学Java, 后台回复资源,既可免费无套路获取资源链接 !!!
Elasticserach 同步索引报错:ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]的更多相关文章
- 解决:ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];
简记 使用SkyWalking用ES做存储,发现运行一段时间会提示ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index ...
- ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]锁定状态,无法插入数据
PUT /twitter/_settings { "index.blocks.read_only_allow_delete": null } 官网给出的解决办法
- ElasticSearch 因为磁盘空间不够引起的数据插入错误。(message [ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];]])
ES升级到624测试从Kettle插入数据的时候,经常提示如下错误 message [ClusterBlockException[blocked by: [FORBIDDEN/12/index rea ...
- es报错org.frameworkset.elasticsearch.ElasticSearchException: {"error":{"root_cause":[{"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"}],
今天es在保存数据的时候报错 org.frameworkset.elasticsearch.ElasticSearchException: {"error":{"root ...
- ElasticSearch6 报错blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];
原文连接:https://blog.csdn.net/u013042707/article/details/84110531 方案:curl -XPUT -H "Content-Type: ...
- ElasticSearch、Logstash管理和监控——blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]
1.某一天出现Kafka堆积大量未消费的记录: 2.该主题是用logstash进行消费的,然后查询logstash的日志(logstash/logs/logstash-plain.log),出现以下提 ...
- elasticsearch删除索引报错【原】
如果elasticsearch删除索引报错 curl -X DELETE 'http://10.73.26.66:9200/httpd-34-2017.08.15' {"error" ...
- git同步遇到报错
git同步遇到报错 “fatal: unable to access ‘https://github.com/ruanwenwu/newp.git/‘: Peer reports incompatib ...
- phoenix连接hbase数据库,创建二级索引报错:Error: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions: Tue Mar 06 10:32:02 CST 2018, null, java.net.SocketTimeoutException: callTimeou
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
随机推荐
- Redis 之hash集合结构及命令详解
1.hset key field value 作用: 把key中 filed域的值设为value 注:如果没有field域,直接添加,如果有,则覆盖原field域的值 2.hmset key fi ...
- vino-server服务是啥服务
近期接手一个项目,开始梳理服务器,突然发现有个进程是开启5900远程桌面端口的, 在不知情的情况下怕被人给利用了,啥也不说,先干掉再说. server端开启vino-server,允许别人查看自己的桌 ...
- jquery操作元素之间相邻的元素的获取方式
<!DOCTYPE html><html> <head> <style> .siblings * { display: block; border: 2 ...
- 原始js表单文本框初始化获取焦点和选中
发现: 1 使用dom对象.focus() 放在 window.onload 时可以 让这个DOM对象获取焦点. 2 使用DOM对象.select() 可以选中文本框中的文字. 3 不要加上on , ...
- P2080 增进感情
题目背景 小明和小红的感情,是慢慢发展起来的. 题目描述 他们对对方分别有一个好感值.定义两人的亲密程度为两人的好感值之和. 如果他们的亲密程度达到V,则他们将走到一起.他们以后的生活将取决于两人的好 ...
- NSE入门--nmap 脚本基础
- Python MongoDB 教程
基于菜鸟教程实际操作后总结而来 Python MongoDB MongoDB 是目前最流行的 NoSQL 数据库之一,使用的数据类型 BSON(类似 JSON). MongoDB 数据库安装与介绍可以 ...
- raspberry 重新烧录后的设置
raspberry初学者在使用的时候经常遇到各种问题,常常重新烧录系统,现在把新系统的常用配置和安装内容整理一下,避免自己忘记 1.安装常用软件包: sudo apt-get gedit sudo a ...
- centos中安装jdk
1.上传jdk安装文件到根目录 2.解压到相关目录 (1)创建相应目录mkdir -p /usr/local/java (2)解压 tar -zxvf jdk-7u80-linux-x64.tar.g ...
- 51nod1103 N的倍数
[题解] 先预处理出模N意义下的前缀和sum[i]. 1.如果sum[i]=0,那么1~i的数之和就是N的倍数 2.sum[i]%N总共有0~N-1这N种情况:根据1,如果sum[i]为0则必定有解: ...