ES集群修改index副本数报错 :index read-only / allow delete

ES集群修改index副本数,报错 :index read-only / allow delete (api)

原因:

es集群数据量增速过快,导致个别es node节点磁盘使用率在%80以上,接近%90 ,由于ES新节点的数据目录data存储空间不足,导致从master主节点接收同步数据的时候失败,此时ES集群为了保护数据,会自动把索引分片index置为只读read-only.

故障处理办法:

1:集群加节点,简单粗暴;

2:降低集群index副本数量;

3:其它:增加磁盘、删除历史数据等;

我们采用方案2,作为临时应对方案,待集群可以正常数据写入后,再指向步骤 1或者3的操作彻底解决问题;

操作步骤:

1:在Kibana的开发工具Dev Tools中执行(或在服务器上通过curl工具发起PUT请求,下文同)

修改索引副本数量为1

PUT 48_hot_v1/_settings
{
  "index": {
        "number_of_replicas": "1"
        }
}

报错如下:

api接口执行操作

{
  "type": "cluster_block_exception",
  "reason": "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"
}

报错原因:

es磁盘已满而无法索引更多文档,则elasticsearch将切换为只读。它确保了只读查询的可用性。Elasticsearch不会自动切换回来,可以使用如下方法切换回正常模式:

curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d ‘{"index.blocks.read_only_allow_delete": null}‘

或者,在Kibana的开发工具Dev Tools中执行

PUT _settings
    {
    "index": {
    "blocks": {
    "read_only_allow_delete": "false"
    }
    }
    }

验证 :查看指定索引的设置信息

GET 48_hot_v1/_settings

查找内容如下:
        },
        "blocks": {
          "read_only_allow_delete": "false"
        },

配置生效后集群开始删除index副本数据,datanode 节点磁盘空间逐步释放。

原文地址:http://blog.51cto.com/michaelkang/2164181

时间: 2024-10-06 18:42:27

ES集群修改index副本数报错 :index read-only / allow delete的相关文章

Hadoop集群中使用Hive查询报错

今天在使用Hive查询某分析数据最大值的时候,出现了一定的问题,hive中现象如下: Caused by: java.io.FileNotFoundException://http://slave1:50060/tasklog?attemptid=attempt_201501050454_0006_m_00001_1 然后查看一下jobtracker的日志: 2015-01-05 21:43:23,724 INFO org.apache.hadoop.mapred.JobInProgress:

ELK简介 es集群部署 es插件应用

Top NSD ARCHITECTURE DAY03 案例1:ES集群安装 案例2:ES集群安装配置 案例3:练习curl命令 案例4:练习插件 案例5:插入,增加,删除查询数据 案例6:安装Kibana 1 案例1:ES集群安装 1.1 问题 本案例要求: 准备1台虚拟机 部署elasticsearch第一个节点 访问9200端口查看是否安装成功 1.2 方案 1)ELK是日志分析平台,不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,ELK分别代表: Elasticsearch:

ELasticSearch(五)ES集群原理与搭建

一.ES集群原理 查看集群健康状况:URL+ /GET _cat/health (1).ES基本概念名词 Cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的. Shards 代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大

ES集群故障排查记录

这两天线上的ES集群总是有问题,开始查找原因发现这段时间各个机器的负载都很高,本来希望通过jstack找到一些信息,但居然提示'Unable to open socket file: target process not responding or HotSpot VM not loaded',度娘提示应该是机器很久没有重启了,没办法,只能放弃这种方式.第一步就没有走通.继续查发现几台机器 cpu 内存 都很高, 但是硬盘不太对劲,有一台机器硬盘使用下降的厉害,而另外几台硬盘使用都是上升的,初步

部署带有验证的es集群及创建快照

1?? 环境准备① 关闭防火墙.selinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configsetenforce 0systemctl stop firewalldsystemctl disable firewalld ② 修改系统最大打开文件数和进程数cat <<EOF >> /etc/security/limits.conf* soft nofile 65536* hard nofile 6

ES 集群关键状态指标

ES监控状态指标分三个级别: 1:集群级别:集群级别的监控主要是针对整个ES集群来说,包括集群的健康状况.集群的状态等.2:节点级别:节点级别的监控主要是针对每个ES实例的监控,其中包括每个实例的查询索引指标和物理资源使用指标.3:索引级别:索引级别的监控主要是针对每个索引来说,主要包括每个索引的性能指标. 1集群级别: 查看方法: api获取:http://ip:9200/_cluster/health?pretty 或者 Kibana的开发工具Dev Tools中执行 : 查看集群健康状态

ES集群部署及调优

系统:Centos6ES版本:6.4.0服务器三台172.16.0.8172.16.0.6172.16.0.22 部署jdk解压jdk放在/data目录,/data/jdk配置环境变量,/etc/proifle里面加入如下 export JAVA_HOME=/data/jdk export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH s

elk中es集群web管理工具cerebro

cerebo是kopf在es5上的替代者 安装es虽然不能再root下运行,但是cerebro 可以 run as root is ok wget https://github.com/lmenezes/cerebro/releases/download/v0.8.1/cerebro-0.8.1.tgz tar zxvf cerebro-0.8.1.tgz cd cerebro-0.8.1 bin/cerebro #具体新版本查看https://github.com/lmenezes/cereb

EFK教程(5) - ES集群开启用户认证

基于ES内置及自定义用户实现kibana和filebeat的认证 作者:"发颠的小狼",欢迎转载 目录 ? 用途 ? 关闭服务 ? elasticsearch-修改elasticsearch.yml配置 ? elasticsearch-开启服务 ? elasticsearch-建立本地内置用户 ? kibana-创建私钥库 ? kibana-WEB界面确认用户 ? filebeat-在WEB界面创建角色及用户 ? filebeat-服务器上创建密钥库 ? filebeat-配置file