Apache Spark所有权与Ignite Ownership

时间:2017-08-28 16:11:25

标签: apache-spark ignite

我一直在使用Spark中的Ignite SharedRDD,并希望了解Spark-Ignite作业中涉及的底层执行层/阶段。

ScalarSharedRDDExample.scala

  • 以下转换在哪里执行?

val df = transformedValues.sql(“select _val from Integer where _val< 100 and _val> 9”)

  • 火花和点火如何划分火花应用的所有权?

(谁负责什么?)

  • 构建Spark-Ignite应用程序的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

一切仍然按照以前的方式执行。 IgniteRDD实现为分布式Ignite缓存的视图,该缓存可以部署在Spark作业执行过程中,也可以部署在Spark工作者上,也可以部署在自己的集群中。

根据其网站上的信息,共享状态可能仅在Spark应用程序(嵌入模式)的生命周期内存在,或者可能超出Spark应用程序(独立模式),在这种情况下可以共享状态横跨多个Spark。

有关更多信息,请查看官方网站 Shared Apache Spark RDDs

还阅读一些有助于更好理解的记录用例。

Distributed Database Key-Value Store

参见代码示例,IgniteContext是从sparkContext创建的。

val igniteContext = new IgniteContext(sparkContext, 
    () => new IgniteConfiguration())

希望这有帮助!干杯!

答案 1 :(得分:0)

  

以下转换在哪里执行?

在Ignite节点上执行的SQL。

  

火花和点火如何划分火花应用的所有权?

您可以阅读here

  

构建Spark-Ignite应用程序的最佳实践是什么?

Ignite可以提供共享存储,因此状态可以从一个Spark应用程序或作业传递到另一个。

Ignite可以为SQL提供索引,因此Spark SQL可以加速超过1,000x(spark不会将数据编入索引)

使用文件而不是RDD时,Apache Ignite内存文件系统(IGFS)也可以在Spark作业和应用程序之间共享状态。

嗯,最佳做法是一个过于宽泛的问题 - 我认为你需要从Ignite Example开始并提出一个问题,如果你遇到任何问题。