tongchenkeji 发表于:2022-11-13 19:18:120次点击 已关注取消关注 关注 私信 各位,Flink 的离线计算的数据是怎么存放的?是存在 HDFS(或Hive)上的吗?[阿里云实时计算 Flink版] 暂停朗读为您朗读 各位,Flink 的离线计算的数据是怎么存放的?是存在 HDFS(或Hive)上的吗? 「点点赞赏,手留余香」 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 海报 实时计算Flink版# HIVE122# SQL1285# 实时计算 Flink版3179# 流计算2236
余生吟清歌AM 2023-11-27 18:34:20 1 先将离线数据预先加载到sink端,或者将数据保存到Flink State中去。 如果离线数据的计算结果在mysql中,那么可以使用类似维表的方式直接进行Stream操作 加载离线写入State
2023一张嘴巴分三片AM 2023-11-27 18:34:20 2 OSS 可与 Flink 一起使用以读取与存储数据 https://nightlies.apache.org/flink/flink-docs-master/zh/docs/deployment/filesystems/oss/
飞云觅宙AM 2023-11-27 18:34:20 3 Flink 是一个针对流数据和批数据的分布式处理引擎。它主要是由 Java 代码实现。目前主要还是依靠开源社区的贡献而发展。 对 Flink 而言,其所要处理的主要场景就是流数据。Flink 的前身是柏林理工大学一个研究性项目, 在 2014 被 Apache 孵化器所接受,然后迅速地成为了 ASF(Apache Software Foundation)的顶级项目之一。 Flink使用的是Chandy Lamport算法的一个变种,定期生成正在运行的流拓扑的状态快照,并将这些快照存储到持久存储中(例如:存储到HDFS或内存中文件系统)。检查点的存储频率是可配置的。 做离线开发的时候数据存储在hdfs或者hive,不管用什么组件,数据源都是hive,然后定时执行脚本,跑离线任务。 实时数仓可以理解为数据都存储在kafka,Flink消费kafka的数据然后进行逻辑处理,然后再下发到kafka,这么延迟是秒或者分钟级别的,对于不同的业务效果更好,更实时。 在做消息报表系统时,采用离线计算的方式,如果采用spark作为计算引擎,原始数据会存放在HDFS中,聚合数据存放在Solr、Hbase和Mysql中。
穿过生命散发芬芳AM 2023-11-27 18:34:20 4 Flink在做大数据的离线计算时,当然是把所有数据读到内存中的。至于开销,因为它是分布式的,理想状况下,开销是单台机器的开销,和普通的单机数据处理开销是一样的。
魏红斌AM 2023-11-27 18:34:20 5 无论何种 StateBackend,Operator State 在运行期间全部存储在 TM 的内存中。Checkpoint 时,MemoryStateBackend 会将状态数据保存到 JM 的内存中。其他 StateBackend 会将状态数据保存到 hdfs。对应表格: StateBackend类型 运行过程中存储位置 Checkpoint存储位置 适用场景 memory TM 内存中 JM 内存中 调试(生产环境严禁使用) filesystem TM 内存中 hdfs 生产环境 Rocksdb TM 内存中 hdfs 生产环境 KeyedState 的存储表格如下所示: StateBackend类型 运行过程中存储位置 Checkpoint存储位置 适用场景 memory TM 内存中 JM 内存中 调试(生产环境严禁使用) filesystem TM 内存中 hdfs 状态较小的场景,性能极高 Rocksdb TM 本地的 RocksDB 中 hdfs 大状态场景
喜欢猪猪AM 2023-11-27 18:34:20 6 Flink 基础操作与一个处理数据 Http接口的生命周期很像,接受数据 -> 处理数据 -> 存储数据,而 Sink 在翻译有表示【下沉】的意思,也就是我们经常对处理数据后做的一件事:存储。这个Sink就包括hdfsSinkDBSink
先将离线数据预先加载到sink端,或者将数据保存到Flink State中去。 如果离线数据的计算结果在mysql中,那么可以使用类似维表的方式直接进行Stream操作 加载离线写入State
OSS 可与 Flink 一起使用以读取与存储数据 https://nightlies.apache.org/flink/flink-docs-master/zh/docs/deployment/filesystems/oss/
Flink 是一个针对流数据和批数据的分布式处理引擎。它主要是由 Java 代码实现。目前主要还是依靠开源社区的贡献而发展。 对 Flink 而言,其所要处理的主要场景就是流数据。Flink 的前身是柏林理工大学一个研究性项目, 在 2014 被 Apache 孵化器所接受,然后迅速地成为了 ASF(Apache Software Foundation)的顶级项目之一。 Flink使用的是Chandy Lamport算法的一个变种,定期生成正在运行的流拓扑的状态快照,并将这些快照存储到持久存储中(例如:存储到HDFS或内存中文件系统)。检查点的存储频率是可配置的。 做离线开发的时候数据存储在hdfs或者hive,不管用什么组件,数据源都是hive,然后定时执行脚本,跑离线任务。 实时数仓可以理解为数据都存储在kafka,Flink消费kafka的数据然后进行逻辑处理,然后再下发到kafka,这么延迟是秒或者分钟级别的,对于不同的业务效果更好,更实时。 在做消息报表系统时,采用离线计算的方式,如果采用spark作为计算引擎,原始数据会存放在HDFS中,聚合数据存放在Solr、Hbase和Mysql中。
Flink在做大数据的离线计算时,当然是把所有数据读到内存中的。至于开销,因为它是分布式的,理想状况下,开销是单台机器的开销,和普通的单机数据处理开销是一样的。
无论何种 StateBackend,Operator State 在运行期间全部存储在 TM 的内存中。Checkpoint 时,MemoryStateBackend 会将状态数据保存到 JM 的内存中。其他 StateBackend 会将状态数据保存到 hdfs。对应表格:
StateBackend类型 运行过程中存储位置 Checkpoint存储位置 适用场景 memory TM 内存中 JM 内存中 调试(生产环境严禁使用) filesystem TM 内存中 hdfs 生产环境 Rocksdb TM 内存中 hdfs 生产环境 KeyedState 的存储表格如下所示:
StateBackend类型 运行过程中存储位置 Checkpoint存储位置 适用场景 memory TM 内存中 JM 内存中 调试(生产环境严禁使用) filesystem TM 内存中 hdfs 状态较小的场景,性能极高 Rocksdb TM 本地的 RocksDB 中 hdfs 大状态场景
Flink 基础操作与一个处理数据 Http接口的生命周期很像,接受数据 -> 处理数据 -> 存储数据,而 Sink 在翻译有表示【下沉】的意思,也就是我们经常对处理数据后做的一件事:存储。这个Sink就包括hdfsSinkDBSink