当前位置: 首页 > 知识库问答 >
问题:

关于Elasticsearch配置和批量导入的查询

子车飞文
2023-03-14

我试图用大约500万记录来设置elasticsearch。每个文档有150千伏对。我在Ubuntu 12.04上使用ES1.2.1,4GB内存和40GB磁盘空间。我已经使用了ES的所有默认配置来创建索引、插入文档等等。

进行此操作时,几个问题是:

1)我能够使用大容量api从JSON文件中插入最大30K记录。我还观察到,对于15-20MB左右的文件大小,它是平滑的。有人能指定大容量导入的原因、上限和最佳大小吗?

2)用于批量api的JSON文件包含数千条记录。所以每次在实际数据之前,我都必须写一行规范。例如,

{“index”:{“_index”:“indexName”,“_type”:“testName”,“_id”:“someValue”}

{“field1”:“value1”,“field2”:“value2”…}

{“index”:{“_index”:“indexName”,“_type”:“testName”,“_id”:“someValue”}

{“field1”:“value1”,“field2”:“value2”…}

{“index”:{“_index”:“indexName”,“_type”:“testName”,“_id”:“someValue”}

{"字段1":"值1","字段2":"值2"......}......

这不是很麻烦吗?我的意思是,如果我必须插入100条记录,我也必须在文件中添加100条规范行?

3)我通过一次重复插入30K记录,成功插入了大约3,30,000条记录。但是后来我尝试并发地这样做,并开始一次运行5个线程。ES崩溃了!!!内存不足异常是原因。我重新启动了ES,发现现在只有2,07,000条记录。在5个分片中,只有2个成功,这意味着数据消失了!这是一个严重的问题,可能会破坏应用程序。有人能帮我解决这么大数据量的理想分片和内存要求吗?还有我们如何在创建索引时指定这些设置,并在创建索引后进行修改?

4)现在在这个崩溃之后,当我用id'x'搜索一个特定的记录时,ES返回给我数据,但是当我试图用get检索同一个文档时,它失败了!可能出了什么问题?

非常感谢您的帮助。提前谢谢。

共有1个答案

柯昆杰
2023-03-14

我发现最合适的地方是

如果还没有尝试过,可以尝试使用节点客户端将批量请求推送到ES。与http/TransportClient不同,使用节点客户端可以减少由于集群内的数据分配而产生的额外网络聊天。它会将数据推送到存储数据的节点,而不是盲目地将数据推送到节点,然后节点可能会将数据传递到其最终目的地。如果您有任何需要几天才能建立索引的流程,这可以为您节省一些时间。对于需要几个小时的过程来说,这可能不值得。

 类似资料:
  • 感谢 windNight 的PR 增加了 导出导入通知功能,使用方式很简单 有了这个导入导出功能后,数据库重置之前可以先备份了!

  • 我正在尝试按照远程指令的重新索引从1.x>5.x升级ELK堆栈。我不确定如何导出需要创建的索引列表,然后将该列表导入到新实例中。我已经使用这个命令创建了一个索引列表,有“pretty”,也有没有,但是我不确定使用哪种文件格式以及下一步如何处理该文件。 create index指令并不涉及如何一次创建多个索引,而bulk指令只涉及创建/索引文档,而不是创建索引本身。如有任何关于如何最好地遵循升级说明

  • “导入向导”让你从 CSV、TXT、XML、DBF 等格式导入数据到表或集合。你可以将设置保存为一个配置文件以供将来使用或用作设置自动运行任务。若要打开导入向导窗口,请在对象工具栏点击 “导入向导”。 【注意】Navicat Essentials 版只支持导入纯文本格式的文件,例如 TXT、CSV、XML 和 JSON。 【提示】你可以拖拉一个支持格式的文件到表或集合的对象选项卡,或到导航窗格中的

  • “导入向导”让你从 CSV、TXT、XML、DBF 等格式导入数据到表或集合。你可以将设置保存为一个配置文件以供将来使用或用作设置自动运行任务。若要打开导入向导窗口,请在对象工具栏点击 。 【注意】Navicat Essentials 版只支持导入纯文本格式的文件,例如 TXT、CSV、XML 和 JSON。 【提示】你可以拖拉一个支持格式的文件到表或集合的对象选项卡,或到导航窗格中的一个数据库或

  • “导入向导”让你从 CSV、TXT、XML、DBF 等格式导入数据到表或集合。你可以将设置保存为一个配置文件以供将来使用或用作设置自动运行任务。若要打开导入向导窗口,请在对象工具栏点击 “导入向导”。 【注意】Navicat Essentials 版只支持导入纯文本格式的文件,例如 TXT、CSV、XML 和 JSON。 【提示】你可以拖拉一个支持格式的文件到表或集合的对象选项卡,或到导航窗格中的

  • 我想问一下关于Elasticsearch批量API的问题 这是我使用批量API的代码 我遇到了超时异常,因为我的记录有800K。java.net.SocketTimeoutException:连接超时30,000毫秒http-outgoing-16[活动] 我试图分解传入的jsonList,但有时会出现相同的错误。 我目前使用的是Elasticsearch 7.6.2版本。 异常跟踪 Java.n