显然,Flink 1.14.0在以编程方式设置S3选项时无法正确翻译。我正在创建一个本地环境,以连接到本地的MinIO实例:
val flinkConf = new Configuration()
flinkConf.setString("s3.endpoint", "http://127.0.0.1:9000")
flinkConf.setString("s3.aws.credentials.provider", "org.apache.hadoop.fs.s3a.AnonymousAWSCredentialsProvider")
val env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(flinkConf)
如果您使用的是StreamingFileSink
,并且遇到了以下错误信息:Caused by: org.apache.hadoop.fs.s3a.auth.NoAuthWithAWSException: No AWS Credentials provided by SimpleAWSCredentialsProvider EnvironmentVariableCredentialsProvider InstanceProfileCredentialsProvider : com.amazonaws.SdkClientException: Failed to connect to service endpoint:
那么这意味着Hadoop尝试枚举所有凭证提供程序而不是使用配置中设置的凭证提供程序。请检查您的配置是否正确。