1.jdk
2.ScalaSDK只需要在windows安装即可
3.Spark安装包
http://spark.apache.org/downloads.html
直接使用资料中的spark-2.4.6-bin-hadoop2.7.tgz
2.2原理
在本地使用多线程模拟Spark集群的各个角色
2.3操作
1.上传解压安装包
上传Spark压缩包到/home/hadoop目录
spark-2.4.6-bin-hadoop2.7.tgz
解压缩Spark到/usr/local目录,并重命名为spark,使用以下命令:
sudo tar -xvf spark-2.4.6-bin-hadoop2.7.tgz -C /usr/local
sudo mv /usr/local/spark-2.4.6-bin-hadoop2.7/ /usr/local/spark
2.授权当前用户hadoop拥有spark目录的所有者权限,使用以下命令:
sudo chown -R hadoop /usr/local/spark
3.改名
把spark-2.4.6-bin-hadoop2.7.tgz改为spark
- 编辑环境变量,使用以下命令:
vim /home/hadoop/.bashrc
5.查看目录结构:其中各个目录含义如下:
bin
可执行脚本
conf
配置文件
data
示例程序使用数据
examples 示例程序
jars
依赖jar包
python pythonAPI
sbin
集群管理命令
yarn
整合yarn需要的东西
2.4测试
2.3.2 以Local模式运行程序
执行Spark程序需要使用spark-submit脚本,它的一些常用选项如下表所示:
表2-2 spark-submit脚本的常用选项
选项 | 描述 |
--master | MASTER环境变量,决定程序的执行模式,默认是local |
--deploy-mode | 设置主程序的启动位置,cluster(集群)或者client(本地,默认的) |
--class | 程序的入口类 |
--name | 程序的名字 |
--num-executors | 执行器个数,仅在Yarn模式下使用 |
--executor-cores | 为每个执行器分配的CPU核心数,仅在Standalone或Yarn模式下使用 |
--total-executor-cores | 为所有执行器分配的总CPU核心数,仅在Standalone或Mesos模式下使用 |
--executor-memory | 为每个执行器分配的内存大小,默认是1G |
application-jar | 程序文件 |
application-arguments | 程序参数 |
Spark内置了许多演示程序,现在我们就以SparkPi(圆周率估算)程序为例,来说明如何以Local模型运行程序。执行以下命令:
spark-submit /usr/local/spark/examples/src/main/python/pi.py 10
你会在一大堆的日志信息的最后几行中,找到计算出的圆周率,如下图所示:
图2-4 SparkPi程序运行结果
图2-4 SparkPi程序运行结果
需要注意的计算出的圆周率是一个近似值,多次执行得到的结果可能不一致。命令中最后一个数字10决定了算法的迭代次数,数字越大,迭代次数越多,得到结果越准确。
在这个命令中/usr/local/spark/examples/src/main/python/pi.py是application-jar,即我们的程序文件。数字10是application-arguments,即我们的程序参数。
在这个命令中我们没有设置--master,那么默认就是以Local模式运行。如果我们想对Local模式进行更进一步的配置,比如使用5个线程运行SparkPi程序,可以使用以下命令:
spark-submit --master local[5] /usr/local/spark/examples/src/main/python/pi.py 1