使用 EMR 的 Apache flink 的 AWS 配置



我有一个生产者应用程序,它以每秒 600 条记录的速度写入 Kinesis 流。我编写了一个 Apache flink 应用程序来读取/处理和聚合此流数据,并将聚合输出写入 AWS Redshift。

每条记录的平均大小为 2KB。此应用程序将运行24 * 7。

我想知道我的 AWS EMR 集群应该配置什么。我需要多少个节点?我应该使用的 EC2 实例类型 (R3/C3( 应该是什么。

除了性能方面,成本对我们来说也很重要。

是否使用 r3/c3 取决于应用程序正在使用的许多资源。

我假设您正在使用窗口或一些有状态运算符来执行聚合。有状态运算符将在状态后端配置 https://ci.apache.org/projects/flink/flink-docs-release-1.3/ops/state_backends.html#state-backends 中维护状态

因此,您可以首先通过在 c3 类型实例上试用应用程序来检查状态是否适合内存(如果您打算使用 FSStateBackend(。您可以使用 JVisualVM 检查内存利用率。另外,请尝试在此处检查 CPU 利用率。

使用 r3 类型的实例,您将以与 c3 提供的相同数量的 CPU 获得更多内存。例如:c3.4xlarge 实例提供 16 个 vCPU,每个节点 30GB 内存,而 r34xlarge 提供 16 个 vCPU,每个节点 122GB 内存。

因此,这取决于您的应用程序应使用哪种类型的实例。

有关价格比较,您可以参考: http://www.ec2instances.info/

相关内容

  • 没有找到相关文章

最新更新