博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spark-2.2.0安装和部署——Spark集群学习日记
阅读量:4563 次
发布时间:2019-06-08

本文共 2776 字,大约阅读时间需要 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.0export PATH=$PATH:$SPARK_HOME/bin

1065122-20170724164726621-2100227672.png


配置Spark环境

打开spark-2.2.0文件夹

cd spark-2.2.0

此处需要配置的文件为两个

spark-env.shslaves

1065122-20170724164854199-1149115588.png

首先我们把缓存的文件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_141export SCALA_HOME=/usr/scala-2.11.7export HADOOP_HOME=/usr/local/hadoop-2.7.2export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.2/etc/hadoopexport SPARK_MASTER_IP=SparkMasterexport SPARK_WORKER_MEMORY=4gexport SPARK_WORKER_CORES=2export 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节点的数目

1065122-20170724164939653-169688374.png

修改slaves文件

vi conf/slaves

在最后面修成为

SparkWorker1SparkWorker2

1065122-20170724164950153-149085650.png

同步SparkWorker1SparkWorker2的配置

在此我们使用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集群

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

启动hadoopHDFS文件系统

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,并将其复制。

1065122-20170725105815250-1471088155.png

SparkWorker1SparkWorker2上使用

vi /usr/local/hadoop-2.7.2/hdfs/name/current/VERSION

将里面的clusterID,更改成为SparkMasterVERSION里面的clusterID

1065122-20170725105850171-433877671.png

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

1065122-20170724165131996-801421752.png

启动之后使用jps命令可以查看到SparkMaster已经启动了namenodeSparkWorker1SparkWorker2都启动了datanode,说明hadoopHDFS文件系统已经启动了。

1065122-20170724165026903-1144053977.png

1065122-20170724165045309-1472124835.png

1065122-20170724165050074-1445316244.png

启动Spark

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

./sbin/start-all.sh

1065122-20170724165146528-1761658669.png

成功打开之后使用jpsSparkMasterparkWorker1SparkWorker2节点上分别可以看到新开启的MasterWorker进程。

1065122-20170724165157949-1647866409.png

1065122-20170724165205278-1728801424.png

1065122-20170724165208746-1806211323.png

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

SparkMaster_IP:8080

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

1065122-20170724165231715-852603101.png

打开Spark-shell

使用

spark-shell

1065122-20170724165252543-1585791930.png

便可打开Sparkshell

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

SparkMaster_IP:4040

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

1065122-20170724165301778-1158616593.png


结言

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

参见 王家林/王雁军/王家虎的《Spark 核心源码分析与开发实战》

文章出自,转载请标明出处!

转载于:https://www.cnblogs.com/kwongtai/p/7229825.html

你可能感兴趣的文章
实用类-<Math类常用>
查看>>
构建之法阅读笔记之四
查看>>
10.15习题2
查看>>
Windows Server 2008 R2 备份与恢复详细实例
查看>>
Ubuntu上kubeadm安装Kubernetes集群
查看>>
关于java学习中的一些易错点(基础篇)
查看>>
MFC的多国语言界面的实现
查看>>
四则运算个人项目 最终版
查看>>
java线程系列---java5中的线程池
查看>>
SQL表连接
查看>>
新秀系列C/C++经典问题(四)
查看>>
memset函数具体说明
查看>>
经常使用的android弹出对话框
查看>>
确保新站自身站点设计的合理性的六大注意点
查看>>
promise
查看>>
Go 网络编程笔记
查看>>
[]Java面试题123道
查看>>
中间件与auth认证的那点儿所以然
查看>>
Scala
查看>>
Android 中LinearLayout控件属性
查看>>