Apache Spark中的部署模式

130 阅读2分钟

目录

阅读时间: 2 分钟

Spark是一个开源的框架引擎,在大数据处理和分析领域具有高速和易于使用的特性。Spark有一些内置模块,用于图处理、机器学习、流媒体、SQL等。火花执行引擎支持内存计算,这使得它的速度更快,数据循环流动,它可以在集群模式或独立模式下运行,也可以访问不同的数据源,如HBase、HDFS、Cassandra等。

Spark的部署模式

当我们提交一个spark作业到本地或集群上执行时,spark作业的行为完全取决于一个参数,那就是 "驱动 "组件。火花作业的 "驱动 "组件将位于何处,它定义了火花作业的行为。

在Apache Spark中,有两种部署模式: - 客户模式

  1. 客户端模式
  2. 集群模式

1.客户端模式

在这种模式下,Spark驱动组件在我们提交spark作业的机器节点上运行。这种模式同时支持交互式shell和作业提交命令。

客户端模式的主要缺点是:-。

  • 如果机器节点发生故障,那么整个作业都会失败。
  • 这种模式的性能是最差的,在生产环境中不是首选。

为了克服这种模式下出现的最糟糕的情况,我们在生产环境中使用集群模式进行部署。

2.集群模式

如果spark作业的驱动组件没有在提交spark作业的机器上运行,那么就可以说部署模式处于集群模式。

  • spark作业在集群内启动驱动组件,作为ApplicationMaster的子进程的一部分。
  • 在这种模式下,我们使用 spark-submit 命令进行部署,它不支持交互式 shell 模式。
  • 在程序失败的情况下,由于驱动程序是在ApplicationMaster中运行的,所以驱动程序会被重新确认。
  • 在这种模式下,有一个专门的集群管理器(如单机、YARN、Apache Mesos、Kubernetes等)用于分配作业运行所需的资源,如下图的架构所示。

总结

在这篇博客中,我们了解到了Apache Spark的部署模式。这取决于我们的目标,哪种部署模式是最适合我们的。

分享一下Knol。

相关的