Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:将 Studio 笔记本部署为具有持久状态的 Apache Flink 应用程序的托管服务
以下教程演示了如何将 Studio Notebook 部署为具有持久状态的 Managed Service for Apache Flink 应用程序。
满足先决条件
使用 Kinesis Data Streams 或 Amazon MSK 按照中的说明创建新的 Studio 笔记本。教程:在适用于 Apache Flink 的托管服务中创建 Studio 笔记本为 Studio 笔记本命名ExampleTestDeploy
。
使用 AWS Management Console部署具有持久状态的应用程序
在 “应用程序代码位置”(控制台中为可选)下添加要存储打包代码的 S3 存储桶位置。这样就可以直接从笔记本部署和运行应用程序的步骤。
向应用程序角色添加所需的权限,以启用您用于读取和写入 Amazon S3 存储桶的角色,以及启动Managed Service for Apache Flink应用程序:
亚马逊 3 FullAccess
亚马逊托管-flinkFullAccess
访问您的来源、目的地VPCs以及(如果适用)。有关更多信息,请参阅 查看 Studio 笔记本的IAM权限。
使用下面的示例代码:
%flink.ssql(type=update) CREATE TABLE exampleoutput ( 'ticket' VARCHAR, 'price' DOUBLE ) WITH ( 'connector' = 'kinesis', 'stream' = 'ExampleOutputStream', 'aws.region' = 'us-east-1', 'scan.stream.initpos' = 'LATEST', 'format' = 'json' );
INSERT INTO exampleoutput SELECT ticker, price FROM exampleinputstream
启动此功能后,您将在笔记本中每张笔记的右上角看到一个新的下拉列表,上面写着笔记本的名称。您可执行以下操作:
在中查看 Studio 笔记本的设置 AWS Management Console。
制作您的 Zeppelin Note 并将其导出到 Amazon S3。此时,请为您的应用程序提供一个名称,然后选择 “生成并导出”。导出完成后,您将收到通知。
如果需要,您可以在 Amazon S3 中查看和运行对可执行文件的任何其他测试。
构建完成后,您将能够将代码部署为具有持久状态和自动扩展功能的 Kinesis 流媒体应用程序。
使用下拉列表并选择将 Zeppelin Note 部署为 Kinesis 流式应用程序。查看应用程序名称并选择通过 AWS 控制台部署。
这将引导您进入为 Apache Flink 应用程序创建托管服务的 AWS Management Console 页面。请注意,应用程序名称、并行度、代码位置、默认 Glue DBVPC(如果适用)和IAM角色都已预先填充。验证IAM角色是否具有访问您的源和目标所需的权限。默认情况下,快照处于启用状态,以实现持久的应用程序状态管理。
选择创建应用程序。
您可以选择配置和修改任何设置,然后选择运行以启动您的流媒体应用程序。
使用 AWS CLI部署具有持久状态的应用程序
要使用部署应用程序 AWS CLI,您必须更新 AWS CLI 以使用与 Beta 2 信息一起提供的服务模型。有关如何使用更新的服务模型的信息,请参阅完成先决条件。
以下示例代码将创建一个新的 Studio 笔记本:
aws kinesisanalyticsv2 create-application \ --application-name <app-name> \ --runtime-environment ZEPPELIN-FLINK-3_0 \ --application-mode INTERACTIVE \ --service-execution-role <iam-role> --application-configuration '{ "ZeppelinApplicationConfiguration": { "CatalogConfiguration": { "GlueDataCatalogConfiguration": { "DatabaseARN": "arn:aws:glue:us-east-1:<account>:database/<glue-database-name>" } } }, "FlinkApplicationConfiguration": { "ParallelismConfiguration": { "ConfigurationType": "CUSTOM", "Parallelism": 4, "ParallelismPerKPU": 4 } }, "DeployAsApplicationConfiguration": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::<s3bucket>", "BasePath": "/something/" } }, "VpcConfigurations": [ { "SecurityGroupIds": [ "<security-group>" ], "SubnetIds": [ "<subnet-1>", "<subnet-2>" ] } ] }' \ --region us-east-1
以下代码示例将启动一个新的 Studio 笔记本:
aws kinesisanalyticsv2 start-application \ --application-name <app-name> \ --region us-east-1 \ --no-verify-ssl
以下代码返回应用程序的 URL Apache Zeppelin 笔记本页面的:
aws kinesisanalyticsv2 create-application-presigned-url \ --application-name <app-name> \ --url-type ZEPPELIN_UI_URL \ --region us-east-1 \ --no-verify-ssl