Spark Standalone,YARN和本地模式有什么区别?

Cap*_*ree 17 apache-spark

Spark Standalone:

在这种模式下,我意识到您在本地计算机上运行主节点和工作节点.

这是否意味着您在我的本地计算机上运行了YARN的实例?从我安装Spark开始,它就带有Hadoop,而且通常YARN也会随Hadoop一起提供正确的?在这种模式下,我基本上可以模拟一个较小版本的完整集群.

Spark本地模式:

这是我也很困惑的部分.要在这种模式下运行它,我做val conf = new SparkConf().setMaster("local[2]").

在这种模式下,它不使用任何类型的资源管理器(如YARN)正确吗?就像它只是在您提供的线程数中运行Spark Job "local[2]"\

小智 15

您对Hadoop YARN和Spark感到困惑。

YARN是一种软件重写,可将MapReduce的资源管理和调度功能与数据处理组件分离开来,从而使Hadoop支持更多样化的处理方法和更广泛的应用程序。

随着YARN的引入,Hadoop已开放在平台上运行其他应用程序。

简而言之,YARN是“可插入数据并行框架”。

阿帕奇火花

Apache spark是一个批处理交互式流框架。Spark有一个“可插入的持久性存储”。Spark可以与任何持久层一起运行。

为了使Spark运行,需要资源。在独立模式下,您将启动工作进程,并且火花主控和持久层可以是任意一个-HDFS,FileSystem,cassandra等。在YARN模式下,您正在要求YARN-Hadoop集群来管理资源分配和簿记。

当您使用master时,local[2]您要求Spark使用2个核心,并在同一JVM中运行驱动程序和工作程序。在本地模式下,所有与火花作业相关的任务都在同一JVM中运行。

因此,独立模式和本地模式之间的唯一区别是,在独立模式下,您要为工作程序和spark主程序定义“容器”以在计算机中运行(因此,您可以有2个工作程序,并且可以在这两个工作程序的JVM中分发任务?),但是在本地模式下,您只是在本地计算机的同一JVM中运行所有内容。


Kau*_*tuv 11


本地模式
将本地模式视为使用单个JVM在笔记本电脑上执行程序。它可以是Java,scala或python程序,您已在其中定义并使用了Spark上下文对象,导入的Spark库和系统中的已处理数据。


YARN
实际上,Spark程序旨在处理跨机器存储的数据。执行器处理存储在这些计算机上的数据。我们需要一个实用程序来监视执行程序并管理这些计算机(群集)上的资源。Hadoop为此具有自己的资源管理器。因此,当您在HDFS上运行spark程序时,可以利用hadoop的资源管理器实用程序,即yarn。Hadoop属性是从spark-env.sh或bash_profile中设置的“ HADOOP_CONF_DIR”获得的


Spark Standalone
Spark发行版还带有自己的资源管理器。当您的程序使用Spark的资源管理器时,执行模式称为独立模式。此外,Spark允许我们通过在$ SPARK_HOME / conf目录下配置属性文件来创建分布式主从架构。默认情况下,就像hadoop的psudo-distribution-mode一样,它被设置为单节点群集。

  • 在独立模式下,我们提交到集群并在 --master 选项中指定 Spark master url (3认同)