Apache Spark 2.4.8在CentOS下的安装(单节点及集群环境)
环境依赖
-
CentOS7,JDK8,scala-2.12.11.tgz,spark-2.4.8-bin-hadoop2.7.tgz
-
关闭防火墙
#关闭命令 service firewalld stop chkconfig firewalld off
-
关闭SELINUX
#SELINUX=enforcing SELINUX=disabled
一、单节点安装
下载并安装Spark
-
下载地址
https://spark.apache.org/downloads.html 选择对应版本
-
将下载的文件放入/spark文件夹下并解压
[root@localhost spark]# tar -zxvf spark-2.4.8-bin-hadoop2.7.tgz
-
将解压的文件改名
[root@localhost spark]# mv spark-2.4.8-bin-hadoop2.7 spark2.4.8
修改配置文件
-
进入到conf文件路径下,将slaves.template拷贝并改名slaves
[root@localhost conf]# cp slaves.template slaves
-
将spark-env.sh.template拷贝并改名spark-env.sh
[root@localhost conf]# cp spark-env.sh.template spark-env.sh
-
vim spark-env.sh,在最后添加如下内容,如下配置路径视情况修改
export JAVA_HOME=/usr/local/src/jdk8 export SCALA_HOME=/usr/local/src/scala-2.12.11 export SPARK_HOME=/spark/spark2.4.8 export SPARK_MASTER_IP=127.0.0.1 export SPARK_EXECUTOR_MEMORY=1G
-
修改环境变量 vim /etc/profile
export JAVA_HOME=/usr/local/src/jdk8 export JRE_HOME=$JAVA_HOME/jre export CLASS_PATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export SCALA_HOME=/usr/local/src/scala-2.12.11 export SPARK_HOME=/spark/spark2.4.8 export PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin
-
保存退出后,使配置生效:
[root@localhost conf]# source /etc/profile
启动单节点Spark
-
进入sbin路径,执行命令启动spark ./start-all.sh
[root@localhost sbin]# ./start-all.sh
-
如提示输入密码,则需要进行ssh免密登录配置,如下
-
如果没有配置免密登录的话每次登录到这台服务器都要输入密码
[root@localhost spark2.4.8]# ssh 192.168.237.128
-
在本地机器(192.168.237.128)生成私钥和公钥
[root@localhost ~]# cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost [root@localhost .ssh]# ssh-keygen -t rsa # 会有提示,都按回车就可以 [root@localhost .ssh]# cat id_rsa.pub >> authorized_keys # 加入授权 [root@localhost .ssh]# chmod 600 ./authorized_keys # 修改文件权限
-
将公钥上传到远端机器(在此为本机)
[root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.237.128
-
-
启动成功,jps命令查看Master和Worker节点是否已启动
[root@localhost sbin]# jps 14084 Master 14244 Jps 14186 Worker
验证spark环境启动是否成功
- 浏览器输入 ip+8080端口 如:http://192.168.237.128:8080/
关闭Spark
- 在sbin下执行 ./stop-all.sh,然后jps看master和worker进程是否关闭了
二、集群环境安装
服务器规划
- Spark也是一个主从架构的分布式计算引擎。主节点是Master,从节点是Worker。
Server | IP | Master | Worker |
---|---|---|---|
bigdata02 | 192.168.173.132 | √ | √ |
bigdata03 | 192.168.173.133 | √ | |
bigdata04 | 192.168.173.134 | √ |
环境准备
设置hostname
-
在Master节点的bigdata02机器上,将hostname置为bigdata02
hostnamectl set-hostname bigdata02
-
同样的方式在另外两台worker节点上分别设置hostname为bigdata03、bigdata04
配置hosts文件信息
-
在三个节点都需要配置 vim /etc/hosts
192.168.173.132 bigdata02 192.168.173.133 bigdata03 192.168.173.134 bigdata04
设置节点之间的ssh免密登录
- 配置132节点到133节点和134节点的ssh免密登录,一定要配,具体配法此处不做说明,可参考网上搜索的博文:https://www.cnblogs.com/shireenlee4testing/p/10366061.html
下载并安装Spark
-
在主节点服务器上的路径/spark,将spark压缩包放入此路径,并解压。
[root@bigdata02 spark]# tar -zxvf spark-2.4.8-bin-hadoop2.7.tgz
修改配置文件
-
在主节点上进入解压后的文件对应的conf路径下
-
将slaves.template拷贝并改名slaves
[root@bigdata02 conf]# cp slaves.template slaves
-
修改slaves文件如下
bigdata02 bigdata03 bigdata04
-
将spark-env.sh.template拷贝并改名spark-env.sh
[root@bigdata02 conf]# cp spark-env.sh.template spark-env.sh
-
vim spark-env.sh,在最后添加如下内容,如下配置路径视情况修改
export JAVA_HOME=/usr/local/src/jdk8 export SCALA_HOME=/usr/local/src/scala-2.12.11 export SPARK_HOME=/spark/spark-2.4.8-bin-hadoop2.7 export SPARK_MASTER_HOST=bigdata02 export SPARK_EXECUTOR_MEMORY=1G
分发Spark安装配置信息到从节点
-
在bigdata02上依次执行
[root@bigdata02 spark]# scp -r spark-2.4.8-bin-hadoop2.7 root@bigdata03:/spark/spark-2.4.8-bin-hadoop2.7/ [root@bigdata02 spark]# scp -r spark-2.4.8-bin-hadoop2.7 root@bigdata04:/spark/spark-2.4.8-bin-hadoop2.7/
修改环境变量配置文件
-
在主节点bigdata02上修改配置文件 vim /etc/profile,以下路径视本机情况而定
export JAVA_HOME=/usr/local/src/jdk8 export JRE_HOME=${JAVA_HOME}/jre export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export HADOOP_HOME=/hadoop/hadoop-2.7.7 export SCALA_HOME=/usr/local/src/scala-2.12.11 export SPARK_HOME=/spark/spark-2.4.8-bin-hadoop2.7 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin:$SPARK_HOME/bin
-
保存修改并退出后,执行加载命令使之生效
source /etc/profile
启动集群Spark
-
在Master节点即bigdata02上,进入sbin路径并执行启动Spark集群命令 ./start-all.sh
[root@bigdata02 sbin]# ./start-all.sh starting org.apache.spark.deploy.master.Master, logging to /spark/spark-2.4.8-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-bigdata02.out bigdata02: starting org.apache.spark.deploy.worker.Worker, logging to /spark/spark-2.4.8-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-bigdata02.out bigdata03: starting org.apache.spark.deploy.worker.Worker, logging to /spark/spark-2.4.8-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-bigdata03.out bigdata04: starting org.apache.spark.deploy.worker.Worker, logging to /spark/spark-2.4.8-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-bigdata04.out
-
分别在三个节点用jps命令查看启动节点内容(注:此三个节点之前做过ApacheHadoop的集群并启动着)
[root@bigdata02 sbin]# jps 1776 NameNode 2292 NodeManager 67574 Master 67722 Jps 67645 Worker 1919 DataNode
[root@bigdata03 conf]# jps 1692 DataNode 1884 NodeManager 75053 Jps 1775 SecondaryNameNode 74990 Worker
[root@bigdata04 spark-2.4.8-bin-hadoop2.7]# jps 2128 ResourceManager 1796 NodeManager 66361 Worker 66445 Jps 1677 DataNode
验证Spark集群环境
- 浏览器输入 ip+8080端口 如:http://192.168.173.132:8080/