如何使用 Flink 在 EMR 上使用 s3a 文件系统?
How can I use the s3a file system on an EMR using Flink?
我正在尝试使用 Table API 在 Flink 应用程序中利用 s3a 文件系统。我使用的是 EMR 6.1(预打包在 Flink 1.11.0 中)。
作为我的应用程序的一部分,我正在 s3 位置上创建一个 table。当我 运行 程序时,出现以下错误:
org.apache.flink.core.fs.UnsupportedFileSystemSchemeException
表示 s3:// 或 s3a:// URI 均不支持文件系统。
根据 Flink's documentation on using s3,如果我在 EMR 上,我不需要将任何文件系统配置为插件。
我仔细检查过我的应用程序中没有包含 fs-s3-hadoop 依赖项。
奇怪的是,当我按照上述说明将文件系统安装为插件时,我可以使它适用于 s3:// URI 但不适用于 s3a://。
似乎 flink 运行 命令没有遵循 EMR 预配置的 hadoop 类路径。
我还希望使用 s3 自定义凭据提供程序来补充我的应用程序,但这在通过插件系统使用时似乎也不起作用,也不会从 Hadoop 类路径中获取。
使用 s3:// 网址
- s3a 连接器是 Apache 开源连接器,在 hadoop-aws 中
- flink 文档是开源的,参考了 s3a
- s3 连接器来自 EMR。
- 并且 EMR 没有 contain/support s3a 连接器
- 这导致您看到堆栈跟踪
我正在尝试使用 Table API 在 Flink 应用程序中利用 s3a 文件系统。我使用的是 EMR 6.1(预打包在 Flink 1.11.0 中)。
作为我的应用程序的一部分,我正在 s3 位置上创建一个 table。当我 运行 程序时,出现以下错误:
org.apache.flink.core.fs.UnsupportedFileSystemSchemeException
表示 s3:// 或 s3a:// URI 均不支持文件系统。
根据 Flink's documentation on using s3,如果我在 EMR 上,我不需要将任何文件系统配置为插件。
我仔细检查过我的应用程序中没有包含 fs-s3-hadoop 依赖项。
奇怪的是,当我按照上述说明将文件系统安装为插件时,我可以使它适用于 s3:// URI 但不适用于 s3a://。
似乎 flink 运行 命令没有遵循 EMR 预配置的 hadoop 类路径。
我还希望使用 s3 自定义凭据提供程序来补充我的应用程序,但这在通过插件系统使用时似乎也不起作用,也不会从 Hadoop 类路径中获取。
使用 s3:// 网址
- s3a 连接器是 Apache 开源连接器,在 hadoop-aws 中
- flink 文档是开源的,参考了 s3a
- s3 连接器来自 EMR。
- 并且 EMR 没有 contain/support s3a 连接器
- 这导致您看到堆栈跟踪