第一章 spark-2.2.0安装和部署

19 篇文章 0 订阅

scala-2.11.7下载与安装
Spark下载
为了方便,我直接是进入到了/usr/local文件夹下面进行下载spark-2.2.0
wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz1

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

在最尾巴加入

SCALA_HOME=/home/hadoop/scala-2.11.12

SPARK_HOME=/home/hadoop/spark-2.2.0

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/etc/hadoop:$HIVE_HOME/bin:$HBASE_HOME/bin:$ZOOKER_HOME/bin:/usr/local/mysql/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
export JAVA_HOME JRE_HOME CLASS_PATH HADOOP_HOME SPARK_HOME SCALA_HOME PATH

配置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_144
export SCALA_HOME=/home/hadoop/scala-2.11.12
export HADOOP_HOME=/home/hadoop/hadoop-2.9.0
export HADOOP_CONF_DIR=/home/hadoop/hadoop-2.9.0/etc/hadoop
export SPARK_MASTER_IP=master
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
在最后面修成为
slavea
slaveb

同步slavea和slaveb的配置

将spark和scala目录同步到slavea和slaveb

启动Spark集群

因为我们只需要使用hadoop的HDFS文件系统,所以我们并不用把hadoop全部功能都启动。
启动hadoop的HDFS文件系统
start-dfs.sh

但是在此会遇到一个情况,就是使用start-dfs.sh,启动之后,在SparkMaster已经启动了namenode,但在slavea和slaveb都没有启动了datanode,这里的原因是:datanode的clusterID和namenode的clusterID不匹配。是因为SparkMaster多次使用了hadoop namenode -format格式化了。

==解决的办法:==
在master使用
cat /home/hadoop/hadoop-2.9.0/hdfs/name/current/VERSION
查看clusterID,并将其复制。
在slavea和slaveb上使用
vi /home/hadoop/hadoop-2.9.0/hdfs/name/current/VERSION1
将里面的clusterID,更改成为SparkMasterVERSION里面的clusterID

做了以上两步之后,便可重新使用start-dfs.sh开启HDFS文件系统。

启动之后使用jps命令可以查看到SparkMaster已经启动了namenode,slavea和slaveb都启动了datanode,说明hadoop的HDFS文件系统已经启动了。

启动Spark

因为hadoop/sbin以及spark/sbin均配置到了系统的环境中,它们同一个文件夹下存在同样的start-all.sh文件。最好是打开spark-2.2.0,在文件夹下面打开该文件。

./sbin/start-all.sh

成功打开之后使用jps在master、slavea和slaveb节点上分别可以看到新开启的Master和Worker进程。

成功打开Spark集群之后可以进入Spark的WebUI界面,可以通过

master:8080

访问,可见有两个正在运行的Worker节点。

打开Spark-shell
使用
spark-shell

便可打开Spark的shell

同时,因为shell在运行,我们也可以通过
SparkMaster_IP:4040

访问WebUI查看当前执行的任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值