如何在Amazon Kinesis服务上部署和运行Amazon Kinesis应用程序

10

我正在尝试了解如何部署使用Kinesis客户端库(KCL)构建的Amazon Kinesis客户端应用程序。

我找到了这个链接,但它只是说明:

在部署Amazon Kinesis应用程序时,您可以按照自己的最佳实践将代码部署到Amazon EC2实例中。例如,您可以将Amazon Kinesis应用程序添加到其中一个Amazon EC2 AMI中。

这对我来说并没有给出更广泛的图片。

这些示例使用Ant脚本运行Java程序。这是要遵循的最佳做法吗?

此外,我知道即使在运行EC2实例之前,我需要确保:

  1. 开发的代码JAR/WAR或任何其他格式需要位于EC2实例上
  2. EC2实例需要预先拥有所有必需的环境,如Ant设置,以执行程序。

请问有人能够添加更多细节吗?


我也遇到了完全相同的问题,我不理解应用程序如何在实例启动时启动。我本来期望它像某种服务或守护进程一样安装。 - Kevin Pluck
1
我已经在AWS论坛上发布了几乎相同的问题,但至今没有回复:https://forums.aws.amazon.com/thread.jspa?threadID=156072&tstart=0 - Kevin Pluck
我打算发起一个悬赏,以便我们可以获得部署可扩展的Kinesis应用程序的逐步说明。 - Kevin Pluck
3个回答

9
Amazon Kinesis负责数据摄取,而不是运行您的应用程序。您可以在任何地方运行应用程序,但最好在EC2中运行,因为您可能会使用其他AWS服务,例如S3或DynamoDB(例如,Kinesis Client Library使用DynamoDB进行分片)。
为了更好地理解Kinesis,建议您启动Kinesis数据可视化示例。启动此应用程序时,请使用提供的CloudFormation模板。它将创建一个堆栈,其中包含具有应用程序的Kinesis流和EC2实例,该实例使用Kinesis Client Library,并且是一个完全工作的示例,可供开始使用。

谢谢Julio。我花了一点时间才理解你的意思,但在AWS论坛上回答我的问题的答案也是一样的:https://forums.aws.amazon.com/message.jspa?messageID=556078#556078 基本上创建一个ec2实例并使用一个cloudformation模板来下载你的jar文件,并创建一个执行它的脚本。 - Kevin Pluck
@Sam,我建议将此回复作为您问题的答案。 - Kevin Pluck
谢谢 Julio,谢谢 Kevin - Sam

1
我发现使用EMR来托管消费者程序是最好的方法,但不是作为Hadoop集群。将程序打包成jar文件,放置在S3中。启动EMR集群并运行jar文件。您可以使用数据管道在定期间隔内安排此作业流。您还可以缩放EMR集群,或使用实际的EMR作业来处理流(如果选择高科技)。

我只是有一个疑问,如果我有一个仅有一个分片的流,它将如何在具有主节点和从节点的EMR上执行。 - Awadesh
这个答案非常老,可能已经过时了。我认为现在可能有更好的方法来做这件事,但是我现在使用Azure而不是AWS。 - Dan Ciborowski - MSFT

1
你也可以使用Beanstalk。我认为这篇文章非常有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接