Flink初识

Flink是什么?

Flink是一个以Java及Scala作为开发语言的开源大数据项目,代码开源在github上,并使用 maven来编译和构建项目。其核心是用JavaScala编写的分布式流数据流引擎。Flink以数据并行流水线方式执行任意流数据程序。一句话总结是一个流式计算的maven工程。

开发环境准备?

1 java环境: jdk 环境变量  2 maven环境 3 编辑器 idea or eclipse

基础的API ?

引用官方图片

如何构建自己的第一个flink项目?

1) flink官网上有wordCount的例子可以自己下

2) 自己搭建 先搭建一个maven项目;  

大体流程:ExecutionEnvironment (环境) ->DataStream or DataSet(接收流) -> fliter(过滤)->map(数据结构转换)---->keyBy(分流)--->window or process(业务代码)--->sink(输出)

注意:env.execute() 不能忘记,类似于线程的start

 

  2.1) maven依赖引入

<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.11</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_2.11</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-core</artifactId>
<version>${flink.version}</version>
</dependency>

2.2)写自己的程序主类,并添加main方法



2.3)按flink套路来
准备环境:

ParameterTool params = ParameterTool.fromArgs(args);
//环境
ExecutionEnvironment env = ExecutionEnvironment
.getExecutionEnvironment();
env.getConfig().setGlobalJobParameters(params);

准备环境(读哪里的数据? file kafka ???、):
读取数据flink提供了jar包如下
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-kafka-0.11_2.11</artifactId>
<version>${flink.version}</version>
<scope> compile</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-filesystem_2.11</artifactId>
<version>${flink.version}</version>
</dependency>

接收数据(DataStream or DataSet 有界(固定大小)和无界(一直在增加或者写入)):
代码:kafka


file:


输出: print



addSink:

 

 

 

 

 

 

 
 


 

 

 

 

posted on 2019-07-18 10:46  爱老虎哟  阅读(408)  评论(0编辑  收藏  举报

导航