ITPub博客

首页 > > > flink DataStream API使用及原理-1

flink DataStream API使用及原理-1

作者:longmanma 时间:2019-12-18 18:01:26 0 删除 编辑

传统的大数据处理方式一般是批处理式的,也就是说,今天所收集的数据,我们明天再把今天收集到的数据算出来,以供大家使用,但是在很多情况下,数据的时效性对于业务的成败是非常关键的。

Spark 和 Flink 都是通用的开源大规模处理引擎,目标是在一个系统中支持所有的数据处理以带来效能的提升。两者都有相对比较成熟的生态系统。是下一代大数据引擎最有力的竞争者。

Spark 的生态总体更完善一些,在机器学习的集成和易用性上暂时领先。

Flink 在流计算上有明显优势,核心架构和模型也更透彻和灵活一些。

本文主要通过实例来分析flink的流式处理过程,并通过源码的方式来介绍流式处理的内部机制。

DataStream整体概述

主要分5部分,下面我们来分别介绍:

 1.运行环境StreamExecutionEnvironment

StreamExecutionEnvironment是个抽象类,是流式处理的容器,实现类有两个,分别是

LocalStreamEnvironment:

RemoteStreamEnvironment:

/** * The StreamExecutionEnvironment is the context in which a streaming program is executed. A

* {@link LocalStreamEnvironment} will cause execution in the current JVM, a

* {@link RemoteStreamEnvironment} will cause execution on a remote setup.

*

* <p>The environment provides methods to control the job execution (such as setting the parallelism

* or the fault tolerance/checkpointing parameters) and to interact with the outside world (data access).

*

* @see org.apache.flink.streaming.api.environment.LocalStreamEnvironment

* @see org.apache.flink.streaming.api.environment.RemoteStreamEnvironment

*/

2.数据源DataSource数据输入

包含了输入格式InputFormat

/** * Creates a new data source.

*

* @param context The environment in which the data source gets executed.

* @param inputFormat The input format that the data source executes.

* @param type The type of the elements produced by this input format.

*/publicDataSource(ExecutionEnvironment context, InputFormat inputFormat, TypeInformation type, String dataSourceLocationName) {

super(context, type);

this.dataSourceLocationName = dataSourceLocationName;

if(inputFormat ==null) {

thrownewIllegalArgumentException("The input format may not be null.");

}

this.inputFormat = inputFormat;

if(inputFormatinstanceof NonParallelInput) {

this.parallelism = 1;

}

}

 flink将数据源主要分为内置数据源和第三方数据源,内置数据源有 文件,网络socket端口及集合类型数据;第三方数据源实用Connector的方式来连接如kafka Connector,es connector等,自己定义的话,可以实现SourceFunction,封装成Connector来做。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2730/viewspace-3150716/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Hadoop机架感知
请登录后发表评论 登录
全部评论

注册时间:2019-12-18

  • 博文量
    492
  • 访问量
    11999