CentOS 7.7 Spark2.4.6 安装
首次发布时间:2020/8/21
最后修改时间:2020/8/21
摘要
- 下载 Spark
- 下载 Scala
- 解压 Spark 和 Scala 压缩包
- 修改 Spark 的配置文件
- 配置环境变量
- 将相关配置复制到从节点
- 启动集群
- 网页控制台
- 客户端测试
- 关闭集群
下载 Spark
下载地址
版本选择下载
- 我这里选的是
spark-2.4.6
,即当前2.x
的最新版 - 点击下图红框中的
spark-2.4.6/
- 点击
spark-2.4.6-bin-hadoop2.7.tgz
进行下载即可
将 Spark 压缩包移动到 CentOS 系统中
- 下载完毕后,要把下载好的
spark-2.4.6-bin-hadoop2.7.tgz
移到虚拟机的 CentOS 系统中 - 我用的工具是
FlashFXP
,关于如何用FlashFXP
连接 VMWare 的 CentOS 系统,可以参考: - 连接上之后直接将下载好的
spark-2.4.6-bin-hadoop2.7.tgz
拉到/usr/local/src
目录即可
下载 Scala
下载地址
版本选择下载
-
我这里选的是
Scala 2.11.8
-
因为前面下载的 Spark 版本用到的是 Scala 2.11
-
点击下图红框中的
Scala 2.11.8
-
划到新跳转的页面中的最下方
-
点击
scala-2.11.8.tgz
进行下载即可
将 Scala 压缩包移动到 CentOS 系统中
- 下载完毕后,要把下载好的
scala-2.11.8.tgz
移到虚拟机的 CentOS 系统中 - 也是用
FlashFXP
来拉 - 连接上之后直接将下载好的
scala-2.11.8.tgz
拉到/usr/local/src
目录即可
解压 Spark 和 Scala 压缩包
- 进入压缩包所在目录
cd /usr/local/src
- 解压 Spark 压缩包
tar zxvf spark-2.4.6-bin-hadoop2.7.tgz
- 解压 Scala 压缩包
tar zxvf scala-2.11.8.tgz
下图只是展示一下命令,实际解压过程要 1 分钟左右
- 解压完后
修改 Spark 的配置文件
修改 spark-env.sh
- 原本是没有
spark-env.sh
的 - 只有一个叫
spark-env.sh.template
的模板文件 - 所以首先需要将模板复制一份,并命名为
spark-env.sh
cp spark-env.sh.template spark-env.sh
- 然后修改
spark-env.sh
的内容vim spark-env.sh
export SCALA_HOME=/usr/local/src/scala-2.11.8
export JAVA_HOME=/usr/local/src/jdk1.8.0_261
export HADOOP_HOME=/usr/local/src/hadoop-2.8.5
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_MASTER_HOST=master
SPARK_MASTER_PORT=7077
SPARK_LOCAL_DIRS=/usr/local/src/spark-2.4.6-bin-hadoop2.7
SPARK_DRIVER_MEMORY=1G
修改 slaves
- 原本是没有
slaves
文件的 - 只有一个叫
slaves.template
的模板文件 - 所以首先需要将模板复制一份,并命名为
slaves
cp slaves.template slaves
- 然后修改
slaves
文件的内容vim slaves
slave1
slave2
加在文件末尾即可
slaves 文件中原本有一个叫 localhost 的,把它删掉
配置环境变量
vim ~/.bashrc
export SCALA_HOME=/usr/local/src/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin
export SPARK_HOME=/usr/local/src/spark-2.4.6-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
将相关配置复制到从节点
复制环境变量到从节点
scp -r ~/.bashrc root@slave1:~/
scp -r ~/.bashrc root@slave2:~/
复制 Scala 包到从节点
scp -r /usr/local/src/scala-2.11.8 root@slave1:/usr/local/src/
scp -r /usr/local/src/scala-2.11.8 root@slave2:/usr/local/src/
复制 Spark 包到从节点
scp -r /usr/local/src/spark-2.4.6-bin-hadoop2.7 root@slave1:/usr/local/src/
scp -r /usr/local/src/spark-2.4.6-bin-hadoop2.7 root@slave2:/usr/loca/src/
重新加载环境变量(每个节点都要执行)
source ~/.bashrc
启动集群
- 本节内容只需要在 master 节点执行即可
先启动 hadoop
/usr/local/src/hadoop-2.8.5/sbin/start-all.sh
通过查看 jps,发现 NameNode 已经创建出来了
然后再启动 spark
/usr/local/src/spark-2.4.6-bin-hadoop2.7/sbin/start-all.sh
通过查看 jps,发现 Master 已经创建出来了
- 接着查看 slave 节点的服务进程
- 可以看到 Worker 节点已经创建成功了
网页控制台
修改 hosts 文件
- 登录网页控制台,首先是要修改 Windows 的 hosts 文件的
- 但是因为上一篇已经讲过了,这里不再赘述
- 没看的可以参考:
登录网页控制台
- 用浏览器访问
master:8080
注意 Spark 是
8080
,而 Hadoop 是8088
要看清楚,不要弄错了,我一开始就是看混了
客户端测试
- 在 master 节点执行
cd /usr/local/src/spark-2.4.6-bin-hadoop2.7
bin/spark-shell --master spark://master:7077
- 看清楚端口号,是
7077
,不要写成7070
了
登录网页控制台
- 用浏览器访问
master:4040
在这里可以看到 Spark 运行中的任务,
当没有执行bin/spark-shell --master spark://master:7077
时是打不开该页面的
- 这时候访问
master:8080
也能看到运行的任务
我截图时任务已跑完,所以 Completed Applications 一项也有内容
关闭集群
- 本节内容只需要在 master 节点执行即可
先关闭 spark
/usr/local/src/spark-2.4.6-bin-hadoop2.7/sbin/stop-all.sh
然后关闭 hadoop
/usr/local/src/hadoop-2.8.5/sbin/stop-all.sh
记得按照这个顺序关闭,不然怕 hadoop 崩溃,丢失数据
结束
- 有不清楚的可留言