1-3.Spark on Yarn安装配置

实验环境

实验准备

实验内容

一、初始化hadoop集群

二、下载所需安装包

三、配置Spark环境变量

四、完成on yarn相关配置

五、采用 client 模式提交任务

 

 

实验环境

  1. Ubuntu 18.04

  2. Oracle JDK 1.8

  3. Hadoop 3.2.4

  4. Spark 3.2.3

实验准备

  1. 点击开始实验按钮,打开当前实验所有镜像环境

  2. 进入实验环境后, 点击左上角收缩实验指南

  3. 点击环境左上角的“三个横线”的标志,如下图。 最后点击“终端”。

  4. 会在右下方看到打开的终端,可直接在终端中进行操作。

实验内容

一、初始化hadoop集群

配置节点hosts解析

使用命令查看自己所有节点环境的IP信息:

ip addr show

把所有节点的IP记录下来,将三个节点分别命名为master、slave1、slave2,取1个IP作为master节点,其余做slave节点。 修改容器中/etc/hosts文件,根据自己的节点的IP信息,在文件末添加类似下面的内容:

下面IP仅供参考,以自己环境的实际IP为准

10.42.240.106  master
10.42.240.46 slave1
10.42.74.171 slave2

注意: 如果容器的hostname不是master1,比如终端命令行名称类似上面图中的 root@abc03160ba3f,注意把容器对应的 abc03160ba3f 这样的实际名称也加进hosts文件的解析里,不然yarn可能会找不到可调度的主机,提交的任务会一直卡在accept阶段。 添加后的/etc/hosts文件内容类似于:

10.42.240.106  master
10.42.240.106 abc03160ba3f
10.42.240.46 slave1
10.42.240.46 50519577f51d
10.42.74.171 slave2
10.42.74.171 7513794d0505

配置及节点ssh免密登录

在master节点使用命令生成key,需要填入的内容直接留空即可

ssh-keygen -b 4096

使用下面的命令把master节点的公钥拷贝到包括master节点的所有的节点,默认密码为root

ssh-copy-id -i ~/.ssh/id_rsa.pub root@master
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2

使用ssh登录成功后后,可使用 exit 命令退出ssh会话回到原先节点终端继续操作

exit

最后,在master节点的终端使用下面的命令初始化Hadoop环境namenode

hdfs namenode -format

确保Hadoop启动并正常运行。

# hadoop的集群启动命令为:
start-all.sh

# 启动后检查是否安装成功:
hdfs dfsadmin -report

二、下载所需安装包

在节点创建需要的文件夹,作为安装包储存路径和软件安装位置

mkdir /opt/software  /opt/module

从宿主机目录下将文件spark-3.2.3-bin-hadoop3.2.tgz复制到容器Master中的/opt/software

scp root@10.42.2.28:/opt/spark/spark-3.2.3-bin-hadoop3.2.tgz /opt/software

将Spark包解压到/opt/module路径中

tar -xzf /opt/software/spark-3.2.3-bin-hadoop3.2.tgz -C /opt/module

将完整解压命令截图并提交到对应的任务序号下

三、配置Spark环境变量

修改容器中/etc/profile文件,在文件末添加下面的内容:

# 添加spark的环境变量
export SPARK_HOME=/opt/module/spark-3.2.3-bin-hadoop3.2
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

执行下面的命令使添加的spark环境变量生效:

source /etc/profile

在终端运行命令

spark-submit --version

将命令与结果截图粘并提交到对应的任务序号下

四、完成on yarn相关配置

执行下面命令生成spark-env.sh文件

cd /opt/module/spark-3.2.3-bin-hadoop3.2/conf
cp -f ./spark-env.sh.template ./spark-env.sh

使用vim编辑器文件内容

vim ./spark-env.sh

在文件末尾添加下面的内容

export LD_LIBRARY_PATH=/opt/module/hadoop-3.2.4/lib/native
export HADOOP_CONF_DIR=/opt/module/hadoop-3.2.4/etc/hadoop/
export YARN_CONF_DIR=/opt/module/hadoop-3.2.4/etc/hadoop/

五、采用 client 模式提交任务

将 Spark 相关的 JAR 文件打包成一个 JAR 文件

cd 
jar cv0f spark-libs.jar -C $SPARK_HOME/jars/ .

将 JAR 文件上传到 HDFS 中的指定目录,以便在分布式 Spark 环境中使用。 记得确保Hadoop集群环境正常启动运行。

hdfs dfs -mkdir -p /system/SparkJars/jar
hdfs dfs -put spark-libs.jar /system/SparkJars/jar

执行下面命令生成spark-defaults.conf文件

cd /opt/module/spark-3.2.3-bin-hadoop3.2/conf
cp -f ./spark-defaults.conf.template ./spark-defaults.conf

使用vim编辑器文件内容

vim ./spark-defaults.conf

在文件末尾添加下面的内容

spark.yarn.archive=hdfs:///system/SparkJars/jar/spark-libs.jar

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

spark-submit --master yarn --class org.apache.spark.examples.SparkPi  $SPARK_HOME/examples/jars/spark-examples_2.12-3.2.3.jar

将运行结果截图并提交到对应的任务序号下

© 版权声明
THE END
喜欢就支持一下吧
点赞121赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

夸夸
夸夸
还有吗!没看够!
取消
昵称表情代码图片

    暂无评论内容