关于spark-①

spark概念: spark是统一的分布式大数据分析引擎,spark能够适应多种计算场景,spark能够分析数据,但是没有存储。一般线上的spark数据来源(HDFS,hive,kafka,flume,日志文件,关系型数据库,nosql数据库)。spark出口(hdfs,hive,redise,关系型数据库,nosql数据库)。spark一般情况是以集群模式存在,架构:master/slaver(主从结构)

学习spark的理由: Spark是一个开源的类似于Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Spark中的Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足。

spark应用程序的运行模式: spark应用程序想要运行需要资源(CPU和内存 网络资源)。spark支持多种获取资源的方式。spark根据获取资源的方式不同,具备不同的运行模式。

spark中的重要角色: spark是基于内存计算的大数据并行计算框架,因为其基于内存计算,比hadoop中的mapreduce计算框架具有更高的实时性,同时保证了高校容错性和可伸缩性。
spark架构使用了分布式计算中的master-slave模型,master是集群中含有master进程的结点,slave是集群中含有worker进程的结点。
· Driver Program : 运行main函数并且新建sparkcontest的程序
· Applocation : 基于spark的应用程序,包含了driver程序和集群上的executor
· Cluster Manager :指的是在集群上获取资源的外部服务,目前有三中类型
(1)standalone:spark原生的资源管理,由master负责资源的分配
(2)Apache Mesos : 与hadoop MR兼容性良好的一种资源调度的框架
(3) Hadoop yarn:主要是指yarn中的resourcemanager
· Worker Node : 集群中可以运行APPlocation代码的节点,早standalone模式中指的是通过slaves文件配置的work节点,在spark onyarn模式下就是nodemanager节点
· executor;是在一个worker node上为某个应用启动的一个进程,该进程负责运行任务,并且负责将数据存在内存或者磁盘上,每个应用都有各自独立的executor
· task:被送到某个executor上的工作单元

在这里插入图片描述
· 按照提供资源分配
ClusterManger:集群资源管理器,会接受SparkContext发送来指令(申请资源),然后向workerNode节点发送指令分配资源
standalone模式: spark的master节点
yarn模式:ResourceManage
· WorkerNode:提供Spark应用程序运行时所需要的资源 (CPU和内存)。Workernode 在接受到clusterManger的指令后,会汇报worker的信息。
以上节点完成了Spark应用程序运行时所需要的资源
资源分配方式:
·静态分配:一次性费配资源,在整个spark应用程序运行过程中,不会再次分配资源
· standalone:属于静态分配
· 动态分配:在整个spark应用程序运行过程中,需要多少给多少,需要多次分配资源,一旦资源使用完成,会进行回收,再次需要的时候会再次申请资源
· yarn:动态分配
· 按照程序运行的方式分配
· Driver Programe: main +sparkcontext。 一般运行在Diver节点(可以是一台机器)
· Driver节点可有与spark 集群分离。一般情况下Driver节点其实就是Spark集群中的某台机器。这样做是为了节省网络资源。因为在这个Spark应用程序运行过程中,会不断与Spark集群进行信息传递。
· Spark-submit 把程序提交到yarn集群,yarn会根据集群资源状况,分配一个driver,然后spark程序会将jar上传到yarn,通过yarn去执行。
· standalone:master节点就可以作为driver节点
· Sparkcontext:是spark程序的入口对象。并且还是Spark应用程序的核心调度对象。在SparkContext对象初始化过程中,初始化了三个重要调度对象:高层调度器 DAGScheduler 底层调度 TaskScheduler SchedulerBackend 负责通信
· Executor:运行在worker节点的一个进程。在Eecutor进程中,启动线程池运行Task。通过线程并发执行和以及线程复用的形式执行Task
· Task:是数据处理任务最小单元,整个Spark应用程序最终会被划分成不同的Task,去运行处理数据。
· cache:缓存,主要缓存RDD中数据的, 可以缓存到内存也可以缓存到磁盘,还可以缓存HDFS之上。
以上角色 就完成了整个Spark Job的调度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值