Spark集群环境搭建

Spark集群环境搭建,第1张

Spark集群环境搭建

实验目的:

通过该实验后,能掌握以下知识:

1 能够手动搭建Spark集群

2 能使用Spark Shell

实验说明:

本实验环境中已经配置好Hadoop集群环境和spark on yarn的运行环境,只需要在主服务器(namenode)上执行hdfs namenode -format 格式化命令后启动Hadoop集群。

本次搭建的Spark将使用Hadoop YARN作为集群的资源管理器。所以其需要基于Hadoop集群环境。

实验步骤:

步骤一:启动Hadoop集群

进入到hadoop目录下,执行命令bin/hdfs namenode -format,进行格式化(首次启动需格式化),然后再执行sbin/./start-all.sh启动 Hadoop集群。使用jps命令查看服务。

查看主服务器服务

查看俩个从服务器服务

 

步骤二:

通过远程传输工具上传spark安装包,并进行解压

 

注:解压好spark包需在/etc/profile中配置spark环境变量,具体见“笔记”中配置环境变量

步骤三:配置spark集群

首先配置Spark的环境变量文件spark-env.sh,位于Spark安装目录的conf目下。默认没有这个文件,只有spark-env.sh.template,它是配置参考模板。我们将其修改为spark-env.sh,然后编辑spark-env.sh:

增加如下内容(黑色部分),分别是Spark的依赖的JAVA目录,Spark根目录,Hadoop配置目录和Spark本地的数据存储目录,加完后保存(记得改路径及IP)。

这里注意tmp目录可能不存在,需要自己创建

接下指定Spark集群的从节点,通过指定Spark的环境变量文件slaves,它的方式和Hadoop集群一致,但默认不存在这个文件,只有slaves.template。所以同样将其重命名为slaves,编辑slaves:

这里我们将三台服务器都作为子节点,即Worker节点。默认下面有localhost需要将其去掉,然后将三台服务器的host或者各自的IP放进去即可,host参考/etc/hosts文件。这里我们直接放三个host:

接下指定Spark集群的默认配置,通过指定Spark的环境变量文件spark-defaults.conf,位于Spark安装目录下的conf目录下,同样默认不存在这个文件,只有spark-defaults.conf.template。

所以同样将其重命名为spark-defaults.conf,然后编辑spark-defaults.conf:

末尾增加参数,注意IP为主服务器的实际IP,注意替换。

注意:本次配置 *** 作需要在集群的每台机器上全部执行。

可以采用复制的方法

scp -r /opt/module/spark-2.1.0 root@jll02:/opt/module/

步骤四:启动spark

进入主服务器命令行,启动spark之前需要在hdfs文件系统里建立spark的eventLog目录,使用cd命令进入到hadoop目录下,然后在HDFS新建目录/spark/eventLog(此目录路径是在spark-2.1.0/conf/spark-default.conf里配置的)。

在主服务器上,进入到/opt/mudule/spark-2.1.0,启动spark集群服务:

从日志上可以看到启动了三个Worker节点。使用jps命令查看主从服务器的服务:

 

  

三台服务器上都启动了了Worker进程,而主服务器上还启动了Master。

至此Spark分布式集群启动完成,如果用户项配置伪分布式Spark也很简单,只要不配置slave,直接start-all.sh即可。

如果用户想关闭Spark集群,直接在主服务器上执行stop-all.sh即可。

步骤五:spark shell

在主服务器上执行,Spark的shell提供了一个学习API的简单方法,也是一个交互式分析数据的强大工具。

启动spark-shell是Scala语言的交互式编程入口。启动很简单,直接执行即可。

可以看到Spark context Web UI available at http://192.168.242.6:4040,表示Spark Shell在启动后会生成一个web服务,用户可以访问地址来查看执行情况:

 

另外看到master = local[*]字样,表示spark-shell使用的伪分布式,也是只会在单机执行程序。访问上面的web页面,点击Executors,可以发现只有一个驱动程序:

 

如果不知道使用Spark shell可以参考help:

 

可以输入简单的1+1,和打印语句检测效果:

 

退出Spark shell,使用:quit:

 

下面将以集群的方式启动spark-shell,可以--master参数实现:

 

可以发现master 不是 local[*]而是spark://172.40.30.201:7077,再次访问Web页面:

 

可以发现有一个驱动执行器和三个执行器,即1个Master和三个Worker。

 

 

 

 

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5573746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存