CentOS7 + Hadoop3.2.0 + Spark2.4.3搭建

搭建准备

首先 下载Spark安装包,注意如果之前搭建了Hadoop,要选择对应的的版本。
我之前搭建的是Hadoop 3.2.0伪分布式环境,因此下载spark包的时候,要选择Pre-build for Apache Hadoop 2.7 and later.

在/usr/local下创建spark文件夹,然后解压我们刚才下载的包。

[root@DW1 spark]# tar -zxvf spark-2.4.3-bin-hadoop2.7.tgz 
[root@DW1 spark]# ls
spark-2.4.3-bin-hadoop2.7  spark-2.4.3-bin-hadoop2.7.tgz

然后下载scala安装包(可选),我选择的是scala-2.11.6版本
Spark虽然是用Scala语言实现的,但其实在搭建过程中并不需要手动安装scala包。这里选择安装是为了后续学习使用方便。
同样在/usr/local下创建scala文件夹,然后解压安装包。

[root@DW1 scala]#  tar -zxf scala-2.11.6.tgz
[root@DW1 scala]# ls
scala-2.11.6  scala-2.11.6.tgz

修改环境变量

修改/etc/profile,分别添加Scala和spark的环境变量:

[root@DW1 spark]# vi /etc/profile
# 添加以下内容
#scala
export SCALA=/usr/loacl/scala/scala-2.11.6
export PATH=$PATH:$SCALA_HOM/bin:$SCALA_HOM/sbin
注意这里我把$SCALA_HOM/sbin也加进去了,有些博客是不把这一项放进去的,原因后面再解释

#spark
export SPARK_HOME=/usr/loacl/spark/spark-2.4.3-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin

[root@DW1 spark]# source /etc/profile

我们可以利用一些命令来检查配置的路径有没有错误,如:

[root@DW1 ~]# cd $SPARK_HOME
[root@DW1 spark-2.4.3-bin-hadoop2.7]# 

[root@DW2 ]# echo $SPARK_HOME
/usr/local/spark/spark-2.4.3-bin-hadoop2.7
如果不正确,就会打印错误的路径,或者提示没有此路径

配置完环境后,Scala就安装好了,可以用以下指令进行验证:

[root@DW1 scala]# scala -version
Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL

修改相应配置文件

将$SPARK_HOME/conf/下的spark-env.sh.template更名为spark-env.sh并添加以下内容:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.2.0
export HADOOP_CONF_DIR=//usr/local/hadoop/hadoop-3.2.0/etc/hadoop
# 显式配置主机号和端口号
export SPARK_MASTER_HOST=DW1
export SPARK_MASTER_PORT=7077
# 主机内存和核
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=1

将slaves.template更名为slaves并添加以下内容:

# 修改默认的localhost为从节点的主机名
DW2
DW3

修改SPAPK_HOME/sbin下的start-all.sh和stop-all.sh的文件名:
因为集群中也搭建了Hadoop,设置了HADOOP_HOME环境变量,而恰巧hadoop启动和暂停集群的脚本也为命名start-all.sh和stop-all.sh这两个名字。如果不改名的话,操作系统将无法识别是操作hadoop还是spark,因此会发生冲突。

[root@DW1 conf]# cd ../sbin
[root@DW1 sbin]# mv start-all.sh start-spark-all.sh
[root@DW1 sbin]# mv stop-all.sh stop-spark-all.sh

记得前面环境变量我选择把$SCALA_HOM/sbin也配置进去吗?
那就是为了在任意位置下都能用start-spark-all.sh和stop-spark-all.sh来开启关闭spark.

如果不改名且不配置这一路径,每次开启或者关闭spark,就只能cd进入$SCALA_HOM/sbin路径下,手动sh start-all.sh和stop-all.sh这两个脚本,极其麻烦。


将spark包分发到从节点

[root@DW1 local]# scp -r spark DW2:/usr/local
[root@DW1 local]# scp -r spark DW3:/usr/local

同时不要忘记各从节点的环境变量也要修改


启动集群

先开启hadoop集群:

[root@DW1 ~]# start-all.sh
[root@DW1 ~]# jps
9429 SecondaryNameNode
9670 ResourceManager
9165 NameNode
10045 Jps

再开启spark集群:

[root@DW1 ~]# start-spark-all.sh
#主节点
[root@DW1 ~]# jps
9429 SecondaryNameNode
10069 Master
9670 ResourceManager
10188 Jps
9165 NameNode

# 从节点
[root@DW2 ~]# jps
5521 DataNode
5809 Jps
5764 Worker
5629 NodeManager

对比发现主节点多了一项master,从节点多了一项worker
到这里,spark的环境就搭建完成了。


你可能感兴趣的:(大数据)