Zeppelin 是如何集成到 spark 的?

How is Zeppelin integrated to spark?

我是分布式数据处理的新手,想了解Zeppelin是如何与spark集群通信的?想知道 zeppelin 如何能够检索前面段落中生成的数据帧,然后在当前代码中使用它。还有当多个用户尝试使用同一个飞艇时会发生什么,就像在连接到同一个 spark 的不同笔记本中一样。

spark 如何知道 运行 先执行哪个作业,以及它是否将所有数据帧保存在内存中?

我正在使用 YARN。

这看起来是一个非常宽泛的问题。让我一一回答。

一个。与外部 spark 集群通信。

如你所知,Zeppelin 提供了内置的 spark,但它在本地机器上运行,因此由于资源限制无法进行大量计算。

要使用外部火花,您可以在conf/zeppelin-env.sh

中设置SPARK_HOME

有时,您可能会在一个 Zeppelin 实例中使用多个不同的 Spark 集群。在这种情况下,您可以创建多个 spark 解释器并为每个 spark 解释器设置设置 SPARK_HOME

乙。 Zeppelin 的纱线设置

您可以在 spark 解释器设置中指定 yarn-client 模式。

  • What is yarn-client mode in Spark?

对于yarn-cluster模式,请使用livy interpreter

C。检索在前面段落中创建的数据。

  • 变量:默认情况下,每个变量都可以访问。因为他们共享上下文。因此,如果您创建 RDD,那么您可以从其他段落访问它(甚至从前面的段落)
  • table:您可以使用 RDDregisterTempTable 创建 table。然后只需查询下一段中的 table 即可。

这些示例注释可以提供帮助

D.具有相同 spark 集群的多个用户

默认情况下,每个用户共享变量和 spark 上下文和资源。如您所知,这不是一个好主意。因此,Zeppelin 支持解释器绑定模式(= 类似于会话支持),以便其他用户的操作不会影响我的笔记本和我的 spark 解释器。

简而言之,在隔离模式下,每个用户都可以拥有一个专用的spark解释器进程(JVM)。或者他们可以在 scoped 模式

中共享 spark 上下文而不共享变量

E.配置多用户支持

这些文章可以帮到你。