【问题标题】:Is there a way to easily import around 600-700gbs of json into ElasticSearch with node?有没有办法通过节点轻松地将大约 600-700gbs 的 json 导入 ElasticSearch?
【发布时间】:2021-08-28 13:04:23
【问题描述】:

我一直在尝试搜索这个,但我似乎找不到可以解决内存限制和 OOM 的解决方案,我目前正在为我的工作开发一个搜索引擎,作为它的一部分,我们想要拥有一个用于 Purple 团队参与的信用填充搜索引擎。

json的格式是这样的,

[{
"email": "bob@bob.com",
"password": "123",
}]

我们有大约 600-700gb 的记录要导入 ElasticSearch,我尝试将数据拆分并在节点中对其进行循环,但我一直遇到资源问题。

【问题讨论】:

  • 将数据分割成更小的块。处理完一个块后,确保对该块的所有引用都为空或超出范围(因此有资格进行垃圾收集。如果这本身还不够,那么在块之间用setTimeout() 暂停几秒钟给垃圾收集器一些运行时间。如果这还不够,请添加对global.gc() 的调用(使用关联的命令行参数来启用它)。如果这还不够,那么我们需要查看实现最后一个选项。
  • 是否需要与node一起使用或者你可以使用其他工具? Filebeat 和 Logstash 可以轻松做到这一点。

标签: node.js elasticsearch


【解决方案1】:

awk 'NR >= startlinenumber && NR

在 exec 中,然后在循环中递增 startline/endline。您可以在 bash 脚本中执行此循环,然后只需调用您的节点 js 脚本并从标准输入读取。

【讨论】:

    猜你喜欢
    • 2020-03-20
    • 2019-06-30
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多