任务背景
在分布式环境中,计算资源(Core和Memory)需要进行管理,为了使得资源利用率高效,则需确保每个作业都有相对公平运行的机会,Spark提出了集群管理器(Cluster Manager)的思想。Spark可以运行在各种集群管理器(Cluster Manager)上,并通过集群管理器(Cluster Manager)访问集群中的机器。
另一种资源协调者(ON YARN)是基于HDFS这个Hadoop存储层的Hadoop计算框架。YARN遵循主从架构。主守护进程被称为资源管理器(ResourceManager),从守护进程被称为节点管理器(NodeManager)。另外,针对应用程序的生命周期管理由ApplicationMaster负责,它可以被派生到任何从节点上并可以生存一个应用的生命周期时长。如果Spark运行在YARN上的话,那么资源管理器(ResourceManager)充当SparkMaster,节点管理器(NodeManager)充当工作节点(Worker),每个Spark执行程序以YARN容器(Container)的形式运行。
任务需求
现有已安装JDK的Linux服务器三台,主服务器(master)中存有hadoop-2.7.4.tar.gz、spark-2.2.0-bin-hadoop2.7.tgz压缩包,在三台机器上以事先搭建完Hadoop分布式集群环境,把多个进程分布到不同机器的集群环境。
服务器主机 | master | slave1 | slave2 |
---|---|---|---|
NameNode | 是 | 否 | 否 |
SecondaryNameNode | 是 | 否 | 否 |
dataNode | 否 | 是 | 是 |
ResourceManager | 是 | 否 | 否 |
NodeManager | 否 | 是 | 是 |
任务分析
任务步骤
1.下载版本选型说明
2.解压缩spark-2.2.0-bin-hadoop2.7.tgz
3.修改spark配置文件
4.远程scp分发
5.配置环境变量
6.绑定Hadoop配置目录
7.注意事项
8.开启Hadoop集群
9.开启spark-shell会话
10.查看WebUI监控界面
任务实施过程
1.Spark On Yarn模式集群搭建
知识点
1)Spark On Yarn模式集群搭建
实验目的
1)掌握Spark On Yarn模式环境搭建及运行监控
实验环境
1)Oracle Linux 7.4
2)JDK 1.8
3)Hadoop 2.7.4
4)Spark 2.2.0
实验步骤
1)实验准备
1.实验准备三台机器分别为master,slave1,slave2
2.单击master机器桌面中的终端
2)Spark On Yarn模式安装与配置
1.解压Spark压缩文件至/opt目录下
[Command 001]
tar -zxvf ~/experiment/file/spark-2.2.0-bin-hadoop2.7.tgz -C /opt
2.修改解压后为文件名为spark
[Command 002]
mv /opt/spark-2.2.0-bin-hadoop2.7 /opt/spark
3.复制spark配置文件,首先在主节点(Master)上,进入Spark安装目录下的配置文件目录{ $SPARK_HOME/conf },并复制spark-env.sh配置文件:
[Command 003]
cd /opt/spark/conf
cp spark-env.sh.template spark-env.sh
4.Vim编辑器打开spark配置文件
[Command 004]
vim spark-env.sh
5.按键Shift+g键定位到最后一行,按键 i 切换到输入模式下,添加如下代码,注意:“=”附近无空格:
[Code 001]
export JAVA_HOME=/usr/lib/java-1.8
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077
6.复制一份spark的slaves配置文件
[Command 005]
cp slaves.template slaves
7.修改spark的slaves配置文件
[Command 006]
vim slaves
8.每一行添加工作节点(Worker)名称,按键Shift+g键定位到最后一行,按键 i 切换到输入模式下,添加如下代码
[Command 007]
slave1
slave2
按键Esc,按键:wq保存退出
9.复制spark-defaults.conf
[Command 008]
cp spark-defaults.conf.template spark-defaults.conf
10.通过远程scp指令将Master主节点的Spark安装包分发至各个从节点,即slave1和slave2节点
[Command 009]
scp -r /opt/spark/ root@slave1:/opt/
scp -r /opt/spark/ root@slave2:/opt/
11.配置环境变量:分别在master,slave1和slave2节点上配置环境变量,修改【/etc/profile】,在文件尾部追加以下内容
[Command 010]
vim /etc/profile
按键Shift+g键定位到最后一行,按键 i 切换到输入模式下,添加如下代码
[Command 011]
#spark install
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
主节点(master)上执行截图,如下:
从节点1(Slave1)上执行截图,如下:
从节点2(Slave2)上执行截图,如下:
12.按键Esc,按键:wq保存退出
13.分别在Slave1和Slave2上,刷新配置文件
[Command 012]
source /etc/profile
14.绑定Hadoop配置目录(在主节点),Spark搭建On YARN模式,只需修改spark-env.sh配置文件的HADOOP_CONF_DIR属性,指向Hadoop安装目录中配置文件目录,具体操作如下
[Command 013]
vim /opt/spark/conf/spark-env.sh
[Command 014]
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
15.按键Esc,按键:wq保存退出
16.在主节点修改完配置文件后,一定要将【/opt/spark/conf/spark-env.sh】文件同步分发至所有从节点,命令如下
[Command 015]
scp -r /opt/spark/conf/spark-env.sh root@slave1:/opt/spark/conf/
scp -r /opt/spark/conf/spark-env.sh root@slave2:/opt/spark/conf/
17.注意事项,如不修改此项,可能在提交作业时抛相关异常,Yarn的资源调用超出上限,需修在文件最后添加属性改默认校验属性,修改文件为
{HADOOP_HOME/etc/hadoop}/yarn-site.xml
[Command 016]
vim /opt/hadoop/etc/hadoop/yarn-site.xml
[Command 017]
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
18.修改完成后分发至集群其它节点:
[Command 018]
scp /opt/hadoop/etc/hadoop/yarn-site.xml root@slave1:/opt/hadoop/etc/hadoop/
scp /opt/hadoop/etc/hadoop/yarn-site.xml root@slave2:/opt/hadoop/etc/hadoop/
19.开启Hadoop集群,在开启Spark On Yarn集群之前必须首先开启Hadoop集群,指令如下:
[Command 019]
start-dfs.sh
start-yarn.sh
20.开启spark shell会话
[Command 020]
spark-shell --master yarn-client
21.查看三台节点的后台守护进程
[Command 021]
jps
22.查看查看WebUI界面,应用提交后,进入Hadoop的Yarn资源调度页面http://master:8088,查看应用的运行情况,如图所示
所有配置完成