ES-PHP向ES批量添加文档报No alive nodes found in your cluster
ES-PHP向ES批量添加文档报No alive nodes found in your cluster
问题描述
为了提高保存数据到es消耗的时间,采取积攒到3000条文档的时候才保存到ES中,之前一直没有问题,昨天新上了几个log服务器后,经常会发现保存失败报如下错误:
No alive nodes found in your cluster
- 1
首先我要说这个错误真坑啊,以这个关键字搜索问题,花了两天也没解决,后来无意中翻墙搜google,网后翻了好几页看到上面的参考文章,才知道,原来真正的错误信息隐藏在ES-PHP的Connection类中,代码如下:
添加var_dump($response['error']->getMessage());一行代码来输出一下错误信息,错误信息如下:
cURL error 55: Send failure: Broken pipe
- 1
首先觉得是curl的bug,所以我升级到了最新版本,发现问题还在,然后我调整3000条文档一保存改为500条,发现保存是没问题的,后来我怀疑是curl的body体是不是对大小有限制,但是经过询问得到的回复是没有这方面的限制,但是组长给我了一个提示,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的更多相关文章
- ES-PHP向ES批量添加、查询文档报 No alive nodes found in your cluster
转自: https://blog.csdn.net/itfootball/article/details/53637238 问题描述为了提高保存数据到es消耗的时间,采取积攒到3000条文档的时候才保 ...
- ES添加文档 踩坑之 —— The number of object passed must be even but was [1]
读取文件,获取json格式的数据doc, 然后使用 bulkRequestBuilder.add(client.prepareIndex(index, type, id).setSource(doc) ...
- Eclipse中添加文档注释快捷键
该博客仅记录自己添加文档注释时的操作,由于参考文档地址忘了,因此如果与其他文档重复,请见谅 以下是我的操作过程: 例如: /** * @param * @return */ 快捷键为: ...
- Solr添加文档(XML)
在上一章中,我们学习解释了如何向Solr中添加JSON和.CSV文件格式的数据.在本章中,将演示如何使用XML文档格式在Apache Solr索引中添加数据. 示例数据 假设我们需要使用XML文件格式 ...
- Xcode - 添加文档注释插件
Xcode自动添加文档注释插件: https://github.com/onevcat/VVDocumenter-Xcode 功能演示: 感谢onevcat的分享!
- es的rest风格的api文档
rest风格的api put http://127.0.0.1:9200/索引名称/类型名称/文档id (创建文档,指定文档id) post http://127.0.0.1:9200/索引名称/类型 ...
- 迁移TFS,批量将文档导入SharePoint 2013 文档库
一.需求分析 公司需要将存在于旧系统(TFS)所有的文档迁移至新系统(SharePoint 2013).现已经将50G以上的文档拷贝到SharePoint 2013 Server上.这些文档是一些不规 ...
- dedecms批量删除文档关键词可以吗
这几天在重新整服务器,几个站点都是用dedecms搭建的,版本相对比较早,虽然都已经打了补丁,但客户还是在纠结,所以就下载了新的系统进行搭建(注意编码要和原来的一样),导入数据,一切安好,可发现后台有 ...
- mongodb命令----批量更改文档字段名
因为mongodb基于javascript的特性,为了体验cursor的威力我们不妨利用js的for循环创建记录 先创建文档 db.createCollection("columnsampl ...
随机推荐
- [Functional Programming] Working with two functors(Applicative Functors)-- Part2 --liftAN
Let's examine a pointfree way to write these applicative calls. Since we know map is equal to of/ap, ...
- [Functional Programming] Working with two functors(Applicative Functors)-- Part1 --.ap
What is applicative functor: the ability to apply functors to each other. For example we have tow fu ...
- Mysqldump参数大全(参数来源于mysql5.5.19源码)
参数 参数说明 --all-databases , -A 导出全部数据库. mysqldump -uroot -p --all-databases --all-tablespaces , -Y ...
- C#基础视频教程3.3 常见控件类型和使用方法
前面介绍了微软的控件,也介绍了几个第三方控件,那么这些控件是如何做出来的?即便我们自己不做控件,也至少要理解控件的原理. 如果要创建一个自定义控件,首先新建一个C#下面的Windows窗体控件库 ...
- android 程序更新(没有sdcard)
今天总结一下我们写的程序需要更新(默认用户已经安装上旧版本了),而用户更新时却没有sdcard的情况,如果有sdcard,那就不用废话了... 先说一下软件更新的基本原理,从服务器下载一个程序的apk ...
- UISlider 设置增量
UISlider 设置增量 UISlider *slier = [[UISlider alloc]initWithFrame:CGRectMake(wu500.right, , , )]; slier ...
- 安装TeX及中文支持
2014.7.19更新: 以下的笔记适用于在基于Ubuntu的发行版(比方LinuxMint)安装Texlive2013.2014: 第一步依据本机状况.可能不须要. Texlive2014已经能够下 ...
- Python break
break退出循环 用 for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句. 比如计算1至100的整数和,我们用while来实现: sum = 0 x = ...
- AjaxAnyWhere 实现页面局部刷新,局部分页
这个比較jquery.单纯ajax异步简单多了.不多说了直接上代码. 须要引入:ajaxanywhere-1.2.1.jar (最新)和 /ajaxAnyWhereDemo/WebRoot/js/aa ...
- LaTeX去掉默认显示日期时间
LaTeX去掉默认显示日期时间: \date{}