大数据Spark on YARN

简介: 大数据Spark on YARN

1 属性配置

将Spark Application提交运行到YARN集群上,至关重要,企业中大多数都是运行在YANR

上,文档: http://spark.apache.org/docs/2.4.5/running-on-yarn.html#launching-spark-on-yarn 。


当Spark Application运行到YARN上时,在提交应用时指定master为yarn即可,同时需要告知

YARN集群配置信息(比如ResourceManager地址信息),此外需要监控Spark Application,配置

历史服务器相关属性。


1.1 设置环境变量

在【$SPARK_HOME/conf/spark-env.sh】配置文件中,添加如下内容:

vim /export/server/spark/conf/spark-env.sh
## 添加内容
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop

同步配置到【node2.oldlu.cn】和【node3.oldlu.cn】机器,命令如下:

cd /export/server/spark/conf
scp -r spark-env.sh root@node2.oldlu.cn:$PWD
scp -r spark-env.sh root@node3.oldlu.cn:$PWD

1.2 历史服务MRHistoryServer地址

在【$HADOOP_HOME/etc/hadoop/yarn-site.xml】配置文件中,指定MRHistoryServer地址

信息,添加如下内容,

## 在node1.oldlu.cn上修改
vim /export/server/hadoop/etc/hadoop/yarn-site.xml
## 添加内容
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://node1.oldlu.cn:19888/jobhistory/logs</value>
</property>

同步配置到【node2.oldlu.cn】和【node3.oldlu.cn】机器,命令如下:

cd /export/server/hadoop/etc/hadoop
scp -r yarn-site.xml root@node2.oldlu.cn:$PWD
scp -r yarn-site.xml root@node3.oldlu.cn:$PWD

1.3 历史服务HistoryServer地址

在【$SPARK_HOME/conf/spark-defaults.conf】文件增加SparkHistoryServer地址信息:

## 在node1.oldlu.cn上修改
vim /export/server/spark/conf/spark-defaults.conf
## 添加内容
spark.yarn.historyServer.address node1.oldlu.cn:18080

同步配置到【node2.oldlu.cn】和【node3.oldlu.cn】机器,命令如下:

cd /export/server/spark/conf
scp -r spark-defaults.conf root@node2.oldlu.cn:$PWD
scp -r spark-defaults.conf root@node3.oldlu.cn:$PWD

1.4 配置依赖Spark Jar包

当Spark Application应用提交运行在YARN上时,默认情况下,每次提交应用都需要将依赖

Spark相关jar包上传到YARN 集群中,为了节省提交时间和存储空间,将Spark相关jar包上传到

HDFS目录中,设置属性告知Spark Application应用。

## 启动HDFS,在node1.oldlu.cn上操作
hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
## hdfs上创建存储spark相关jar包目录
hdfs dfs -mkdir -p /spark/apps/jars/
## 上传$SPARK_HOME/jars所有jar包
hdfs dfs -put /export/server/spark/jars/* /spark/apps/jars/


在【$SPARK_HOME/conf/spark-defaults.conf】文件增加Spark 相关jar包存储HDFS位置信息:

## 在node1.oldlu.cn上操作
vim /export/server/spark/conf/spark-defaults.conf
## 添加内容
spark.yarn.jars hdfs://node1.oldlu.cn:8020/spark/apps/jars/*

同步配置到【node2.oldlu.cn】和【node3.oldlu.cn】机器,命令如下:

## 在node1.oldlu.cn上操作
cd /export/server/spark/conf
scp -r spark-defaults.conf root@node2.oldlu.cn:$PWD
scp -r spark-defaults.conf root@node3.oldlu.cn:$PWD

1.5 YARN 资源检查

由于使用虚拟机运行服务,默认情况下YARN检查机器内存,当内存不足时,提交的应用无法

运行,可以设置不检查资源,命令如下:

## 编辑yarn-site.xml文件,在node1.oldlu.cn上操作
vim /export/server/hadoop/etc/hadoop/yarn-site.xml
## 添加内容
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

同步配置到【node2.oldlu.cn】和【node3.oldlu.cn】机器,命令如下:


cd /export/server/hadoop/etc/hadoop
scp -r yarn-site.xml root@node2.oldlu.cn:$PWD
scp -r yarn-site.xml root@node3.oldlu.cn:$PWD

2 启动服务

Spark Application运行在YARN上时,上述配置完成,以此启动服务:HDFS、YARN、

MRHistoryServer和Spark HistoryServer,命令如下:

## 启动HDFS和YARN服务,在node1.oldlu.cn执行命令
hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
yarn-daemon.sh start resourcemanager
yarn-daemons.sh start nodemanager
## 启动MRHistoryServer服务,在node1.oldlu.cn执行命令
mr-jobhistory-daemon.sh start historyserver
## 启动Spark HistoryServer服务,,在node1.oldlu.cn执行命令
/export/server/spark/sbin/start-history-server.sh

3 提交应用

先将圆周率PI程序提交运行在YARN上,命令如下:

SPARK_HOME=/export/server/spark
${SPARK_HOME}/bin/spark-submit \
--master yarn \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.11-2.4.5.jar \
10

运行完成在YARN 监控页面截图如下:32f04b05fd3e4057882a607d62469a44.png

设置资源信息,提交运行WordCount程序至YARN上,命令如下:


SPARK_HOME=/export/server/spark
${SPARK_HOME}/bin/spark-submit \
--master yarn \
--driver-memory 512m \
--executor-memory 512m \
--executor-cores 1 \
--num-executors 2 \
--queue default \
--class cn.oldlu.spark.submit.SparkSubmit \
hdfs://node1.oldlu.cn:8020/spark/apps/spark-chapter01_2.11-1.0.0.jar \
/datas/wordcount.data /datas/swcy-output

当WordCount应用运行YARN上完成以后,从8080 WEB 页面点击应用历史服务连接,查看应

用运行状态信息。


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
801 0
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
889 79
|
SQL 分布式计算 资源调度
Dataphin功能Tips系列(48)-如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
609 4
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
本文详细解析了 Apache Spark 的两种常见部署模式:Standalone 和 YARN。Standalone 模式自带轻量级集群管理服务,适合小规模集群;YARN 模式与 Hadoop 生态系统集成,适合大规模生产环境。文章通过示例代码展示了如何在两种模式下运行 Spark 应用程序,并总结了两者的优缺点,帮助读者根据需求选择合适的部署模式。
922 3
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
838 2
|
资源调度 分布式计算 Hadoop
YARN(Hadoop操作系统)的架构
本文详细解释了YARN(Hadoop操作系统)的架构,包括其主要组件如ResourceManager、NodeManager和ApplicationMaster的作用以及它们如何协同工作来管理Hadoop集群中的资源和调度作业。
1120 3
YARN(Hadoop操作系统)的架构
|
资源调度 分布式计算 Hadoop
使用YARN命令管理Hadoop作业
本文介绍了如何使用YARN命令来管理Hadoop作业,包括查看作业列表、检查作业状态、杀死作业、获取作业日志以及检查节点和队列状态等操作。
992 1
使用YARN命令管理Hadoop作业
|
资源调度 分布式计算 算法
【揭秘Yarn调度秘籍】打破资源分配的枷锁,Hadoop Yarn权重调度全攻略!
【8月更文挑战第24天】在大数据处理领域,Hadoop Yarn 是一种关键的作业调度与集群资源管理工具。它支持多种调度器以适应不同需求,默认采用FIFO调度器,但可通过引入基于权重的调度算法来提高资源利用率。该算法根据作业或用户的权重值决定资源分配比例,权重高的可获得更多计算资源,特别适合多用户共享环境。管理员需在Yarn配置文件中启用特定调度器(如CapacityScheduler),并通过设置队列权重来实现资源的动态调整。合理配置权重有助于避免资源浪费,确保集群高效运行,满足不同用户需求。
434 3
|
资源调度 分布式计算 Hadoop
Hadoop Yarn 核心调优参数
这是一个关于测试集群环境的配置说明,包括3台服务器(master, slave1, slave2)运行CentOS 7.5,每台有4核CPU和4GB内存。集群使用Hadoop 3.1.3,JDK1.8。Yarn核心配置涉及调度器选择、ResourceManager线程数、节点检测、逻辑处理器使用、核心转换乘数、NodeManager内存和CPU设置,以及容器的内存和CPU限制。配置完成后,需要重启Hadoop并检查yarn配置。
749 4