Flink DataStream API编程指南

本文档介绍了Flink DataStream API的编程指南,包括数据源、转换操作、迭代流程序、执行参数设置以及如何控制延迟。通过示例展示了如何从文件、套接字和集合创建数据流,以及如何进行数据接收、转换和输出。还涵盖了如何编写自定义源和使用Flink进行可靠的文件输出。
摘要由CSDN通过智能技术生成

一.简介

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(_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值