当 运行 spark on yarn 时,我们应该使用哪种模式?
which mode we should use when running spark on yarn?
我知道有两种模式 运行 spark applications on yarn cluster。
在yarn-cluster 模式下,驱动程序在Application Master 中运行(在YARN 集群内)。在yarn-client模式下,运行在提交作业的client节点
我想知道使用一种模式相对于另一种模式有什么优势?什么情况下应该使用哪种模式
有两种部署模式可用于在 YARN 上启动 Spark 应用程序。
Yarn-cluster: Hadoop 集群中的 Spark 驱动程序 运行 作为 YARN Application Master 并在 YARN 容器中启动 Spark 执行器。这允许 Spark 应用程序在 Hadoop 集群内 运行 并与仅用于作业提交的 workbench 完全解耦。一个例子:
[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-client: Spark 驱动程序 运行 在 workbench 本身上,Application Master 以简化的角色运行。它只从 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-client 模式接受来自 spark-shell.
的命令
当您想将作业与 Spark 分离时 workbench,请使用 Yarn 集群模式。
我知道有两种模式 运行 spark applications on yarn cluster。
在yarn-cluster 模式下,驱动程序在Application Master 中运行(在YARN 集群内)。在yarn-client模式下,运行在提交作业的client节点
我想知道使用一种模式相对于另一种模式有什么优势?什么情况下应该使用哪种模式
有两种部署模式可用于在 YARN 上启动 Spark 应用程序。
Yarn-cluster: Hadoop 集群中的 Spark 驱动程序 运行 作为 YARN Application Master 并在 YARN 容器中启动 Spark 执行器。这允许 Spark 应用程序在 Hadoop 集群内 运行 并与仅用于作业提交的 workbench 完全解耦。一个例子:
[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-client: Spark 驱动程序 运行 在 workbench 本身上,Application Master 以简化的角色运行。它只从 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-client 模式接受来自 spark-shell.
的命令当您想将作业与 Spark 分离时 workbench,请使用 Yarn 集群模式。