共计 3244 个字符,预计需要花费 9 分钟才能阅读完成。
前言
在安装后 Hadoop 之后,接下来需要安装的就是 Spark。
scala-2.11.7 下载与安装
具体步骤参见上一篇博文
Spark 下载
为了方便,我直接是进入到了 /usr/local 文件夹下面进行下载spark-2.2.0
wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz
Spark 安装之前的准备
文件的解压与改名
tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz
rm -rf spark-2.2.0-bin-hadoop2.7.tgz
为了我后面方便配置spark
,在这里我把文件夹的名字给改了
mv spark-2.2.0-bin-hadoop2.7 spark-2.2.0
配置环境变量
vi /etc/profile
在最尾巴加入
export SPARK_HOME=/usr/local/spark-2.2.0
export PATH=$PATH:$SPARK_HOME/bin
配置 Spark 环境
打开 spark-2.2.0
文件夹
cd spark-2.2.0
此处需要配置的文件为两个 spark-env.sh
和slaves
首先我们把缓存的文件 spark-env.sh.template
改为 spark
识别的文件spark-env.sh
cp conf/spark-env.sh.template conf /spark-env.sh
修改 spark-env.sh
文件
vi conf/spark-env.sh
在最尾巴加入
export JAVA_HOME=/usr/java/jdk1.8.0_141
export SCALA_HOME=/usr/scala-2.11.7
export HADOOP_HOME=/usr/local/hadoop-2.7.2
export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.2/etc/hadoop
export SPARK_MASTER_IP=SparkMaster
export SPARK_WORKER_MEMORY=4g
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1
变量说明
- JAVA_HOME:Java 安装目录
- SCALA_HOME:Scala 安装目录
- HADOOP_HOME:hadoop 安装目录
- HADOOP_CONF_DIR:hadoop 集群的配置文件的目录
- SPARK_MASTER_IP:spark 集群的 Master 节点的 ip 地址
- SPARK_WORKER_MEMORY:每个 worker 节点能够最大分配给 exectors 的内存大小
- SPARK_WORKER_CORES:每个 worker 节点所占有的 CPU 核数目
- SPARK_WORKER_INSTANCES:每台机器上开启的 worker 节点的数目
修改 slaves
文件
vi conf/slaves
在最后面修成为
SparkWorker1
SparkWorker2
同步 SparkWorker1
和SparkWorker2
的配置
在此我们使用 rsync
命令
rsync -av /usr/local/spark-2.2.0/ SparkWorker1:/usr/local/spark-2.2.0/
rsync -av /usr/local/spark-2.2.0/ SparkWorker2:/usr/local/spark-2.2.0/
启动 Spark
集群
因为我们只需要使用
hadoop
的HDFS
文件系统,所以我们并不用把hadoop
全部功能都启动。
启动 hadoop
的HDFS
文件系统
start-dfs.sh
但是在此会遇到一个情况,就是使用
start-dfs.sh
,启动之后,在SparkMaster
已经启动了namenode
,但在SparkWorker1
和SparkWorker2
都没有启动了datanode
,这里的原因是:datanode
的clusterID
和namenode
的clusterID
不匹配。是因为SparkMaster
多次使用了hadoop namenode -format
格式化了。
== 解决的办法:==
在 SparkMaster
使用
cat /usr/local/hadoop-2.7.2/hdfs/name/current/VERSION
查看clusterID
,并将其复制。
在 SparkWorker1
和SparkWorker2
上使用
vi /usr/local/hadoop-2.7.2/hdfs/name/current/VERSION
将里面的clusterID
,更改成为SparkMaster
VERSION 里面的clusterID
做了以上两步之后,便可重新使用 start-dfs.sh
开启 HDFS 文件系统。
启动之后使用 jps
命令可以查看到 SparkMaster
已经启动了 namenode
,SparkWorker1
和SparkWorker2
都启动了 datanode
,说明hadoop
的HDFS
文件系统已经启动了。
启动Spark
因为
hadoop/sbin
以及spark/sbin
均配置到了系统的环境中,它们同一个文件夹下存在同样的start-all.sh
文件。最好是打开spark-2.2.0
,在文件夹下面打开该文件。
./sbin/start-all.sh
成功打开之后使用 jps
在SparkMaster
、parkWorker1
和 SparkWorker2
节点上分别可以看到新开启的 Master
和Worker
进程。
成功打开 Spark
集群之后可以进入 Spark
的WebUI
界面,可以通过
SparkMaster_IP:8080
访问,可见有两个正在运行的 Worker 节点。
打开Spark-shell
使用
spark-shell
便可打开 Spark
的shell
同时,因为 shell
在运行,我们也可以通过
SparkMaster_IP:4040
访问 WebUI
查看当前执行的任务。
结言
到此我们的 Spark 集群就搭建完毕了。搭建 spark 集群原来知识网络是挺庞大的,涉及到 Linux 基本操作,设计到 ssh,设计到 hadoop、Scala 以及真正的 Spark。在此也遇到不少问题,通过翻阅书籍以及查看别人的 blog 得到了解决。在此感谢分享知识的人。
更多 Spark 相关教程见以下内容:
CentOS 7.0 下安装并配置 Spark http://www.linuxidc.com/Linux/2015-08/122284.htm
Spark1.0.0 部署指南 http://www.linuxidc.com/Linux/2014-07/104304.htm
Spark2.0 安装配置文档 http://www.linuxidc.com/Linux/2016-09/135352.htm
Spark 1.5、Hadoop 2.7 集群环境搭建 http://www.linuxidc.com/Linux/2016-09/135067.htm
Spark 官方文档 – 中文翻译 http://www.linuxidc.com/Linux/2016-04/130621.htm
CentOS 6.2(64 位)下安装 Spark0.8.0 详细记录 http://www.linuxidc.com/Linux/2014-06/102583.htm
Spark2.0.2 Hadoop2.6.4 全分布式配置详解 http://www.linuxidc.com/Linux/2016-11/137367.htm
Ubuntu 14.04 LTS 安装 Spark 1.6.0(伪分布式)http://www.linuxidc.com/Linux/2016-03/129068.htm
Spark 的详细介绍:请点这里
Spark 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146215.htm