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

时间:2016-10-13 04:03:07

标签: apache-spark

Spark Standalone:

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

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

Spark本地模式:

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

在这种模式下,它没有使用任何类型的资源管理器(如YARN)吗?就像它只是在您提供给"local[2]"\

的线程数中运行Spark Job

2 个答案:

答案 0 :(得分:7)

你对Hadoop YARN和Spark感到困惑。

  

YARN是一种软件重写,可以解耦MapReduce的资源   来自数据处理的管理和调度功能   组件,使Hadoop支持更多样化的处理   方法和更广泛的应用程序。

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

  

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

Apache Spark

  

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

要运行火花,它需要资源。在独立模式下,您可以启动工作程序,Spark主持人和持久层可以是任何一个--HDFS,FileSystem,cassandra等。在YARN模式下,您要求YARN-Hadoop集群管理资源分配和簿记。

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

因此,独立模式和本地模式之间的唯一区别在于,在Standalone中,您为工作人员定义“容器”,并在您的机器中运行spark master(因此您可以拥有2个工作人员,并且您的任务可以在JVM中分发)那两个工人?)但在本地模式下,你只是在本地机器的同一个JVM中运行所有东西。

答案 1 :(得分:4)


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


纱布
实际上,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一样,它被设置为单节点群集。