【发布时间】:2017-05-23 23:04:29
【问题描述】:
我正在寻找处理大型索引中的并行数据的方法, 我考虑过对索引进行快照(到 hdfs),然后提交 spark 作业来处理记录。
其他解决方法是使用elastic with spark。
我的问题:
- 快照 API 输出可以是文本文件而不是二进制文件吗?
- 如何使用 spark-elastic 并对特定文档执行子查询? (假设我有狗的索引,然后我想找到每只狗的骨头)?
-----编辑------
我的索引发生了一点变化,有 Dogs 索引,一个与狗的关系索引。 狗指数:
...
{
name: "rex",
id: 1,
...
},
{
name: "bobby",
id : 2,
...
}
...
狗关系指数:
...
{
first_dog_id: 1,
second_dog_id: 2,
relation_type: "enemies",
...
}
...
关系是多对多的,所以每只狗在狗关系索引中可以有很多文档。我想创建 2 个 RDD(狗和关系)并以某种方式将它们加入内存而不广播数据(大索引)
【问题讨论】:
-
关于2.,我想我会先将狗数据和骨骼数据读入Spark中的内存,而不是每次给狗一根骨头时都敲ES。
-
@ImDarrenG 如何在内存中合并这两个列表?如何在第一个 RDD 的分区上运行并在第二个 RDD 上查询?
-
我的第一个直觉是通过某个键加入 RDD,但假设这不起作用,请提供有关您的用例的更多信息,否则我们只是在猜测?
-
@ImDarrenG,我更新了问题..
-
有多少数据 - 太多数据无法放入 Spark 集群的内存中?您想通过 Spark 工作实现什么目标?
标签: hadoop apache-spark elasticsearch hdfs bigdata