elasticsearch-py 解决 too_long_frame_exception 问题
老大让我搞一搞数据统计,配环境时遇到个奇葩错误,记录一下,希望能帮助到某些人。
我需要安装 ElasticSearch-Py
库,根据官网文档,不同的服务器版本配不同的Python库版本。公司的ElasticSearch服务版本号是 0.6.0
,本着用新不用旧的原则,就安装了6.x
的最新版本0.6.4
的python模块。
# Elasticsearch 6.x
elasticsearch>=6.0.0,<7.0.0
# Elasticsearch 5.x
elasticsearch>=5.0.0,<6.0.0
# Elasticsearch 2.x
elasticsearch>=2.0.0,<3.0.0
我在使用 scan 命令时出现了如下错误:
elasticsearch.exceptions.RequestError: RequestError(400, 'too_long_frame_exception', 'An HTTP line is larger than 4096 bytes.')
Google搜了一圈,都是说需要调整elasticsearch服务器配置,即在/etc/elasticsearch/elasticsearch.yml
修改配置然后重启服务:
http.max_content_length: 500mb
可是我没有操作这个服务器的权限,线上服务器也不能说让我重启瞎搞。
我试着把 elasticsearch-py
版本从 6.4.0
降级到 6.3.1
问题就解决了。
pip uninstall elasticsearch
pip install elasticsearch==6.3.1
蜜汁Bug,浪费我好几个小时。