搭建Spark on Yarn集群

搭建Spark on Yarn集群

此文以Hadoop 3.2.2、Spark 3.1.2版本为例!

如未指定,下述命令在所有节点执行!

一、系统资源及组件规划

节点名称系统名称CPU/内存网卡磁盘IP地址OS
NameNodenamenode2C/4Gens33128G192.168.0.11CentOS7
Secondary NameNodesecondarynamenode2C/4Gens33128G192.168.0.12CentOS7
ResourceManagerresourcemanager2C/4Gens33128G192.168.0.13CentOS7
Sparkspark2C/4Gens33128G192.168.0.14CentOS7
Worker1worker12C/4Gens33128G192.168.0.21CentOS7
Worker2worker22C/4Gens33128G192.168.0.22CentOS7
Worker3worker32C/4Gens33128G192.168.0.23CentOS7

二、系统软件安装与设置

1、安装基本软件

yum -y install vim lrzsz bash-completion

在这里插入图片描述

2、设置名称解析

echo 192.168.0.11 namenode >> /etc/hosts
echo 192.168.0.12 secondarynamenode >> /etc/hosts
echo 192.168.0.13 resourcemanager >> /etc/hosts
echo 192.168.0.14 spark >> /etc/hosts
echo 192.168.0.21 worker1 >> /etc/hosts
echo 192.168.0.22 worker2 >> /etc/hosts
echo 192.168.0.23 worker3 >> /etc/hosts

在这里插入图片描述

3、设置NTP

yum -y install chrony

在这里插入图片描述

systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd

在这里插入图片描述

chronyc sources

在这里插入图片描述

4、设置SELinux、防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

在这里插入图片描述

三、搭建Spark on Yarn集群

1、设置SSH免密登录

在NameNode和ResourceManager节点上配置免密ssh NameNode、Secondary NameNode、ResourceManager、Worker节点:

ssh-keygen -t rsa

在这里插入图片描述

for host in namenode secondarynamenode resourcemanager worker1 worker2 worker3; do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; done

在这里插入图片描述

在Spark节点上配置免密ssh Spark、Worker节点:

ssh-keygen -t rsa

在这里插入图片描述

for host in spark worker1 worker2 worker3; do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; done

在这里插入图片描述

2、安装JDK

下载JDK文件:

参考地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

解压JDK安装文件:

tar -xf /root/jdk-8u291-linux-x64.tar.gz -C /usr/local/

在这里插入图片描述

设置环境变量:

export JAVA_HOME=/usr/local/jdk1.8.0_291/
export PATH=$PATH:/usr/local/jdk1.8.0_291/bin/

在这里插入图片描述

添加环境变量至/etc/profile文件:

export JAVA_HOME=/usr/local/jdk1.8.0_291/
PATH=$PATH:/usr/local/jdk1.8.0_291/bin/

在这里插入图片描述

查看Java版本:

java -version

在这里插入图片描述

3、安装Scala

在Spark、Worker节点上安装Scala

下载Scala文件:

参考地址:https://www.scala-lang.org/download/all.html

解压Scala安装文件:

tar -xf /root/scala3-3.0.1.tar.gz -C /usr/local/

在这里插入图片描述

设置环境变量:

export PATH=$PATH:/usr/local/scala3-3.0.1/bin/

在这里插入图片描述

添加环境变量至/etc/profile文件:

PATH=$PATH:/usr/local/scala3-3.0.1/bin/

在这里插入图片描述

查看Scala版本:

scala -version

在这里插入图片描述

4、安装Hadoop集群

下载Hadoop文件:

参考地址:https://hadoop.apache.org/releases.html

解压Hadoop安装文件:

tar -xf /root/hadoop-3.2.2.tar.gz -C /usr/local/

在这里插入图片描述

设置环境变量:

export PATH=$PATH:/usr/local/hadoop-3.2.2/bin/:/usr/local/hadoop-3.2.2/sbin/

在这里插入图片描述

添加环境变量至/etc/profile文件:

PATH=$PATH:/usr/local/hadoop-3.2.2/bin/:/usr/local/hadoop-3.2.2/sbin/

在这里插入图片描述

查看Hadoop版本:

hadoop version

在这里插入图片描述

5、配置Hadoop集群

修改core-site.xml文件:

cat > /usr/local/hadoop-3.2.2/etc/hadoop/core-site.xml << EOF
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode:9000</value>
    </property>
</configuration>
EOF

在这里插入图片描述

修改hdfs-site.xml文件:

cat > /usr/local/hadoop-3.2.2/etc/hadoop/hdfs-site.xml << EOF
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>secondarynamenode:50090</value>
    </property>
</configuration>
EOF

在这里插入图片描述

修改yarn-site.xml文件:

cat > /usr/local/hadoop-3.2.2/etc/hadoop/yarn-site.xml << EOF
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>resourcemanager</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>resourcemanager:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>resourcemanager:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>resourcemanager:8031</value>
    </property>
</configuration>
EOF

在这里插入图片描述

修改mapred-site.xml文件:

cat > /usr/local/hadoop-3.2.2/etc/hadoop/mapred-site.xml << EOF
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
EOF

在这里插入图片描述

修改hadoop-env.sh文件:

vim /usr/local/hadoop-3.2.2/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_291/

在这里插入图片描述

修改workers文件,指定Worker节点:

echo worker1 > /usr/local/hadoop-3.2.2/etc/hadoop/workers
echo worker2 >> /usr/local/hadoop-3.2.2/etc/hadoop/workers
echo worker3 >> /usr/local/hadoop-3.2.2/etc/hadoop/workers

在这里插入图片描述

修改start-dfs.sh文件,指定启动用户:

vim /usr/local/hadoop-3.2.2/sbin/start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

在这里插入图片描述

修改stop-dfs.sh文件,指定启动用户:

vim /usr/local/hadoop-3.2.2/sbin/stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

在这里插入图片描述

修改start-yarn.sh文件,指定启动用户:

vim /usr/local/hadoop-3.2.2/sbin/start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

在这里插入图片描述

修改stop-yarn.sh文件,指定启动用户:

vim /usr/local/hadoop-3.2.2/sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

在这里插入图片描述

6、启动Hadoop集群

在NameNode节点上格式化NameNode:

hdfs namenode -format

在这里插入图片描述

在NameNode节点上启动HDFS:

start-dfs.sh

在这里插入图片描述

在ResourceManager节点上启动YARN:

start-yarn.sh

在这里插入图片描述

7、登录Hadoop集群

登录NameNode:

http://192.168.0.11:9870

在这里插入图片描述

登录Secondary NameNode:

http://192.168.0.12:50090

在这里插入图片描述

登录ResourceManager:

http://192.168.0.13:8088

在这里插入图片描述

9、安装Spark on Yarn集群

在Spark、Worker节点上安装Spark on Yarn

下载Spark文件:

参考地址:http://spark.apache.org/downloads.html

解压Spark安装文件:

tar -zxf /root/spark-3.1.2-bin-hadoop3.2.tgz -C /usr/local/

在这里插入图片描述

设置环境变量:

export PATH=$PATH:/usr/local/spark-3.1.2-bin-hadoop3.2/bin/:/usr/local/spark-3.1.2-bin-hadoop3.2/sbin/

在这里插入图片描述

添加环境变量至/etc/profile文件:

PATH=$PATH:/usr/local/spark-3.1.2-bin-hadoop3.2/bin/:/usr/local/spark-3.1.2-bin-hadoop3.2/sbin/

在这里插入图片描述

10、配置Spark on Yarn集群

在Spark、Worker节点上配置Spark on Yarn

创建spark-env.sh文件:

cat > /usr/local/spark-3.1.2-bin-hadoop3.2/conf/spark-env.sh << EOF
JAVA_HOME=/usr/local/jdk1.8.0_291/
SCALA_HOME=/usr/local/scala3-3.0.1/
HADOOP_HOME=/usr/local/hadoop-3.2.2/
HADOOP_CONF_DIR=/usr/local/hadoop-3.2.2/etc/hadoop/
YARN_CONF_DIR=/usr/local/hadoop-3.2.2/etc/hadoop/etc/hadoop/
SPARK_MASTER_HOST=spark
SPARK_MASTER_PORT=7077
SPARK_HOME=/usr/local/spark-3.1.2-bin-hadoop3.2/
SPARK_LOCAL_DIRS=/usr/local/spark-3.1.2-bin-hadoop3.2/
SPARK_LIBARY_PATH=/usr/local/jdk1.8.0_291/lib/:/usr/local/hadoop-3.2.2/lib/native/
EOF

在这里插入图片描述

创建workers文件,指定Worker节点:

cat > /usr/local/spark-3.1.2-bin-hadoop3.2/conf/workers << EOF
worker1
worker2
worker3
EOF

在这里插入图片描述

11、启动Spark on Yarn集群

在Spark节点上启动Spark Master节点:

start-master.sh

在这里插入图片描述

在Worker节点上启动Spark Worker节点:

start-worker.sh spark://spark:7077

在这里插入图片描述

12、登录Spark on Yarn集群

登录Master:

http://192.168.0.14:8080

在这里插入图片描述

登录Worker:

http://192.168.0.21:8081

在这里插入图片描述

13、验证Spark on Yarn集群

在Spark节点上提交任务:

spark-submit --class org.apache.spark.examples.SparkPi --master yarn /usr/local/spark-3.1.2-bin-hadoop3.2/examples/jars/spark-examples_2.12-3.1.2.jar 10

在这里插入图片描述

登录ResourceManager,查看提交任务:

http://192.168.0.13:8088

在这里插入图片描述

14、停止Spark on Yarn集群

在Worker节点上停止Spark Worker节点:

stop-worker.sh

在这里插入图片描述

在Spark节点上停止Spark Master节点:

stop-master.sh

在这里插入图片描述

15、停止Hadoop集群

在ResourceManager节点上停止YARN:

stop-yarn.sh

在这里插入图片描述

在NameNode节点上停止HDFS:

stop-dfs.sh

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值