在分布式计算框架中,需要处理分散在多台机器上的海量数据,对于大数据开发人员面临最大的挑战就是代码的编写、部署、调度、容错等。Flink在实时计算方面,提供流一个抽象的集即DataStream,开发者只要调用统一的编程API,传入具体的计算逻辑,不必太多关心底层的细节,就可以完成各种复杂的计算了,并且可以实现快速部署、资源调度、任务容错等,大大的提高了开发效率。
在开发Flink实时计算程序,首先学要创建StreamExecutionEnvironment,然后调用相应的Source算子创建原始的DataStream,然后调用零到多次Transformation(转换算子),每调用一次Transformation都会生成一个新的DataStream,最后调用Sink,我们写的程序就形成一个Data Flow Graph(数据流图),然后提交给JobManager,经过优化后生成包含有具体计算逻辑的Task实例,然后调度到TaskManager的slot中开始计算。这个过程非常复杂,具体详细的细节,在后面的源码分析部分在详细讲解!
下面我们来编写第一个Flink程序,实现简单的计算逻辑,就是通过fromCollection这个Source模拟数据,然后将每一个数字乘以10(本次的重点就是这个map算子),最后使用print sink打印。
public
具体的动画演示如下:
如果想深入学习,请关注我的flink源码分析教程!