批量插入时出现弹性搜索内存错误
Elastic search memoryerror on bulk insert
我一次将 5000 条记录插入弹性搜索
这些记录的总大小为:33936(我使用 sys.getsizeof())
弹性搜索版本:1.5.0
Python 2.7
Ubuntu
下面是错误
Traceback (most recent call last):
File "run_indexing.py", line 67, in <module>
index_policy_content(datatable, source, policyids)
File "run_indexing.py", line 60, in index_policy_content
bulk(elasticsearch_instance, actions)
File "/usr/local/lib/python2.7/dist-packages/elasticsearch/helpers.py", line 148, in bulk
for ok, item in streaming_bulk(client, actions, **kwargs):
File "/usr/local/lib/python2.7/dist-packages/elasticsearch/helpers.py", line 107, in streaming_bulk
resp = client.bulk(bulk_actions, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/utils.py", line 70, in _wrapped
return func(*args, params=params, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/__init__.py", line 568, in bulk
params=params, body=self._bulk_body(body))
File "/usr/local/lib/python2.7/dist-packages/elasticsearch/transport.py", line 259, in perform_request
body = body.encode('utf-8')
MemoryError
请帮我解决问题。
感谢和问候,
冻结
如果非要我猜的话,我会说这个内存错误是在 python 加载和序列化数据时发生的。尝试减少批量大小,直到你得到一些有用的东西,然后向上进行二进制搜索,直到它再次失败。这应该可以帮助您确定要使用的安全批量大小。
(您可能想要包括的其他有用信息:您 运行 您的 python 进程所在的服务器中的内存量,您的 elasticsearch 服务器节点的内存量,分配给 Java.)
的堆数量
我一次将 5000 条记录插入弹性搜索 这些记录的总大小为:33936(我使用 sys.getsizeof())
弹性搜索版本:1.5.0 Python 2.7 Ubuntu
下面是错误
Traceback (most recent call last):
File "run_indexing.py", line 67, in <module>
index_policy_content(datatable, source, policyids)
File "run_indexing.py", line 60, in index_policy_content
bulk(elasticsearch_instance, actions)
File "/usr/local/lib/python2.7/dist-packages/elasticsearch/helpers.py", line 148, in bulk
for ok, item in streaming_bulk(client, actions, **kwargs):
File "/usr/local/lib/python2.7/dist-packages/elasticsearch/helpers.py", line 107, in streaming_bulk
resp = client.bulk(bulk_actions, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/utils.py", line 70, in _wrapped
return func(*args, params=params, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/__init__.py", line 568, in bulk
params=params, body=self._bulk_body(body))
File "/usr/local/lib/python2.7/dist-packages/elasticsearch/transport.py", line 259, in perform_request
body = body.encode('utf-8')
MemoryError
请帮我解决问题。
感谢和问候, 冻结
如果非要我猜的话,我会说这个内存错误是在 python 加载和序列化数据时发生的。尝试减少批量大小,直到你得到一些有用的东西,然后向上进行二进制搜索,直到它再次失败。这应该可以帮助您确定要使用的安全批量大小。
(您可能想要包括的其他有用信息:您 运行 您的 python 进程所在的服务器中的内存量,您的 elasticsearch 服务器节点的内存量,分配给 Java.)
的堆数量