title |
---|
常见问题解答 |
以下是关于Flink项目的常见问题。
如果您还有其他问题,请确保参考文档或者 [社区提问]({{ site.baseurl }}/gettinghelp.html).
{% toc %}
Flink是一个非常通用的系统,用于数据处理和数据驱动应用程序核心组件。这些数据流可以是实时数据流,也可以是存储的历史数据流。
例如,在Flink看来文件是存储的字节流。正因为如此,Flink支持实时数据处理和应用程序,以及批处理应用程序。
流可以是无界的(没有结束,事件不断地到来),也可以是有界的(流有开始和结束)。例如,来自消息队列的Twitter提要或事件流通常是无界流,而来自文件的字节流是有界流。
有界流通常比无界流处理效率更高。处理(接近)实时的无界事件流要求系统能够立即对事件进行操作并产生中间结果(通常具有较低的延迟)。处理有界流通常不需要产生低延迟的结果,因为数据无论如何都是旧的(相对而言)。这使得Flink能够以一种简单而高效的方式处理数据。
DataStream 数据流API捕获无界和有界流的连续处理,其模型支持低延迟结果和对事件和时间(包括事件时间)的灵活反应。
DataSet数据集API的技术通常可以加快有限数据流的处理。将来,社区计划将这些优化与DataStream API中的技术结合起来。
Flink独立于Apache Hadoop,运行时不依赖于任何Hadoop。
然而,Flink与许多Hadoop组件集成得非常好,例如HDFS、YARN或HBase。
当与这些组件一起运行时,Flink可以使用HDFS读取数据,或者写入结果和检查点/快照。
Flink可以通过YARN轻松部署,并与YARN和HDFS Kerberos安全模块集成。
用户在Kubernetes上运行Flink ,Mesos, Docker,或甚至作为独立服务。
- 您需要Java 8来运行Flink作业/应用程序。
- Scala API(可选)依赖于Scala 2.11
- 高度可用且没有单点故障的设置需要Apache ZooKeeper。
- 对于可以从故障中恢复的高可用流处理设置,Flink需要为检查点提供某种形式的分布式存储(HDFS / S3 / NFS / SAN / GFS / Kosmos / Ceph /…)。
用户在非常小的设置(少于5个节点)和1000个节点上以及TBs状态下运行Flink作业。
对于DataStream API, Flink支持在配置RocksDB状态后端时使用大于内存的状态。 对于数据集API,所有操作(delta迭代除外)都可以扩展到主内存之外。
常见的错误消息列在[获取帮助]({{ site.baseurl }}/gettinghelp.html#got-an-error-message) 页面上。