1.简介
Spark是一个基于mapreduce核心完成的,具有mapreduce的所有优点,同时是内存计算框架。
2.Spark的特性
2.1高效
相对于mapreduce,速度提高100倍
spark高效的原因:
1.spark将job过程中和结果可存放在内存中,避免了mapreduce的磁盘IO的方式,节省很多时间。
2.spark的n个task是开启1个进程,n个线程;mapreduce是n个进程,spark使用资源更少。
2.2易用性
支持java python scala R SQL等
2.3通用性
1568600640821.pngspark相当于一个生态,sparksql 用sql来做离线计算,sparkStreaming实时计算,MLlib机器学习算法库,GraphX图计算。
2.4兼容性
1568600737885.png提供standalone yarn mesos 方式启动,同时支持 Hadoop K8s等。
3.Spark简易架构
spark.png3.1 Driver
包含SparkContext(简称sc)是Spark程序的入口,每一个main函数都包含一个sc。Application在Program中,是应用代码。
3.2 Cluster Manager --计算资源管理服务
Spark包括三种资源管理方式
1.standAlone Spark自带资源管理方式,Master管理资源
2.yarn yarn的ResourceManager管理资源
4.mesos 类似yarn的资源调度框架
3.3 Master
Spark主节点,管理资源分配
3.4 Worker
Spark的计算节点
3.5 Executor
Spark的每一个任务中的开启一个进程,executor就是这个进程,管理整个任务的资源
3.6 Task
executor中包含很多线程级别的task,进行计算
4.Spark的启动与停止
Spark是一般使用HA高可用架构,与Zookeeper结合使用。
4.1启动及高可用启动
&Spark_HOME/sbin/start-all.sh
//执行此脚本的节点为主节点
注意:一般有3+台服务器节点安装saprk,在哪台服务器上启动此脚本,哪个节点就是master,其余的是从节点。
&Spark_HOME/sbin/start-master.sh
//目的是为了保持高可用
在另外一个节点启动start-master.sh,使此节点作为备份master,为standBy状态的master。
可启动多个从节点为备用standBy,如果master挂掉,备份master通过ZK机制选新的master。
4.2停止
在主节点
$SPARK_HOME/sbin/stop-all.sh
备份master节点
$SPARK_HOME/sbin/stop-master.sh
4.3如果某个master挂掉的2个问题
(1)如果主节点master挂掉,standBy的master节点如何恢复到原来主节点master?
通过Zookeeper的节点信息中,保存Spark的元数据信息,新的master从Zookeeper中恢复。
(2)在master挂掉,到新master恢复期间
已提交,申请到资源的任务会继续进行。
未提交,没有申请到资源的服务,不能提供服务。
5. Spark 集群的WEB-UI管理页面
1568606077627.png包含的信息1.地址2.Workd数3.整个集群核心数4.整个集群内存及使用情况5.Application应用的使用情况,6.Drivers任务个数,包括正在运行和已经完成。
网友评论