Step 1 下载 Binary包,本地启动Shell获得初步体验
Follow官方文档:https://spark.apache.org/docs/latest/quick-start.html#where-to-go-from-here
Step 2 编写程序并打包,submit 到 local运行
同上,Follow官方文档即可。
Step 3 部署 Standalone Spark
使用 docker-compose启动。步骤:
git clone https://github.com/big-data-europe/docker-spark.git
cd docker-spark
docker-compose up
Step 4 submit到 standalone Spark运行
注意:样例代码是读取文件,因此当在worker上运行的时候,文件必须也在worker上,同时打的jar包也必须在worker上。这个可以将 worker的volume和本地的共享来完成。
参考命令行:./spark-submit --class "SimpleApp" --master spark://spark-master:7077 --deploy-mode cluster /Users/xxx/IdeaProjects/spark-helloworld/target/spark-helloworld-1.0-SNAPSHOT.jar
避坑指南 & 参考
Spark的运行时架构:https://spark.apache.org/docs/latest/cluster-overview.html
其中 ClusterManager既可以是Yarn,也可以是Mensos,在Standalone模式下(也就是不依赖任何资源调度服务服务直接启动Spark master和slave的部署方式),ClusterManager就是Spark-Master本身。
Master启动后,在8080端口有Web UI,可以看到所有的workers,可以看到Running Drivers & Applications,Completed Drivers & Applications,Slave启动后也有Web UI在8081端口。Master上有链接可以看到每个application的stdout和stderr。
如果submit的时候 deploy-mode不指定或者指定为client,意味着driver程序在本地运行,指定为 cluster,就会在worker节点上启动 driver程序。只有使用 cluster deployment mode部署的程序,才能在spark-master上看到driver,否则只能看到application。
关于如何submit application:https://spark.apache.org/docs/latest/submitting-applications.html