zoukankan      html  css  js  c++  java
  • Flink数据源

    flink数据源

    Flink附带了 许多预先实现的源函数,可以通过实现 SourceFunction 非并行源,或通过 实现 ParallelSourceFunction 接口或扩展 RichParallelSourceFunction 并行源来编写自己的自定义源。

    有几个预定义的流源可从以下位置访问 StreamExecutionEnvironment : 基于文件的: readTextFile(path) - TextInputFormat 逐行读取文本文件,即符合规范 的文件,并将它们作为字符串返回。
    1、readFile(fileInputFormat, path) - 按指定的文件输入格式指定读取 (一次)文件。
    2、readFile(fileInputFormat, path, watchType, interval, pathFilter, typeInfo - 这是前两个内部调用的方法。它 path 根据给定的内容读取文 件 fileInputFormat 。根据提供的内容 watchType ,此源可以定期监视 (每 interval ms)新数据 (FileProcessingMode.PROCESS_CONTINUOUSLY )的路径,或者处理当前 在路径中的数据并退出( FileProcessingMode.PROCESS_ONCE )。使用 该 pathFilter ,用户可以进一步排除正在处理的文件。 实现: 在引擎盖下,Flink将文件读取过程分为两个子任务,即目录监控和数据读取。 这些子任务中的每一个都由单独的实体实现。监视由单个非并行(并行性= 1)任务实现,而读取由并行运行的多个任务执行。后者的并行性等于工作并 行性。单个监视任务的作用是扫描目录(定期或仅一次,具体取决 于 watchType ),找到要处理的文件,将它们分成分割,并将这些拆分分配 给下游读卡器。读者是那些将阅读实际数据的人。每个分割仅由一个读取器读 取,而读取器可以逐个读取多个分割。

    重要笔记:

    1. 如果 watchType 设置 为 FileProcessingMode.PROCESS_CONTINUOUSLY ,则在修改文件时, 将完全重新处理其内容。这可以打破“完全一次”的语义,因为在文件末尾 追加数据将导致其所有内容被重新处理。 2. 如果 watchType 设置为 FileProcessingMode.PROCESS_ONCE ,则源 扫描路径一次并退出,而不等待读者完成读取文件内容。当然读者将继续 阅读,直到读取所有文件内容。在该点之后关闭源将导致不再有检查点。 这可能会导致节点发生故障后恢复速度变慢,因为作业将从上一个检查点 恢复读取。
    2、 socketTextStream - 从套接字读取。数据元可以用分隔符分隔。

    基于集合:

    1、fromCollection(Collection) - 从Java Java.util.Collection创建数据流。 集合中的所有数据元必须属于同一类型。

    2、fromCollection(Iterator, Class) - 从迭代器创建数据流。该类指定迭 代器返回的数据元的数据类型。

    3、fromElements(T ...) - 从给定的对象序列创建数据流。所有对象必须属于 同一类型。

    4、fromParallelCollection(SplittableIterator, Class) - 并行地从迭代 器创建数据流。该类指定迭代器返回的数据元的数据类型。


    generateSequence(from, to) - 并行生成给定间隔中的数字序列。 自定义: addSource - 附加新的源函数。

  • 相关阅读:
    每天读一下,你就会改变
    C++ 反转字符串(原创)
    C++ string学习
    18种常见室内花卉的功效 (转自网络)
    UML建模教程
    孙鑫视频VC++深入详解学习笔记
    visual C++ 6.0开发工具与调试
    C++ typeid typename使用
    C++模板学习
    Working classes Code complete reading notes(6)
  • 原文地址:https://www.cnblogs.com/yuansai/p/13071050.html
Copyright © 2011-2022 走看看