当前位置: 首页 > 知识库问答 >
问题:

在纱线上运行火花时,我们应该使用哪种模式?

卞琨
2023-03-14

在yarn-cluster模式下,驱动程序在应用程序主程序中运行(在YARN集群内)。在yarn-client模式下,它在提交作业的client节点中运行

我想知道使用一种模式比使用另一种模式有什么好处?我们在什么情况下应该使用哪种模式。

共有1个答案

齐高阳
2023-03-14

有两种部署模式可用于在Yarn上启动Spark应用程序。

Yarn-Cluster:Spark驱动程序在Hadoop集群中作为YARN应用程序主程序运行,并在YARN容器中旋转Spark执行器。这使得Spark应用程序可以在Hadoop集群中运行,并与工作台完全分离,工作台仅用于作业提交。一个例子:

[terminal~]:cd $SPARK_HOME
[terminal~]:./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn 
–deploy-mode cluster --num-executors 3 --driver-memory 1g --executor-memory 
2g --executor-cores 1 --queue thequeue $SPARK_HOME/examples/target/spark-examples_*-1.2.1.jar

注意,在上面的示例中,-queue选项用于指定应用程序提交到的Hadoop队列。

[terminal~]:cd $SPARK_HOME
[terminal~]:bin/spark-shell --master yarn --deploy-mode client --queue research 
--driver-memory 512M --driver-class-path /opt/hadoop/share/hadoop/mapreduce/lib/hadoop-lzo-0.4.18-201409171947.jar
 类似资料:
  • 然而,我不知道我是否真的需要一个插件,如果需要,是哪一个,以及如何去做它。我尝试使用'build/mvn'和'build/sbt'直接编译github源代码,但是'spark-assembly2.11-2.0.2.jar'文件只有283字节。 我的目标是使用较新版本的fat jar运行pyspark shell,其方式与这里提到的类似。

  • 首先,我想说的是我看到的解决这个问题的唯一方法是:Spark 1.6.1 SASL。但是,在为spark和yarn认证添加配置时,仍然不起作用。下面是我在Amazon's EMR的一个yarn集群上使用spark-submit对spark的配置: 注意,我用代码将spark.authenticate添加到了sparkContext的hadoop配置中,而不是core-site.xml(我假设我可以

  • 我经常在火花作业运行时对DAG进行分析。但是,当应用程序运行时必须坐着看才能看到DAG,这很烦人。 因此,我尝试使用名为spark history server的东西查看DAg,我知道它可以帮助我查看过去的作业。我可以轻松访问端口18080,并且可以看到history server UI。 但是,它没有显示任何与spark程序执行相关的信息。我知道我的历史服务器正在运行,因为当我执行sudo服务时

  • 我一直试图提交一个简单的python脚本,以便在一个带有Yarn的集群中运行它。当我在本地执行作业时,没有问题,一切都很好,但当我在集群中运行它时,它就失败了。 诊断:文件不存在:hdfs://myserver:8020/user/josholsan/.sparkstaging/application_1510046813642_0010/test.py 我不知道为什么它找不到test.py,我也

  • 我已经在一个15节点的Hadoop集群上安装了。所有节点都运行和最新版本的Hadoop。Hadoop集群本身是功能性的,例如,YARN可以成功地运行各种MapReduce作业。 我可以使用以下命令在节点上本地运行Spark Shell,而不会出现任何问题:。 你知道为什么我不能用客户端模式在纱线上运行Spark Shell吗?

  • 在配置spark应用程序时,我试图从集群中挤出每一点,但似乎我并没有完全正确地理解每一件事。因此,我正在AWS EMR集群上运行该应用程序,该集群具有1个主节点和2个m3类型的核心节点。xlarge(每个节点15G ram和4个vCPU)。这意味着,默认情况下,每个节点上为纱线调度的应用程序保留11.25 GB。因此,主节点仅由资源管理器(纱线)使用,这意味着剩余的2个核心节点将用于调度应用程序(