《Spark Cookbook 中文版》一1.7 在集群上使用YARN部署

简介:

本节书摘来异步社区《Spark Cookbook 中文版》一书中的第1章,第1.7节,作者: 【印度】Rishi Yadav(亚达夫)译者: 顾星竹 , 刘见康 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 在集群上使用YARN部署

另一种资源协调者(YARN)是基于HDFS这个Hadoop存储层的Hadoop计算框架。

YARN遵循主从架构。主守护进程被称为资源管理器(ResourceManager),从守护进程被称为节点管理器(NodeManager)。除此之外,生命周期管理由ApplicationMaster负责,它可以被派生到任何从节点上并可以生存一个应用的生命周期时长。

如果Spark运行在YARN上的话,资源管理器充当Spark master,节点管理器充当执行节点。

如果Spark运行在YARN上的话,每个Spark执行程序以YARN容器(container)的形式运行。

1.7.1 准备工作

在YARN上部署Spark需要一个拥有YARN支持的Spark二进制安装包。在按照Spark安装教程时,需要注意这一点。

1.7.2 具体步骤

1.在YARN上部署Spark,第一步就是设置配置参数。

HADOOP_CONF_DIR: to write to HDFS
   YARN_CONF_DIR: to connect to YARN ResourceManager
   $ cd /opt/infoobjects/spark/conf (or /etc/spark)
   $ sudo vi spark-env.sh
   export HADOOP_CONF_DIR=/opt/infoobjects/hadoop/etc/Hadoop
   export YARN_CONF_DIR=/opt/infoobjects/hadoop/etc/hadoop

图1-10可见这些配置。


10

2.以下命令以yarn-client模式启动YARN Spark。

$ spark-submit --class path.to.your.Class --master yarn-client
   [options] <app jar> [app options]

例如:

$ spark-submit --class com.infoobjects.TwitterFireHose —master
   yarn-client --num-executors 3 --driver-memory 4g —executor-memory
   2g --executor-cores 1 target/sparkio.jar 10

3.以下命令以yarn-client模式启动Spark shell。

$ spark-shell --master yarn-client

4.以下命令以yarn-cluster模式启动。

$ spark-submit --class path.to.your.Class --master yarn-cluster
   [options] <app jar> [app options]

例如:

$ spark-submit --class com.infoobjects.TwitterFireHose –master
   yarn-cluster --num-executors 3 --driver-memory 4g --executor-
   memory 2g --executor-cores 1 target/sparkio.jar 10

1.7.3 工作原理

部署在YARN上的Spark应用有两种模式。

  • yarn-client:Spark驱动运行在YARN集群之外的客户端进程上,并且ApplicationMaster仅用于协商安排资源管理器的资源。
  • yarn-cluster:Spark驱动运行在由从节点的节点管理器派生出来的ApplicationMaster上。

yarn-cluster模式建议用于生产环境部署,而yarn-client模式很适合用于开发和调试,因为你可以立即看到输出。不需要特别分别Spark master在哪个模式下,因为它由Hadoop配置决定,master的参数要么是yarn-client,要么是yarn-cluster。

图1-11是client模式下在YARN上部署Spark的架构图。


11

图1-12是cluster模式下在YARN上部署Spark的架构图。


12

在YARN模式下,可以配置如下参数。

  • num-executors:配置可分配执行程序数。
  • executor-memory:每个执行程序的内存(RAM)。
  • executor-cores:每个执行程序的CPU内核数。
相关文章
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
661 2
|
SQL 分布式计算 资源调度
Dataphin功能Tips系列(48)-如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
629 4
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
本文详细解析了 Apache Spark 的两种常见部署模式:Standalone 和 YARN。Standalone 模式自带轻量级集群管理服务,适合小规模集群;YARN 模式与 Hadoop 生态系统集成,适合大规模生产环境。文章通过示例代码展示了如何在两种模式下运行 Spark 应用程序,并总结了两者的优缺点,帮助读者根据需求选择合适的部署模式。
932 3
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
479 5
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
【10月更文挑战第5天】随着大数据处理需求的增长,Apache Spark 成为了广泛采用的大数据处理框架。本文详细解析了 Spark Standalone 与 YARN 两种常见部署模式的区别,并通过示例代码展示了如何在不同模式下运行 Spark 应用程序。Standalone 模式自带轻量级集群管理,适合小规模集群或独立部署;YARN 则作为外部资源管理器,能够与 Hadoop 生态系统中的其他应用共享资源,更适合大规模生产环境。文章对比了两者的资源管理、部署灵活性、扩展性和集成能力,帮助读者根据需求选择合适的部署模式。
545 1
|
资源调度 分布式计算 大数据
大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
705 0
|
资源调度 分布式计算 Hadoop
YARN(Hadoop操作系统)的架构
本文详细解释了YARN(Hadoop操作系统)的架构,包括其主要组件如ResourceManager、NodeManager和ApplicationMaster的作用以及它们如何协同工作来管理Hadoop集群中的资源和调度作业。
1128 3
YARN(Hadoop操作系统)的架构
|
资源调度 分布式计算 Hadoop
使用YARN命令管理Hadoop作业
本文介绍了如何使用YARN命令来管理Hadoop作业,包括查看作业列表、检查作业状态、杀死作业、获取作业日志以及检查节点和队列状态等操作。
1015 1
使用YARN命令管理Hadoop作业
|
资源调度 分布式计算 算法
【揭秘Yarn调度秘籍】打破资源分配的枷锁,Hadoop Yarn权重调度全攻略!
【8月更文挑战第24天】在大数据处理领域,Hadoop Yarn 是一种关键的作业调度与集群资源管理工具。它支持多种调度器以适应不同需求,默认采用FIFO调度器,但可通过引入基于权重的调度算法来提高资源利用率。该算法根据作业或用户的权重值决定资源分配比例,权重高的可获得更多计算资源,特别适合多用户共享环境。管理员需在Yarn配置文件中启用特定调度器(如CapacityScheduler),并通过设置队列权重来实现资源的动态调整。合理配置权重有助于避免资源浪费,确保集群高效运行,满足不同用户需求。
442 3