我有一个生产者应用程序,它以每秒600条记录的速度写入Kinesis流。我编写了一个Apache flink应用程序来读取/处理和聚合这些流数据,并将聚合的输出写入AWS Redshift。
每条记录的平均大小为2KB。此应用程序将24*7运行。
我想知道我的AWS EMR集群的配置应该是什么。我需要多少个节点?我应该使用的EC2实例类型(R3/C3)应该是什么。
除了性能方面,成本对我们也很重要。
是否选择r3/c3取决于应用程序使用的资源数量。
我假设您正在使用窗口或一些有状态运算符来执行聚合。有状态运算符将在配置的StateBackend中维护状态https://ci.apache.org/projects/flink/flink-docs-release-1.3/ops/state_backends.html#state-backends
因此,您可以首先通过在c3类型的实例上试用应用程序来检查状态是否适合内存(如果您打算使用FSStateBend)。可以使用JVisualVM检查内存利用率。此外,请尝试在此处检查CPU利用率。
对于r3类型的实例,您将使用c3提供的相同数量的CPU获得更多内存。例如:c3。4XL实例提供16个vCPU,每个节点具有30GB内存,而R34XL实例提供16vCPU,每个节点具有122GB内存。
因此,这取决于您的应用程序应该使用什么类型的实例。
有关价格比较,您可以参考以下内容:http://www.ec2instances.info/
我正在编写一个spark应用程序,并使用sbt assembly创建一个fat jar,我可以将其发送到spark-submit(通过Amazon EMR)。我的应用程序使用typesafe-config,在我的目录中有一个文件。我的jar在Amazon S3上,我使用命令创建一个新的spark作业(将jar下载到集群并发送到spark-submit)。我知道,一般来说,我可以使用来覆盖这些设置。
我正在遵循doc:http://docs.aws.amazon.com/elasticmapreduce/latest/releaseguide/emr-dev-create-matchore-outside.html并尝试使用AWSCLI==1.10.38创建emr集群。 我使用文档中提到的以下命令: 但是它说“AWS:error:valid json argument for option--
所以我对通过AWS EMR执行Presto查询有一个问题。 我已经启动了一个EMR运行Hive/Presto,并使用AWS胶水作为转移物。 当我SSH到主节点并运行hive时,我可以运行“show schemas;”它向我展示了我们在AWS胶水上拥有的3个不同的数据库。 我确实设置了以下配置 AWS文档http://docs.AWS.amazon.com/emr/latest/releasegui
我正在尝试在AWS EMR 5.11的Spark上安装Apache Hive。ApacheSpark版本-2.2。1 Apache配置单元版本-2.3。2条纱线记录显示以下错误: 18/01/28 21:55:28错误ApplicationMaster:用户类引发异常:java。lang.NoSuchFieldError:SPARK\u RPC\u服务器\u地址java。lang.NoSuchFi
我们正在EC2实例上构建一个airflow服务器,该服务器与EMR集群通信以运行spark作业。我们试图提交一个BashOperator DAG,它为一个简单的wordcount应用程序运行spark-submit命令。下面是我们的spark提交命令: 我们得到以下错误:线程“main”org.apache.spark.sparkException中的异常:当使用主“yarn”运行时,必须在环境中
如何在ApacheFlink中为会话窗口分配id? 最后,我希望在会话窗口打开时,使用会话窗口id逐个充实事件(我不希望等到窗口关闭后再发出充实事件)。 我尝试使用AggregateFunction来实现这一点,但是我认为merge()并没有像我所期望的那样工作。它似乎是用于合并窗口而不是窗格(触发触发)。在我的管道中似乎从未调用过它。因此,触发器之间似乎没有共享状态! 会话窗口ID将是落入窗口的