Development Troubleshooting
Topics
Apache Flink Flame Graphs
Flame Graphs are enabled by default on applications
in Kinesis Data Analytics for Apache Flink versions that support it.
Flame Graphs may affect application performance if you keep the graph open,
as mentioned in Flink documentation
If you want to disable Flame Graphs for your application, create a case to request it to be disabled for your application ARN.
For more information, see the Amazon Support Center
Credential Provider Issue with EFO connector 1.15.2
There is a known issueFlinkKinesisConsumer
is not respecting Credential Provider
configuration. Valid configurations are being disregarded due to the issue, which results in the AUTO
credential provider being used. This can cause a problem using cross-account access to Kinesis using EFO connector.
To resolve this error please use EFO connector version 1.15.3 or higher.
Applications with unsupported Kinesis connectors
Kinesis Data Analytics for Apache Flink version 1.15 will automatically reject applications from starting or updating if they are using unsupported Kinesis Connector versions (pre-version 1.15.2) bundled into application JARs or archives (ZIP).
Rejection Error
You will see the following error when submitting create / update application calls through:
An error occurred (InvalidArgumentException) when calling the CreateApplication operation: An unsupported Kinesis connector version has been detected in the application. Please update flink-connector-kinesis to any version equal to or newer than 1.15.2. For more information refer to connector fix: https://issues.apache.org/jira/browse/FLINK-23528
Steps to remediate
Update the application’s dependency on
flink-connector-kinesis
. If you are using Maven as your project’s build tool, follow Update a Maven dependency . If you are using Gradle, follow Update a Gradle dependency .Repackage the application.
Upload to an Amazon S3 bucket.
Resubmit the create / update application request with the revised application just uploaded to the Amazon S3 bucket.
If you continue to see the same error message, re-check your application dependencies. If the problem persists please create a support ticket.
Update a Maven dependency
Open the project’s
pom.xml
.Find the project’s dependencies. They look like:
<project> ... <dependencies> ... <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-kinesis</artifactId> </dependency> ... </dependencies> ... </project>
Update
flink-connector-kinesis
to a version that is equal to or newer than 1.15.2. For instance:<project> ... <dependencies> ... <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-kinesis</artifactId> <version>1.15.2</version> </dependency> ... </dependencies> ... </project>
Update a Gradle dependency
Open the project’s
build.gradle
(orbuild.gradle.kts
for Kotlin applications).Find the project’s dependencies. They look like:
... dependencies { ... implementation("org.apache.flink:flink-connector-kinesis") ... } ...
Update
flink-connector-kinesis
to a version that is equal to or newer than 1.15.2. For instance:... dependencies { ... implementation("org.apache.flink:flink-connector-kinesis:1.15.2") ... } ...
Compile Error: "Could not resolve dependencies for project"
In order to compile the Kinesis Data Analytics for Apache Flink sample applications, you must first download and compile the Apache Flink Kinesis connector and add it to your local Maven repository. If the connector hasn't been added to your repository, a compile error similar to the following appears:
Could not resolve dependencies for project
your project name
: Failure to find org.apache.flink:flink-connector-kinesis_2.11:jar:1.8.2 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced
To resolve this error, you must download the Apache Flink source code (version
1.8.2 from https://flink.apache.org/downloads.html
Invalid Choice: "kinesisanalyticsv2"
To use v2 of the Kinesis Data Analytics API, you need the latest version of the Amazon Command Line Interface (Amazon CLI).
For information about upgrading the Amazon CLI, see Installing the Amazon Command Line Interface in the Amazon Command Line Interface User Guide.
UpdateApplication Action Isn't Reloading Application Code
The UpdateApplication action will not reload application code with the same file name if no S3 object version is specified. To reload application code with the same file name, enable versioning on your S3 bucket, and specify the new object version using the ObjectVersionUpdate
parameter. For more information about enabling object versioning in an S3 bucket, see Enabling or Disabling Versioning.