spark完全分布式部署

简介: spark完全分布式部署

一、 任务描述

本实验任务主要完成基于ubuntu环境的Spark完全分布式部署、配置和调试工作。通过完成本实验任务,要求学生熟练掌握Spark完全分布式部署方法,为后续实验的开展奠定Spark平台基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。


二、 任务目标

掌握Spark完全分布式环境的部署


三、 任务环境

本次环境是:Ubuntu16.04


四、 任务分析

spark有以下几种安装模式,每种安装模式都有自己不同的优点和长处。

 local(本地模式):

常用于本地开发测试,本地还分为local单线程和local-cluster多线程;

 standalone(集群模式):

典型的Mater/slave模式,Master可能有单点故障的;Spark支持ZooKeeper来实现 HA。

 on yarn(集群模式):

运行在 yarn 资源管理器框架之上,由 yarn 负责资源管理,Spark 负责任务调度和计算。

 on mesos(集群模式):

运行在 mesos 资源管理器框架之上,由 mesos 负责资源管理,Spark 负责任务调度和计算。

 on cloud(集群模式):

比如 AWS 的 EC2,使用这个模式能很方便的访问 Amazon的 S3;Spark 支持多种分布式存储系统:HDFS 和 S3。

 完全分布式与伪分布对应,伪分布是由于机器数量的限制而产生的,而完全分布式是生产模式下的正常模式,至少需要3台机器。


♥ 知识链接

Spark On YARN模式

 spark on yarn 的支持两种模式:


yarn-cluster:适用于生产环境;

yarn-client:适用于交互、调试,希望立即看到app的输出

yarn-cluster和yarn-client的区别在于yarn appMaster,每个yarn app实例有一个appMaster进程,是为app启动的第一个container;负责从ResourceManager请求资源,获取到资源后,告诉NodeManager为其启动container。yarn-cluster和yarn-client模式内部实现还是有很大的区别。如果你需要用于生产环境,那么请选择yarn-cluster;而如果你仅仅是Debug程序,可以选择yarn-client。

五、 任务实施

步骤1、主机映射配置

由于在实际环境中每次生成的主机名都不一致,为了命名的规范和简洁,需要修改每台虚拟机的主机名。在ip为192.168.0.2的虚拟机终端输入命令【vim /etc/hostname】,进入编辑页面输入“master”,编辑完成后保存退出。在终端输入命令【reboot】重启后,主机名就修改完成了。依次将其它两台虚拟机的主机名修改为slave1,slave2。如图1所示。


c77dcf25761f4fe59637c71e96e4a976.png


图1 修改主机名


修改每台电脑的hosts文件。hosts文件和windows上的功能是一样的。存储主机名和ip地址的映射。在每台linux上,【vim /etc/hosts】 编写hosts文件。将主机名和ip地址的映射填写进去。编辑完后,结果如图2所示:


daf38f5979f748689d77493af4024293.png


图2 编辑hosts文件


配置完映射之后,可以通过ping命令进行测试是否能够连通,ping除了可以直接连接IP地址,也可以连接主机名,不过此时需要对配置文件hosts进行修改。“etc/hosts“文件是用来配置主机用的DNS服务器信息,是记载LAN内接各主机名称和IP地址,当用户在连接网络时,首先查找该文件,寻找对应的主机名和IP地址。这样就可以实现不同节点之间可以通过ip地址或主机名相互ping通。如图3所示

e8873301769346f1ba70a2ca7211ab32.png



图3 测试机器之间的联通


完成以上操作即表示完成一个小的局域网络,为spark集群搭建准备好条件,由于每个节点之间需要相互配合,相互访问,为避免反复出现输入密码,此时需要对各个节点之间配置免密码配置。 无密码登陆,效果也就是在master上,通过ssh master 或 ssh slave1 或 ssh slave2就可以登陆到对方计算机上。而且不用输入密码进入ssh目录。下面开始配置免密,进入.ssh目录并查看。如图4所示


3ee7e43d39e94190b7347e8c8c925c2d.png

图4 进入.ssh目录


使用命令【ssh-keygen -t rsa】,一路按回车就行了。刚才都作甚了呢?主要是设置ssh的密钥和密钥的存放路径。 路径为~/.ssh下。

 打开~/.ssh 下面有三个文件

 (1)authorized_keys,已认证的keys

 (2)id_rsa,私钥

 (3)id_rsa.pub,公钥三个文件。

 下面就是关键的地方了,(下面的操作为ssh认证。进行下面操作前,可以先搜关于认证和加密区别以及各自的过程。)在master上将公钥放到authorized_keys里。命令:【cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys】。如图5所示


f730caec7b124be984b75184926b4b75.png


图5 生成公钥和私钥


如果有其他 slave 节点,也要执行将 master 公匙传输到 Slave 节点、在 slave 节点上加入授权这两步。这样,在 master 节点上就可以无密码 SSH 到各个 slave 节点了,可在 master 节点上执行如下命令进行检验,如下图所示

 将master上的公钥放到其他虚拟机的~/.ssh目录下,并测试免密是否成功。下面是放到对slave1的免密配置,依次完成salve2。如图6所示。注意:在进行文件传输时需要密码为“Simplexue123“。上述的操作过程只是单向的,即此时,ssh root@slave1和ssh root@slave2是不需要密码的。而ssh root@master等反向仍然是需要密码的。


9a75d1cd26594dcc84d4474f412fa783.png


图6 将公钥传给其他机器


♥ 温馨提示

 需要在所有节点上完成网络配置,如上面讲的是 master 节点的配置,而在其他的 slave 节点上,也要对/etc/hosts(跟 master 的配置一样)文件进行修改!


步骤2、在master主节点上解压缩

执行命令:cd /simple/soft进入soft目录,如图7所示


f3a337679ea9466987e3513d20ee021b.png


图片7 进入安装包目录


执行命令:ls查看spark安装包,如图8所示



bbe7b5d39280434b854ce0b6801f2faf.png

图片8 查看spark安装包


执行命令:tar -zxvf spark-2.0.1-bin-hadoop2.7.tgz -C /simple进行解压缩,如图9所示


b9b43136181b4d75a351144be21fcbd7.png


图片9 解压缩


进入simple目录,执行命令:ls查看spark解压后的文件夹并修改为简称,如图10所示


bc333af2d2404ddab3447462ccbd91d1.png


图片10 重命名解压文件


修改spark环境变量,在任意目录下执行命令:vim ~/.bashrc编辑配置文件,如图11所示


faf978e8441b49e8ac7beb7f20f7b4bb.png


图片11 配置环境变量


环境变量配置文件生效,执行命令:source ~/.bashrc,如图12所示


d6330b1f04b84ad591a9e06db9da13fc.png


图片12 环境变量配置文件生效


步骤3、spark完全分布式集群配置

切换至spark安装目录下的/simple/spark/conf文件并执行命令:ls查看所有配置文件,并对文件spark-env.sh.template和slaves.template执行重命名命令生成spark-env.sh和slaves文件,如图13所示


cdc617a15e42444b829b04afaad92c43.png


图片13 重命名文件


配置spark-env.sh。在conf目录下执行命令:vim spark-env.sh并编辑其中内容,如图14所示

41943ac3c9e2446e959f4bb17502c178.png



图片14 配置编辑文件


执行命令:vi slaves编辑修改slaves文件,如图15所示


d222758c017c45cab185df6f8dda529a.png


图片15 添加从节点


在另外两个节点进行一模一样的配置,使用scp将spark和.bashrc拷贝到slave1和slave2即可,

scp -r spark root@slave1:/simple/ 如图16所示


56741704609747b99d9b08684563494e.png


图片16 拷贝spark文件到从节点


scp -r ~/.bashrc root@slave1:~/ 如图17所示

2aec1ba67a31436d8b8639512024d4f8.png



图片17 拷贝.bashrc文件到从节点


在spark目录下的sbin目录执行./start-all.sh启动spark服务,如图18所示

242dc967c33e46aea9f33828f37239cb.png



图片18 启动spark服务


步骤4、集群状态查看

查看主节点spark服务进程,如图19所示


e1d134989e8f4b64810ca6f300afbe47.png


图片19 显示主节点服务


查看两个从节点spark服务进程,如图20、21所示


467d6ef972ec4dfaa2f3a4fab9898f56.png


图片20 显示从节点服务


1b7fca6d795d4504a631f94686d9c3e2.png


图片21 显示从节点服务


通过浏览器访问端口查看主节点现在状态,状态表示:work机有两个,当前没有任务在执行,完成的任务数量为0(访问地址 http://localhost: 8080),如图22所示


4521b7da8ce54b50b0e9754659cbae8f.png


图片22 显示集群状态


在主节点中执行命令:cd /simple/spark/sbin进入spark的sbin目录,如图23所示


0f66d093d2ba42a0ad3220c4290dbc37.png


图23 进入spark服务停止目录


执行命令:./stop-all.sh停止spark服务进程,如图24所示


b3e7a2ad392f41029ac77e54583f254f.png


图片24 停止spark服务


再次查看主节点spark服务进程,如图25所示


c576cb465a3743b48e2ea699d086f1d0.png


图片25 显示主节点服务


再次查看两个从节点spark服务进程,如图26、27所示


3b0db811f5fd458daacd19935fb4d19c.png


图片26 显示从节点服务


a7d2d620febe491484995a37ae7434ae.png


图片27 显示从节点服务


♥ 温馨提示

配置好环境变量后一定要执行使配置生效的命令;使用spc命令传输文件夹时一定要带参数-r

f90788099d514cfba8edd2d773bd4545.png


相关文章
|
4月前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
673 1
|
SQL 分布式计算 数据库连接
大数据Spark分布式SQL引擎
大数据Spark分布式SQL引擎
254 0
|
1月前
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
127 3
|
1月前
|
SQL 分布式计算 监控
|
2月前
|
SQL 分布式计算 监控
在hue上部署spark作业
7月更文挑战第11天
82 3
|
4月前
|
分布式计算 Hadoop 大数据
分布式计算框架比较:Hadoop、Spark 与 Flink
【5月更文挑战第31天】Hadoop是大数据处理的开创性框架,专注于大规模批量数据处理,具有高扩展性和容错性。然而,它在实时任务上表现不足。以下是一个简单的Hadoop MapReduce的WordCount程序示例,展示如何统计文本中单词出现次数。
158 0
|
3月前
|
分布式计算 Shell Linux
Spark-集群安装、部署、启动、测试(1.6.3)稳定版
Spark-集群安装、部署、启动、测试(1.6.3)稳定版
49 0
|
4月前
|
SQL 分布式计算 Hadoop
Spark分布式内存计算框架
Spark分布式内存计算框架
113 0
|
12月前
|
分布式计算 大数据 Spark
基于Docker搭建大数据集群(四)Spark部署
基于Docker搭建大数据集群(四)Spark部署
|
4月前
|
分布式计算 资源调度 监控
Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)(一)
Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)(一)
173 1