确定Apache Flink集群规模时需要考虑的6件事
问题导读
1.集群搭建本文都说了哪些因素?
2.什么情况下需要考虑网络容量?
3.什么情况需要考虑磁盘宽带?
4.除了6个因素,还有哪些需要考虑?
关注最新经典文章,欢迎关注公众号
http://www.aboutyun.com/data/attachment/forum/201406/15/084659qcxzzg8n59b6zejp.jpg
Apache Flink社区常见问题之一围绕如何规划和计算Flink群集大小(即如何定义运行特定Flink作业所需的资源数量)。 定义群集大小显然取决于各种因素,例如用例,应用程序的规模以及特定的服务级别协议(SLA)。 影响Flink群集大小的其他因素包括应用程序中的检查点类型(增量检查点与完整检查点),以及Flink作业处理是连续还是突发。
以下6个方面是定义Apache Flink群集大小时要考虑的一些因素:
1.记录数和每条记录的大小
定义群集大小时要考虑的首要事项之一是每秒到达流式传输框架的预期记录数以及每条记录的大小。 不同的记录类型将具有不同的大小,这将最终影响Flink应用程序平稳运行所需的资源。
2.不同key的数量和每个键的状态大小
应用程序中的keys数量和每个keys的状态大小都会影响有效运行Flink应用程序所需的资源。
3.状态更新的数量和状态后端的访问模式
在调整Flink集群大小之前的第三个考虑因素与状态更新的数量有关。 Java的堆状态后端上的各种访问模式可能会显着影响群集的大小以及Flink作业所需的资源。
4.网络容量
网络容量不仅会受到Flink应用程序本身的影响,还会受到可能正在与之交互的外部服务(如Kafka或HDFS)的影响。 此类外部服务可能会导致网络出现额外流量。 例如,启用replication 可能会在网络的消息brokers之间创建额外的流量。
5.磁盘带宽
如果应用程序考虑使用Apache Kafka或HDFS,则应考虑磁盘带宽。
6.机器数量及其可用CPU和内存
最后但同样重要的是,在继续进行应用程序部署之前,需要考虑群集中可用计算机的数量及其可用的CPU和内存。这最终可确保在将应用程序投入生产之前拥有足够的处理能力。
在考虑中包含的更多特定于案例的方面涉及自己或组织的已接受SLA(服务级别协议)。例如,考虑组织可能愿意接受的停机时间,可接受的延迟或最大吞吐量,因为此类SLA会对Flink群集的大小产生影响。
上述所有因素都可以提供Flink作业所需资源数量的良好指示,并提供正常Flink作业操作的指导。应该始终考虑添加一些缓冲区以用于恢复追赶或处理负载峰值。例如,在Flink作业失败的情况下,系统需要其他资源才能从Kafka主题或其他使用的消息传递客户端进行恢复和跟踪。
相关文章:
Apache Flink如何管理Kafka消费者offsets
http://www.aboutyun.com/portal.php?mod=view&aid=65
Flink实时性、容错机制、窗口等介绍
http://www.aboutyun.com/forum.php?mod=viewthread&tid=25540
感谢分享 很多好的, 多谢~ 666666666666,不错
页:
[1]