Apache Flink-常见问答

通常以下问题在Flink项目中经常被问到。

如果有更多问题,请查询相关文档或在社区中提问。

目录:

  •  Apache Flink只适用于(准)实时的应用场景吗?
  • 如何一切都是流,为什么Flink中会存在DataStream API和DataSet API?
  • Flink如何和Hadoop栈关联起来?
  • Flink还可以运行在哪些堆栈上?
  • 使用Flink的前提条件是什么?
  • Flink支持什么样的规模?
  • Flink是否仅限于内存中的数据集?

常见错误信息。

 Apache Flink只适用于(准)实时的应用场景吗?

Flink是一个非常通用的数据处理和数据驱动应用程序的系统,以数据流作为核心构建块。这些流可以使实时数据流,或历史数据的存储流。例如,在Flink中一个文件就是字节存储流。基于此,Flink即支持实时处理和应用,也支持批处理应用程序。

流可以使无边界的(没有结束,事件持续到达),也可以是有边界的(流有一个开始和结束)。例如,来自消息队列中的Twitter数据通常是无界的,而来自文件的字节流是有界的。

如何一切都是流,为什么Flink中会存在DataStream API和DataSet API?

处理边界流通常比处理无边界流更加高效。在(准)实时处理无边界事件流中需要系统立即处理事件并生成结果(通常要求低延迟)。处理边界流通常不需要低延迟给出结果,因为数据是旧的(相对而言)。这就使得Flink以一种简单和更加高效的方式去处理。

DataStream API捕获有界和无界流的持续处理,这种模式支持低延迟产出结果和对事件和时间的灵活反应(包含事件时间)。

DataSet API有可以加快边界数据流处理的技术,在未来,社区计划把这些优化和DataStream API合并。

Flink如何和Hadoop栈关联起来?

Flink独立于Apache Hadoop,其运行不需要任何Hadoop依赖。

然而,Flink可以的和许多Hadoop组件集成,例如,HDFSYARN, or HBase。当和这些组件一起运行时,Flink可以使用HDFS去读取数据,或写入结果和检查点/快照。Flink可以通过YARN轻易部署并和YARN和HDFS kerberos安全模块集成。

Flink还可以运行在哪些堆栈上?

用户可以在 KubernetesMesosDocker上运行Flink,或者单独对外服务。

使用Flink的前提条件是什么?

  • 你需要Java 8运行Flink任务或应用
  • Scala API(可选)依赖Scala 2.11
  • 借助 Apache ZooKeeper进行高可用配置以至于不存在单点失败故障
  • 配置了高可用的流处理可以从失败中恢复,Flink需要为检查点分布式存储(HDFS / S3 / NFS / SAN / GFS / Kosmos / Ceph / …)

Flink支持什么样的规模?

用户既可以在非常小的配置下(少于5个节点)运行Flink jobs,也可以在有上千节点TB级状态下运行。

Flink是否仅限于内存中的数据集?

对于DataStream API, Flink支持大于内存的状态进行RocksDB状态后端配置。

对于DataSet API, 所有的操作(except delta-iterations)可以超过主存扩展。

常见错误信息

常见错误信息列在Getting Help页面。

猜你喜欢

转载自blog.csdn.net/javajxz008/article/details/83011164
今日推荐