前言
Scala函数式变成语言,Spark的开发语言。下面将记录Scala安装与Spark的集群安装。
准备安装文件
以下为大家准备了安装文件,也可以自己到网上下载
说明:spark的安装是有对应的hadoop版本的,所以如果安装的是2.6版本的hadoop,那么请去下载对应2.6版本的spark
下载地址:https://archive.apache.org/dist/spark/spark-2.0.2/
准备文件 | 下载地址 |
---|---|
spark-2.0.2-bin-hadoop2.7 | 链接: https://pan.baidu.com/s/1dlUjcLjemTcm7jnc0HDiwQ 提取码: typ4 |
scala-2.11.8 | 链接: https://pan.baidu.com/s/1dlUjcLjemTcm7jnc0HDiwQ 提取码: typ4 |
Hadoop 必须提前安装好 | 咱们安装的Spark依赖Yarn资源管理协调系统 |
Scala安装
上传Scala安装包至服务器master201
1 | [root@master201 Soft]# tar -xvf scala-2.11.8.tgz |
Spark安装
上传文件至服务器master201然后解压配置环境变量
1
2
3
4
5
6
7
8[root@master201 Soft]# tar -xvf spark-2.0.2-bin-hadoop2.7.tgz
然后配置环境变量:
[root@master201 Soft]# vim /etc/profile
增加以下配置:
export SPARK_HOME=/home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
然后source生效环境变量:
[root@master201 Soft]# source /etc/profile修改spark-env配置文件
1
2
3
4
5
6
7
8
9[root@master201 conf]# cd /home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7/conf
[root@master201 conf]# cp spark-env.sh.template spark-env.sh
编辑spark环境变量:
[root@master201 conf]# vi spark-evn.sh
增加以下配置:
export JAVA_HOME=/home/lishijia/Soft/jdk1.8.0_144
export SPARK_MASTER_HOST=master201
export SPARK_MASTER_PORT=7077配置slave从节点
1
2
3
4
5
6[root@master201 conf]# cd /home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7/conf
[root@master201 conf]# cp slaves.template slaves
[root@master201 conf]# vi slaves
增加以下slave节点
slave202
slave203scp分发包到从节点
1
2
3
4
5
6同步spark安装包
[root@master201 Soft]# scp -r spark-2.0.2-bin-hadoop2.7 slave202:/home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7
[root@master201 Soft]# scp -r spark-2.0.2-bin-hadoop2.7 slave203:/home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7
同步环境变量
[root@master201 Soft]# scp -r /etc/profile slave202:/etc/
[root@master201 Soft]# scp -r /etc/profile slave203:/etc/master201启动spark,验证
此处的启动时spark自身的一个集群
1
2
3
4
5
6
7
8
9
10
11
12[root@master201 sbin]# pwd
/home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7/sbin
[root@master201 sbin]# ./start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-master201.out
slave203: starting org.apache.spark.deploy.worker.Worker, logging to /home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave203.out
slave202: starting org.apache.spark.deploy.worker.Worker, logging to /home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave202.out
[root@master201 sbin]# jps
5027 Master
2710 ResourceManager
5112 Jps
2297 NameNode
2510 SecondaryNameNode访问spark管理控制台http://master201:8080/
两台slave会有这么一个Work进程
Spark本地模式与集群模式验证
依赖spark自带的example来验证以下方式
Spark本地模式
1
2
3
4
5[root@master201 bin]# cd /home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7/bin
[root@master201 bin]# ./run-example SparkPi 10 --master local[2]
验证结果如下,本次的任务执行在spark管理控制台是查看不到历史记录的
即:http://master201:8080/查看不到集群模式Spark Standalone
1
2
3
4
5[root@master201 bin]# cd /home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7/bin
[root@master201 bin]# ./spark-submit --class org.apache.spark.examples.SparkPi --master spark://master201:7077 ../examples/jars/spark-examples_2.11-2.0.2.jar 100
本次执行任务是在spark自带的集群当中运行即可通过spark的管理控制台查看job执行情况进度
即:http://master201:8080/ 如下集群模式Spark on yarn运行yarn之上的yarn-cluster模式
1
2
3
4
5
6
7
8[root@master201 bin]# cd /home/lishijia/Soft/spark-2.0.2-bin-hadoop2.7/bin
[root@master201 bin]# ./spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster ../examples/jars/spark-examples_2.11-2.0.2.jar 10
本次执行任务是在hadoop yarn当中
即通过http://master201:8080/查看任务执行情况是查询不到的,是通过yarn的 AM来执行调度申请资源
可以通过hadoop集群组件yarn的管理控制台查看:http://master201:8088/cluster/apps
通过Yarn管理控制台找到对应的Application id,然后进入点击日志,查看标准输出日志即可,这个demo的日志是通过标准输出方式输出的,在服务器执行控制台查看不到。
问题记录
刚刚通过yarn运行spark的任务的时候,失败了两次,一直在找原因(一直没注意看到错误信息在哪里)。大家可以看到对应的失败Application id 记录,然后进入日志查看(仔细看),最终发现还是自己输入命令的时候多了一个k导致数字转换失败了。
1 | 控制台的日志 |
总结
通过以上步骤基本完成了scala与spark集群的安装,下一步就可以开发spark应用程序了。