您的位置:首页 > 其它

spark-2.2.0安装和部署——Spark集群学习日记

2017-07-24 16:55 387 查看

前言


在安装后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[/code] 

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 核心源码分析与开发实战》


文章出自kwongtai'blog,转载请标明出处!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: