Spark on Yarn安装配置,大数据技能竞赛(容器环境)

Spark on Yarn模式,即把Spark作为一个客户端,将作业提交给Yarn服务,由于在生产环境中,很多时候都要与Hadoop使用同一个集群,因此采用Yarn来管理资源调度,可以有效提高资源利用率。

环境说明:

服务端登录地址详见各任务服务端说明。

补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问;

相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略;

所有任务中应用命令必须采用绝对路径;

进入Master节点的方式为

docker exec -it master /bin/bash

进入Slave1节点的方式为

docker exec -it slave1 /bin/bash

进入Slave2节点的方式为

docker exec -it slave2 /bin/bash

三个容器节点的root密码均为123456

提前准备好 spark-3.1.1-bin-hadoop3.2.tgz 放在宿主机的/opt/下(模拟的自己准备,比赛时会提供)

Hadoop 完全分布式安装配置

环境搭建请看这篇文章大数据模块A环境搭建

前提条件已经在容器里搭建完hadoop了,没搭建的请看这篇Hadoop 完全分布式安装配置****

Spark on Yarn安装配置

本任务需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:

1、 从宿主机/opt目录下将文件spark-3.1.1-bin-hadoop3.2.tgz复制到容器Master中的/opt/software(若路径不存在,则需新建)中,将Spark包解压到/opt/module路径中(若路径不存在,则需新建),将完整解压命令复制粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

第一步:从宿主机/opt目录下将文件spark-3.1.1-bin-hadoop3.2.tgz复制到容器Master中的/opt/software(若路径不存在,则需新建)中

bash 复制代码
[root@Bigdata ~]# docker cp /opt/spark-3.1.1-bin-hadoop3.2.tgz master:/opt/software

第二步:将Spark包解压到/opt/module路径中(若路径不存在,则需新建)

bash 复制代码
[root@master ~]# tar zxvf /opt/software/spark-3.1.1-bin-hadoop3.2.tgz -C /opt/module/
[root@master ~]# mv /opt/module/spark-3.1.1-bin-hadoop3.2 /opt/module/spark

2、 修改容器中/etc/profile文件,设置Spark环境变量并使环境变量生效,在/opt目录下运行命令spark-submit --version,将命令与结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

第一步:修改容器中/etc/profile文件,设置Spark环境变量

bash 复制代码
#SPARK_HOME
export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/binc

第二步:使环境变量生效

bash 复制代码
[root@master ~]# source /etc/profile

第三步:在/opt目录下运行命令spark-submit --version

bash 复制代码
[root@master ~]# cd /opt/
[root@master opt]# spark-submit --version
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.1.1
      /_/
                        
Using Scala version 2.12.10, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_212
Branch HEAD
Compiled by user ubuntu on 2021-02-22T01:33:19Z
Revision 1d550c4e90275ab418b9161925049239227f3dc9
Url https://github.com/apache/spark
Type --help for more information.
[root@master opt]# 

3、 完成on yarn相关配置,使用spark on yarn 的模式提交$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.1.jar 运行的主类为org.apache.spark.examples.SparkPi,将运行结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下(截取Pi结果的前后各5行)。

(运行命令为:spark-submit --master yarn --class org.apache.spark.examples.SparkPi $SPARK_HOME/examples/jars/spark-examples_2.12-3.1.1.jar)

第一步:完成on yarn相关配置

  1. 修改hadoop配置文件/opt/module/hadoop/etc/hadoop/yarn-site.xml

    XML 复制代码
    <!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
    <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
    </property>
    <!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
    <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
    </property>

发到其他节点(slave1,slave2)

bash 复制代码
[root@master ~]# scp /opt/module/hadoop/etc/hadoop/yarn-site.xml slave1:/opt/module/hadoop/etc/hadoop/yarn-site.xml 
[root@master ~]# scp /opt/module/hadoop/etc/hadoop/yarn-site.xml slave2:/opt/module/hadoop/etc/hadoop/yarn-site.xml 

复制一份spark-env.sh

bash 复制代码
[root@master ~]# cp /opt/module/spark/conf/spark-env.sh.template /opt/module/spark/conf/spark-env.sh

修改/opt/module/spark/conf/spark-env.sh,添加JAVA_HOME、YARN_CONF_DIR和HADOOP_CONF_DIR配置

bash 复制代码
[root@master ~]# vi /opt/module/spark/conf/spark-env.sh
bash 复制代码
export JAVA_HOME=/opt/module/java
export YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop
export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop

启动Hadoop集群

bash 复制代码
start-all.sh

确保 /user/root//user/root/.sparkStaging/ 目录有足够的权限。

bash 复制代码
hdfs dfs -chmod -R 777 /user/root

第二步:使用spark on yarn 的模式提交$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.1.jar 运行的主类为org.apache.spark.examples.SparkPi

bash 复制代码
spark-submit --master yarn --class org.apache.spark.examples.SparkPi  $SPARK_HOME/examples/jars/spark-examples_2.12-3.1.1.jar

截取Pi结果的前后各5行

声明:此文章为个人学习笔记,如文章有问题欢迎留言探讨,也希望您的指正 !

相关推荐
金融小师妹27 分钟前
基于LSTM-GARCH混合模型:降息预期驱动金价攀升,白银刷新历史峰值的蒙特卡洛模拟验证
大数据·人工智能·深度学习·1024程序员节
小坏讲微服务37 分钟前
Spring Boot 4.0 与 Spring Cloud Alibaba 2025 整合完整指南
java·spring boot·分布式·后端·spring cloud·微服务·架构
有味道的男人1 小时前
速卖通商品详情接口(速卖通API系列)
java·大数据·数据库
天远云服1 小时前
Golang 硬核实战:手撸 AES-CBC 算法,对接天远风控决策接口
大数据·api
天远数科1 小时前
Node.js 全栈实战:5分钟对接天远风控 API与数据清洗
大数据·api
老蒋新思维1 小时前
创客匠人 2025 峰会深度解析:AI 赋能垂直领域,创始人 IP 变现的差异化路径
大数据·网络·人工智能·网络协议·tcp/ip·重构·知识付费
EveryPossible2 小时前
大数据优化
大数据
liliangcsdn2 小时前
如何从二项分布中抽取样本 - binomial
大数据·人工智能
Wang's Blog2 小时前
Elastic Stack梳理:索引与查询时的分词应用、配置优化与工程实践
大数据·elasticsearch·搜索引擎
Hy行者勇哥3 小时前
从人工账本到智能终端:智能硬件核算碳排放的 演进史
大数据·人工智能·边缘计算·智能硬件