我知道在Yarn集群上运行spark应用程序时有两种模式。在“Yarn簇”模式下,驱动程序在应用程序主机(Yarn簇内)中运行。在客户机模式下,它在提交作业的客户机节点中运行我想知道使用一种模式比另一种模式有什么好处?在什么情况下我们应该使用哪种模式。
svujldwt1#
有两种部署模式可用于在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队列。yarn客户机:spark驱动程序在工作台上运行,而应用程序主程序则以简化的角色运行。它只从yarn请求资源,以确保spark worker驻留在yarn容器中的hadoop集群中。这提供了一个具有分布式操作的交互式环境。下面是一个在这种模式下调用spark的示例,同时确保它能够使用hadoop lzo编解码器:
[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
因此,当您希望为您的工作提供交互式环境时,应该使用客户机模式。yarn客户机模式接受来自sparkshell的命令。当您想从spark workbench中分离工作时,请使用“Yarn簇”模式。
1条答案
按热度按时间svujldwt1#
有两种部署模式可用于在yarn上启动spark应用程序。
yarn cluster:spark驱动程序在hadoop集群中作为yarn应用程序主程序运行,并在yarn容器中启动spark执行器。这允许spark应用程序在hadoop集群中运行,并与工作台完全分离,工作台仅用于作业提交。举个例子:
请注意,在上面的示例中,–queue选项用于指定应用程序提交到的hadoop队列。
yarn客户机:spark驱动程序在工作台上运行,而应用程序主程序则以简化的角色运行。它只从yarn请求资源,以确保spark worker驻留在yarn容器中的hadoop集群中。这提供了一个具有分布式操作的交互式环境。下面是一个在这种模式下调用spark的示例,同时确保它能够使用hadoop lzo编解码器:
因此,当您希望为您的工作提供交互式环境时,应该使用客户机模式。yarn客户机模式接受来自sparkshell的命令。
当您想从spark workbench中分离工作时,请使用“Yarn簇”模式。