Spark-2.2.0安装和部署详解


来自: https://www.shixinwl.com/article/130

一、前言

在安装Hadoop之后,接下来需要安装的就是Spark。

二、scala-2.11.7下载与安装

2.1 scala-2.11.7下载

为了方便,我现在我的SparkMaster主机上先安装,把目录打开到/usr目录下,与我的Java目录相一致。
wget https://downloads.lightbend.com/scala/2.11.7/scala-2.11.7.tgz

2.2下载之后解压

tar -zxvf scala-2.11.7.tgz

2.3解压之后删除源文件

rm -rf scala-2.11.7.tgz

2.4配置环境

在此需要打开/etc/profile文件进行配置
vi /etc/profile
在文件的最后插入
export SCALA_HOME=/usr/scala-2.11.7
export PATH=$PATH:$SCALA_HOME/bin
插入了之后要使得命令生效,需要的是:
source /etc/profile

2.5检测是否安装成功

scala -version

2.6配置其他Slave主机也安装scala

在此我选择在SparkMaster上使用rsync命令将/usr/scala-2.11.7/目录复制到其他SparkWorker上,另外/etc/profile文件也同样。
rsync -av /usr/scala-2.11.7/ SparkWorker1:/usr/scala-2.11.7/
rsync -av /usr/scala-2.11.7/ SparkWorker2:/usr/scala-2.11.7/

三、Spark下载及安装

3.1 下载

为了方便,我直接是进入到了/usr/local文件夹下面进行下载spark-2.2.0
wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.6.tgz

3.2 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

3.3配置环境变量

vi /etc/profile
在最尾巴加入
export SPARK_HOME=/usr/local/spark-2.2.0
export PATH=$PATH:$SPARK_HOME/bin

3.4配置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

3.4.1修改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节点的数目

3.4.2修改slaves文件

vi conf/slaves
在最后面修成为
SparkWorker1
SparkWorker2

3.5同步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/

3.6启动Spark集群

因为我们只需要使用hadoopHDFS文件系统,所以我们并不用把hadoop全部功能都启动。

3.6.1启动hadoop的HDFS文件系统

start-dfs.sh
但是在此会遇到一个情况,就是使用start-dfs.sh,启动之后,在SparkMaster已经启动了namenode,但在SparkWorker1SparkWorker2都没有启动了datanode,这里的原因是:datanodeclusterIDnamenodeclusterID不匹配。是因为SparkMaster多次使用了hadoop namenode -format格式化了。
解决的办法:
SparkMaster使用
cat /usr/local/hadoop-2.7.2/hdfs/name/current/VERSION
查看clusterID,并将其复制。
SparkWorker1SparkWorker2上使用
vi /usr/local/hadoop-2.7.2/hdfs/name/current/VERSION
将里面的clusterID,更改成为SparkMasterVERSION里面的clusterID
做了以上两步之后,便可重新使用start-dfs.sh开启HDFS文件系统。
启动之后使用jps命令可以查看到SparkMaster已经启动了namenodeSparkWorker1SparkWorker2都启动了datanode,说明hadoopHDFS文件系统已经启动了。

3.6.2启动Spark

因为hadoop/sbin以及spark/sbin均配置到了系统的环境中,它们同一个文件夹下存在同样的start-all.sh文件。最好是打开spark-2.2.0,在文件夹下面打开该文件./sbin/start-all.sh
成功打开之后使用jpsSparkMasterparkWorker1SparkWorker2节点上分别可以看到新开启的MasterWorker进程。
成功打开Spark集群之后可以进入SparkWebUI界面,可以通过
SparkMaster_IP:8080
访问,可见有两个正在运行的Worker节点。

3.6.3打开Spark-shell

使用
spark-shell
便可打开Sparkshell
同时,因为shell在运行,我们也可以通过
SparkMaster_IP:4040
访问WebUI查看当前执行的任务。

四、结言

到此我们的Spark集群就搭建完毕了。搭建spark集群原来知识网络是挺庞大的,涉及到Linux基本操作,涉及到ssh,涉及到hadoopScala以及真正的Spark。在此也遇到不少问题,通过翻阅书籍以及查看别人的blog得到了解决。在此感谢分享知识的人。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值