输入如下命令,curl –XPOST –negotiate –k –v –u : ‘IP/_bulk’ –H ‘Content-Type:application/jscon’ –data-binary @/data/
其中data下是1000个30多m大小的文件 之前可以正常执行,昨天突然报错
SSL read: errno -5961 (PR_CONNECT_RESET_ERROR)
现在怀疑是文件太大导致MTU超时,但是之前都是可以正常执行的。请教各位大神。
其中data下是1000个30多m大小的文件 之前可以正常执行,昨天突然报错
SSL read: errno -5961 (PR_CONNECT_RESET_ERROR)
现在怀疑是文件太大导致MTU超时,但是之前都是可以正常执行的。请教各位大神。
6 个回复
luxx
赞同来自:
http请求虽然没有限制请求体长度 但是应用程序有必要根据实际情况限制这个大小,30M是肯定不合理的
优秀的客户端应用程序都会在请求的时候附加header内容 注明最大请求体长度
因此只需要将文件切割为较小的分片即可正常传输。
laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net
赞同来自:
The max length of an HTTP URL. Defaults to 4kb
https://www.elastic.co/guide/e ... .html
2、默认是4kb ,但是可以更改
修改方法: elasticsearch.ymlhttp.max_initial_line_length: "8k"
zqc0512 - andy zhou
赞同来自:
luxx
赞同来自:
后来改成小文件后,通过脚本控制用bulk这种方式循环导入文件(总大小约为40G),很快就会报堆内存溢出的错,现在还没有找到问题的根源,猜测是循环的脚本会将这些文件逐一读入缓存,shell方式是非阻塞的,导致文件在不断侵占内存,ES可用内存越来越少,最终导致无法处理。您说的这个测试取合适的值,怎么样的情况,就算是比较合适的情况呢?
luxx
赞同来自:
也就是说,尽管bulk这种接口支持文件的导入,但是最好小一些,是KB级别的文件? 我看到在6.4的文档中,已经没有对bulk上传文件大小的说明。
luxx
赞同来自:
@zqc0512:是客户这样做的...我想知道为什么curl bulk这种方式不适合大文件,以及上面报错的原因