三,flink——DataStreamAPI原理以及用法

  

一、DataStream数据基本概述

  

1.1 datastream数据是什么?

  

datastream数据是flink提供给用户使用的用于进行流计算和批处理的api,是对底层流式计算模型的api封装,便于用户编程。

  

1.2 datastream运行模型

  

一个完整的数据流运行模型一般由三部分组成,分别为源、转换、Sink.DataSource主要负责数据的读取(也就是从数据源读取,可以批数据源,也可以是流式数据数据源),转换主要负责对属于的转换操作(也就是正常的业务处逻辑),沉负责最终数据的输出(计算结果的导出)。

  

1.3 datastream数据程序架构

  

一般来说,使用datastream数据api编写flink程序,包括以下流程:
1,获得一个执行环境;(执行环境)
2,加载/创建初始数据;(源)
3,指定转换这些数据;(转换)
4,指定放置计算结果的位置;(下沉)
5,触发程序执行(这是流式计算必须的操作,如果是批处理则不需要)

  

二,DataStream数据api的使用

  

2.1 maven依赖配置

  
 <代码> & lt; ?xml version=" 1.0 " encoding=" utf - 8 " ?比;
  & lt;项目xmlns=" http://maven.apache.org/POM/4.0.0 "
  xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance "
  xsi: schemaLocation=" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”比;
  & lt; modelVersion> 4.0.0
  
  & lt; groupId> SparkDemo
  & lt; artifactId> SparkDemoTest
  & lt; version> 1.0 -snapshot
  
  & lt; properties>
  & lt; project.build.sourceEncoding> UTF-8
  
  & lt; scala.version> 2.11.8
  & lt; hadoop.version> 2.7.3
  & lt; scala.binary.version> 2.11 & lt;/scala.binary.version>
  & lt; flink.version> 1.6.1
  
  & lt;/properties>
  
  & lt; dependencies>
  
  & lt; dependency>
  & lt; groupId> org.apache.hadoop
  & lt; artifactId> hadoop-client
  & lt; version> $ {hadoop.version} & lt;/version>
  & lt;/dependency>
  
  & lt; dependency>
  & lt; groupId> mysql
  & lt; artifactId> mysql-connector-java
  & lt; version> 8.0.12
  & lt;/dependency>
  & lt; dependency>
  & lt; groupId> junit
  & lt; artifactId> junit
  & lt; version> 4.12 & lt;/version>
  & lt;/dependency>
  
  & lt; dependency>
  & lt; groupId> org.apache.logging.log4j
  & lt; artifactId> log4j-core
  & lt; version> 2.9.0
  & lt;/dependency>
  
  & lt; !——flink祝辞
  & lt; !——https://mvnrepository.com/artifact/org.apache.flink/flink-java——比;
  & lt; dependency>
  & lt; groupId> org.apache.flink
  & lt; artifactId> flink-java
  & lt; version> 1.6.1
  & lt;/dependency>
  
  & lt; !——https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-java——比;
  & lt; dependency>
  & lt; groupId> org.apache.flink
  & lt; artifactId> flink-streaming-java_2.11
  & lt; version> 1.6.1
  & lt; !——& lt; scope> provided——比;
  & lt;/dependency>
  
  & lt; !——https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-scala——比;
  & lt; dependency>
  & lt; groupId> org.apache.flink
  & lt; artifactId> flink-streaming-scala_2.11
  & lt; version> 1.6.1
  & lt;/dependency>
  
  & lt; !——https://mvnrepository.com/artifact/org.apache.flink/flink-scala——比;
  & lt; dependency>
  & lt; groupId> org.apache.flink
  & lt; artifactId> flink-scala_2.11
  & lt; version> 1.6.1
  & lt;/dependency>
  
  & lt; !——https://mvnrepository.com/artifact/org.apache.flink/flink-clients——比;
  & lt; dependency>
  & lt; groupId> org.apache.flink
  & lt; artifactId> flink-clients_2.11
  & lt; version> 1.6.1
  & lt;/dependency>
  
  & lt; !——https://mvnrepository.com/artifact/org.apache.flink/flink-table——比;
  & lt; dependency>
  & lt; groupId> org.apache.flink
  & lt; artifactId> flink-table_2.11
  & lt; version> 1.6.1
  & lt; scope> provided
  & lt;/dependency>
  
  & lt; dependency>
  & lt; groupId> org.apache.hadoop
  & lt; artifactId> hadoop-client

三,flink——DataStreamAPI原理以及用法