Spark Standalone:
在这种模式下,我意识到您在本地计算机上运行主节点和工作节点。
这是否意味着您在我的本地计算机上运行了YARN实例?从我安装Spark开始,它就带有Hadoop,而且通常YARN也会随Hadoop一起提供正确的?在这种模式下,我基本上可以模拟较小版本的完整集群。
Spark本地模式:
这是我也很困惑的部分。要在此模式下运行,我会val conf = new SparkConf().setMaster("local[2]")
。
在这种模式下,它没有使用任何类型的资源管理器(如YARN)吗?就像它只是在您提供给"local[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一样,它被设置为单节点群集。