一.简介
Flink中的DataStream程序是常规程序,可对数据流实施转换(例如,过滤,更新状态,定义窗口,聚合)。最初从各种来源(例如,消息队列,套接字流,文件)创建数据流。结果通过接收器返回,接收器可以例如将数据写入文件或标准输出(例如命令行终端)。Flink程序可以在各种上下文中运行,独立运行或嵌入其他程序中。执行可以在本地JVM或许多计算机的群集中进行。
二.代码案例
以下程序是流式窗口单词计数应用程序的一个完整的工作示例,该应用程序在5秒的窗口中对来自Socket套接字的单词进行计数。
package cn.socket
import org.apache.flink.streaming.api.scala._
import org.apache.flink.streaming.api.windowing.time.Time
// 数据类型异常,动态数据引入
// import org.apache.flink.api.scala._ // 数据类型异常,静态数据引入
/**
* Created by Administrator on 2020/3/22.
*/
object SocketWindowWordCount {
def main(args: Array[String]) : Unit = {
// 指定的IP和接口
val hostname: String = "192.168.136.7"
val port: Int = 9999
// 获取流处理环境
val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
// 获取socket计算数据
val windowCounts = env.socketTextStream(hostname, port, '\n')
.flatMap {
w => w.split("\\s") }
.map(w => (w, 1))
.keyBy(_

本文档介绍了Flink DataStream API的编程指南,包括数据源、转换操作、迭代流程序、执行参数设置以及如何控制延迟。通过示例展示了如何从文件、套接字和集合创建数据流,以及如何进行数据接收、转换和输出。还涵盖了如何编写自定义源和使用Flink进行可靠的文件输出。
最低0.47元/天 解锁文章
587

被折叠的 条评论
为什么被折叠?



