ES-PHP向ES批量添加文档报No alive nodes found in your cluster
2016年12月14日 12:31:40

阅读数:2668

参考文章phpcurl 请求Chunked-Encoded data 遇到的一个问题

问题描述

为了提高保存数据到es消耗的时间,采取积攒到3000条文档的时候才保存到ES中,之前一直没有问题,昨天新上了几个log服务器后,经常会发现保存失败报如下错误:

No alive nodes found in your cluster
  • 1

首先我要说这个错误真坑啊,以这个关键字搜索问题,花了两天也没解决,后来无意中翻墙搜google,网后翻了好几页看到上面的参考文章,才知道,原来真正的错误信息隐藏在ES-PHPConnection类中,代码如下:

添加var_dump($response['error']->getMessage());一行代码来输出一下错误信息,错误信息如下:

cURL error 55: Send failure: Broken pipe
  • 1

首先觉得是curlbug,所以我升级到了最新版本,发现问题还在,然后我调整3000条文档一保存改为500条,发现保存是没问题的,后来我怀疑是curlbody体是不是对大小有限制,但是经过询问得到的回复是没有这方面的限制,但是组长给我了一个提示,curl没有限制,可能是接收方有限制,这个提示给我了新方向,查了一下es果然有配置,配置项为http.max_content_length,默认为100M,然后我尝试了发送不同大小的数据看反应。

  • 第一次:141M,报错
  • 第二次: 40M,保存成功

然后我跟es维护人员确认一下http.max_content_length确实是100M,由此问题定位成功,原因也知道了

解决方法

  • 1.一次性保存500条数据,确保一次性存储数据量不超过100M
  • 2.由原来的VIP(一个host)改为几点IP(多host),这样做的好处是可以重试多次。

ES-PHP向ES批量添加文档报No alive nodes found in your cluster的更多相关文章

  1. ES-PHP向ES批量添加、查询文档报 No alive nodes found in your cluster

    转自: https://blog.csdn.net/itfootball/article/details/53637238 问题描述为了提高保存数据到es消耗的时间,采取积攒到3000条文档的时候才保 ...

  2. ES添加文档 踩坑之 —— The number of object passed must be even but was [1]

    读取文件,获取json格式的数据doc, 然后使用 bulkRequestBuilder.add(client.prepareIndex(index, type, id).setSource(doc) ...

  3. Eclipse中添加文档注释快捷键

    该博客仅记录自己添加文档注释时的操作,由于参考文档地址忘了,因此如果与其他文档重复,请见谅 以下是我的操作过程: 例如: /**   * @param     * @return   */ 快捷键为: ...

  4. Solr添加文档(XML)

    在上一章中,我们学习解释了如何向Solr中添加JSON和.CSV文件格式的数据.在本章中,将演示如何使用XML文档格式在Apache Solr索引中添加数据. 示例数据 假设我们需要使用XML文件格式 ...

  5. Xcode - 添加文档注释插件

    Xcode自动添加文档注释插件: https://github.com/onevcat/VVDocumenter-Xcode 功能演示: 感谢onevcat的分享!

  6. es的rest风格的api文档

    rest风格的api put http://127.0.0.1:9200/索引名称/类型名称/文档id (创建文档,指定文档id) post http://127.0.0.1:9200/索引名称/类型 ...

  7. 迁移TFS,批量将文档导入SharePoint 2013 文档库

    一.需求分析 公司需要将存在于旧系统(TFS)所有的文档迁移至新系统(SharePoint 2013).现已经将50G以上的文档拷贝到SharePoint 2013 Server上.这些文档是一些不规 ...

  8. dedecms批量删除文档关键词可以吗

    这几天在重新整服务器,几个站点都是用dedecms搭建的,版本相对比较早,虽然都已经打了补丁,但客户还是在纠结,所以就下载了新的系统进行搭建(注意编码要和原来的一样),导入数据,一切安好,可发现后台有 ...

  9. mongodb命令----批量更改文档字段名

    因为mongodb基于javascript的特性,为了体验cursor的威力我们不妨利用js的for循环创建记录 先创建文档 db.createCollection("columnsampl ...

随机推荐

  1. 如何在Visual Studio(VS)2012里使用libsvm工具箱

    原文:http://blog.csdn.net/u014691453/article/details/40393137 软件版本: Visual Studio版本:VS2012 (注:使用方法在 VS ...

  2. Vim的使用 区域选择

    1.Visual Block 区域选择,这里的Visual表示视觉,图像,可视化. 2.    小写v:字符选择     shift+v(大写V):行选择               ctrl+v:矩 ...

  3. Python Web Scraper - Simple Url Request

    from urllib.request import urlopen html = urlopen("http://www.baidu.com") print(html.read( ...

  4. 转:不在同一个服务器上的数据库之间的数据操作(oracle/sql server的对比)

    如何操做不在同一个数据库中的数据操作: 一.对于SQL server来讲:  1.采用创建链接服务器的方式:    (1).创建链接服务器       exec sp_addlinkedserver  ...

  5. pomelo生命周期回调和组件加入

    一 生命周期回调 生命周期回调可以让开发人员在不同类型的server生命周期中进行详细操作. 提供的生命周期回调函数包含:beforeStartup,afterStartup,beforeShutdo ...

  6. js 回调函数 精析

      UpdateTime--2018年9月13日16点51分 1.什么是回调函数? 在JavaScript中,回调函数具体的定义为: 函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行 ...

  7. FFMPEG音视频解码

    文章转自:https://www.cnblogs.com/CoderTian/p/6791638.html 1.播放多媒体文件步骤 通常情况下,我们下载的视频文件如MP4,MKV.FLV等都属于封装格 ...

  8. Linux系统里如何彻底的清空终端屏幕?

    Linux用户,特别是Ubuntu或CentOS用户,基本上都习惯使用clear命令或Ctrl+L组合快捷键来清空终端屏幕.但是,这样做其实并不是真正的清空屏幕,它只是给人一种错觉,让人以为屏幕清空了 ...

  9. 关闭危害的端口DOS命令(转载)

    rem ipseccmd -w REG -p "HFUT_SECU" -r "Block UDP/137" -f *+0:137:UDP -n BLOCK -x ...

  10. mysql numberic types ---- mysql 数值类型详解

    编程语言中大多都有数据类型一说.虽然mysql 的sql 语句与标准sql 有别.但是宏观上看还是差不多的:下面我们说一下mysql数据库中的数值类型 一.在mysql里有那些类型可以表示数值: 1. ...