首先我们来看这个过程,可以看到
1.比如我们写了一段代码,有可能用java写的,有可能用scala写的,这个代码,首先会生成一个数据流图,然后这个数据流图可以通过客户端client
2.提交给jobmanager对吧,这个提交可以是通过flink的web后端提交的,也可以其他方式提交的,
当然客户端还可以取消已经提交某个数据流图对吧,这个可以通过给jobmanager发消息实现.
3.然后jobmanager收到任务的数据流图以后,给client返回,状态以及结果
4.然后jobmanager会根据taskmanager注册的slot的个数情况,可以发送任务到taskmanager,然后
去运行对应的任务对吧.当然jobmanager还可以发送比如恢复检查点等信息给taskmanager
5.然后taskmanager就启动多个slot来并行处理任务,一个taskmanager节点处理完以后,数据
还可以流向另一个taskmanager节点.
其实flink学习中,要考虑的就是,1如何实现并行计算..可以看到就是taskmanager中有多个slot,
多个slot同时进行处理一个任务可以实现并行计算
2.然后并行的任务,需要占用多少个slot啊?这个需要提前计算好对吧.
3.然后最后一个,一个流处理程序,到底包含多少个任务,这个也是需要我们考虑的.