在分布式环境中,计算资源(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)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]
yarn.nodemanager.pmem-check-enabled
false
yarn.nodemanager.vmem-check-enabled
false
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,查看应用的运行情况,如图所示
所有配置完成