spark 内核
太久没写博客了,一直以来喜欢写在自己有道云笔记了。最近准备将笔记搬到博客上。
- 一.spark 任务执行过程的大致流程图:
系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目录
二、详细步骤说明
1,客户端和Master建立链接并且申请资源,每个executor需要4g内存,总共需要12核
2,master进行资源调度(节点向master注册的时候,会将自己的资源情况一并提交给master)
3,master和worker进行RPC通信,启动executor
4,启动各个worker节点上的executor
5,executor和Driver端进行通信
6,RDD触发Action后,会根据最后这个RDD往前推断依赖关系(宽依赖或者窄依赖),遇到Shuffle就切分Stage,会递归切分,递归的出口是RDD没有父RDD
7,DAGScheduler切分完Stage后,会进行提交Stage,先提交前面的Stage,前面的Stage执行完之后再提交后面的Stage,每一个stage都会产生很多业务逻辑相同的Task,然后以TaskSet的形式将task传递给TaskScheduler,然后TaskScheduler将Task进行序列化,根据资源情况,将task发送给Executor
8,将Driver端产生的task发送给executor
9,executor在接收到task之后,先将task进行反序列化,然后将task用一个实现了runnable接口的实现类包装起来,然后将该包装类丢入线程池,包装类实现的run方法就会被执行,进而调用task的计算逻辑。
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。