Spark运行环境
Spark 作为一个数据处理框架和计算引擎,被设计在所有常见的集群环境中运行, 在国内工作中主流的环境为 Yarn,不过逐渐容器式环境也慢慢流行起来。下面我们简单介绍一下几种运行环境
1.Local环境
local 本地模式是用来进行练习和演示的,不需
要其他任何节点资源就可以在本地执行 Spark 代码的环境
2.Standalone 模式
local 本地模式毕竟只是用来进行练习演示的,真实工作中还是要将应用提交到对应的集群中去执行,这里我们来看看只使用 Spark 自身节点运行的集群模式,也就是我们所谓的
独立部署(Standalone)模式。Spark 的 Standalone 模式体现了经典的 master-slave 模式。
3 Yarn环境
独立部署(Standalone)模式由 Spark 自身提供计算资源,无需其他框架提供资源。这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是你也要记住,Spark 主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以还是和其他专业的资源调度框架集成会更靠谱一些。所以接下来我们来学习在强大的 Yarn 环境下 Spark 是如何工作的(其实是因为在国内工作中,Yarn 使用的非常多)。
4 K8S & Mesos 模式
Mesos 是 Apache 下的开源分布式资源管理框架,它被称为是分布式系统的内核,在Twitter 得到广泛使用,管理着 Twitter 超过 30,0000 台服务器上的应用部署,但是在国内,依
然使用着传统的 Hadoop 大数据框架,所以国内使用 Mesos 框架的并不多,但是原理其实都差不多,这里我们就不做过多讲解了。
容器化部署是目前业界很流行的一项技术,基于 Docker 镜像运行能够让用户更加方便地对应用进行管理和运维。容器管理工具中最为流行的就是 Kubernetes(k8s),而 Spark
也在最近的版本中支持了 k8s 部署模式。这里我们也不做过多的讲解。给个链接大家自己感受一下:https://spark.apache.org/docs/latest/running-on-kubernetes.html
5.Windows模式
为了以后学习方便,我们主要使用windows环境
5.1将spark压缩包解压到合法无中文的路径中
5.2运行Bin目录下spark-shell.cmd文件,启动spark
当看到如下内容时,说明启动成功了
这时我们可以在命令行直接使用scala编程
以后我们会把编写号的程序打成jar包,在bin目录下以命令行的方式执行
spark-submit
–class org.apache.spark.examples.SparkPi 这是程序的主类
–master local[2] 运行的方式,local表示本地,2表示申请的cpu核心数为2
…/examples/jars/spark-examples_2.12-3.0.0.jar 10 我们的jar包