Hadoop集群搭建:11.Spark搭建

一、资源准备

先要准备Spark安装包和Scala安装包,安装包可以在阿里和网易的资源站下载

1,Spark 下载:https://mirrors.aliyun.com/apache/spark/ ,需要按照自己HDFS的版本选择对应的安装包,我的HDFS是2.7版本,可以选择:spark-2.4.6-bin-hadoop2.7.tgz,也可以选择基于hadoop2.7版本的其他版本

2,Scala 下载:先去spark官网查看文档,找到对应的scala版本 https://spark.apache.org/documentation.html

查看对应的scala版本

之后去Scala官网下载安装包 https://www.scala-lang.org/download/ ,现在已经是2.13了,找到之前的版本进行下载:https://www.scala-lang.org/download/2.12.0.html。下载tgz给集群使用,下载zip给windows使用

二、搭建集群

Scala部分

1,把scala-2.12.0.tgz上传到linux的/software目录下

2,解压scala-2.12.0.tgz到/module/目录下面:tar -zxvf scala-2.12.0.tgz -C /module/

3,配置环境变量 vi /etc/profile

# SCALA_HOME

export SCALA_HOME=/module/scala-2.12.0

export PATH=$PATH:$SCALA_HOME/bin

4,source /etc/profile  属性配置

5,验证版本号:scala -version

Spark部分

1,把spark-2.4.6-bin-hadoop2.7.tgz上传到linux的/software目录下

2,解压spark-2.4.6-bin-hadoop2.7.tgz到/module/目录下面:tar -zxvf spark-2.4.6-bin-hadoop2.7.tgz -C /module

3,进入module目录下,重命名:mv spark-2.4.6-bin-hadoop2.7  spark-2.4.6

4,进入spark/conf目录下,重命名: mv spark-env.sh.template spark-env.sh

5,修改spark-env.sh配置文件

# JAVA_HOME

export JAVA_HOME=/module/jdk1.8.0_144

# 设置Master的主机名

export SPARK_MASTER_IP=node1

# 提交Application的端口,默认就是这个,万一要改呢,改这里

export SPARK_MASTER_PORT=7077

# 每一个Worker最多可以使用的cpu core的个数,我虚拟机就一个,真实服务器如果有32个,你可以设置为32个

export SPARK_WORKER_CORES=1

# 每台机器上运行的worker数量,默认一个

export SPARK_WORKER_INSTANCES=1

# 每一个Worker最多可以使用的内存,我的虚拟机就1g,真实服务器如果有128G,你可以设置为100G

export SPARK_WORKER_MEMORY=1g

# 一般来说,spark任务有很大可能性需要去HDFS上读取文件,所以配置上(配置调度为hadoop的yarn),如果说你的spark就读取本地文件,也不需要yarn管理,不用配

export HADOOP_CONF_DIR=/module/hadoop-2.7.2/etc/hadoop


spark-env.xml

6,重命名:mv slaves.template slaves

7,vi  slaves   修改slaves配置文件,添加Worker的主机列表,把localhost改成node1,node2,node3

slaves

8, 把SPARK_HOME/sbin下的start-all.sh和stop-all.sh这两个文件重命名

分别把这两个文件重命名为start-spark-all.sh和stop-spark-all.sh:

cd../sbin

mv start-all.sh start-spark-all.sh 

mv stop-all.sh stop-spark-all.sh

原因:

如果集群中也配置HADOOP_HOME,那么在HADOOP_HOME/sbin目录下也有start-all.sh和stop-all.sh这两个文件,当你执行这两个文件,系统不知道是操作hadoop集群还是spark集群。修改后就不会冲突了,当然,不修改的话,你需要进入它们的sbin目录下执行这些文件,这肯定就不会发生冲突了。我们配置SPARK_HOME主要也是为了执行其他spark命令方便。

9,往yarn提交任务需要增加两个配置。

进入/module/hadoop-2.7.2/etc/hadoop目录下,在yarn-site.sh里增加这2个

yarn.nodemanager.pmem-check-enabled

false

yarn.nodemanager.vmem-check-enabled

false

yarn-site.xml

10,配置SPARK_HOME环境变量

# SPARK_HOME

export SPARK_HOME=/module/spark-2.4.6

export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

SPARK_HOME

11,发送系统配置文件、修改后的yarn-site.xml 、spark文件夹到其他集群,并刷新配置信息

12,关闭yarn:stop-yarn.sh,并重启yarn:start-yarn.sh(因为刚才修改了配置信息)

13,在master节点启动Spark:start-spark-all.sh   注意:启动spark之前需要先启动hadoop集群


node1


node2


node3

注:修改yarn-site.xml配置文件之后,存在一个问题:用start-all.sh 命令启动hdfs集群时,resouremanager会启动不了,需要自己去node3节点手动启动yarn,原因没找到,只能先保留疑问。

14,执行 spark-shell 命令,看是否显示版本,并进入到shell模式

shell,Local模式

spark-shell --master yarn

shell,使用yarn模式

你可能感兴趣的:(Hadoop集群搭建:11.Spark搭建)