开发者社区 > 大数据与机器学习 > 人工智能平台PAI > 正文

我用机器学习PAI alink的 从oss读取文件,提交到flink集群执行,报错,请问该如何解决?

我用机器学习PAI alink的 从oss读取文件,本地执行没问题,提交到flink集群执行,报错,提示找不到:org.apache.flink.fs.osshadoop.OSSFileSystemFactory 我已经按要求把flink-oss-fs-hadoop-1.13.0.jar 文件放到flink/plugins/oss-fs-hadoop 下面了,依然找不到该class。
alink 对plugin插件是做了什么特殊处理吗?
alink 好像自动下载了一个oss插件在:/opt/flink-1.13.6/plugins/flink-1.13 这个里面,但是不符合flink对插件的管理,导致flink直接启动报错
9dd734a2cfab04ac16eaeb9eb19d5508.png
请问该如何解决?

展开
收起
2401。 2023-07-08 16:47:15 107 0
3 条回答
写回答
取消 提交回答
  • 当你在机器学习PAI中使用alink从OSS读取文件,并将作业提交到Flink集群执行时,报错提示找不到org.apache.flink.fs.osshadoop.OSSFileSystemFactory时,可能是由于以下原因导致的:

    1. 版本兼容性问题:请确保你下载的flink-oss-fs-hadoop插件版本与你使用的Flink版本相匹配。不同版本的Flink可能需要不同的插件版本。请检查你的Flink版本和插件版本之间的兼容性,并确保下载和使用正确的插件。

    2. 插件路径配置问题:除了将flink-oss-fs-hadoop-1.13.0.jar放置在flink/plugins/oss-fs-hadoop目录下,你还需要确保Flink的配置文件中正确地指定了插件路径。在flink-conf.yaml配置文件中,找到plugin.dir属性并设置为插件目录的绝对路径。

    3. 重新启动Flink集群:如果你已经按照要求将插件放置在正确的位置并配置了插件路径,但仍然无法找到该class,尝试重新启动Flink集群,以确保插件能够被加载和识别。

    4. 检查依赖库:确认你的代码中是否有其他依赖库或jar包与flink-oss-fs-hadoop插件存在冲突或版本不兼容的情况。请确保所有依赖库和jar包都与Flink和插件的版本相匹配。

    关于alink对插件的特殊处理,我无法提供具体的信息,但通常alink会使用和配置Flink的标准插件管理机制来加载和使用插件。

    2023-07-31 18:00:56
    赞同 展开评论 打赏
  • 有做一些特殊处理,用AlinkGlobalConfiguration.setPluginDir("path") 指定一下目录,放在flink目录里边不太行。此回答整理自钉群“Alink开源--用户群”。

    2023-07-09 14:19:24
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    您已经将flink-oss-fs-hadoop-1.13.0.jar文件放置到了flink/plugins/oss-fs-hadoop目录下,这是正确的操作。但是,报错信息中提到找不到org.apache.flink.fs.osshadoop.OSSFileSystemFactory,这表明Flink无法正确加载flink-oss-fs-hadoop插件。

    您可以尝试以下操作:

    确认插件包已放置到正确的目录下,并且没有被损坏或删除。您可以在Flink的控制台中使用ls命令查看plugins目录下的文件列表,并检查是否存在flink-oss-fs-hadoop-1.13.0.jar文件。

    确认插件包的版本与Flink版本兼容。您正在使用Flink 1.13.6版本,因此需要使用与之兼容的flink-oss-fs-hadoop插件。您可以在Flink官方文档中查找相应的插件版本信息,并尝试使用与Flink版本兼容的插件版本。

    确认Flink配置文件中已经正确配置了插件信息。您需要在flink-conf.yaml文件中添加以下配置:

    OSS file system

    fs.oss.impl: org.apache.flink.fs.osshadoop.OSSFileSystem
    这将告诉Flink使用OSSFileSystem实现来处理OSS文件系统。

    如果您没有手动配置Flink插件目录或配置文件路径,则可能需要在Flink启动脚本中指定它们。例如,在使用start-cluster.sh启动Flink集群时,可以指定FLINK_CONF_DIR环境变量来指定配置文件路径,指定FLINK_PLUGINS_DIR环境变量来指定插件目录。例如:
    awk

    export FLINK_CONF_DIR=/path/to/flink/conf
    export FLINK_PLUGINS_DIR=/path/to/flink/plugins
    ./bin/start-cluster.sh
    如果以上方法都无法解决问题,可能是由于机器学习PAI alink对Flink插件管理方式与Flink本身不同,导致Flink找不到插件。您可以尝试手动将flink-oss-fs-hadoop-1.13.0.jar文件放置到Flink的lib目录下,并重新启动Flink集群。这将使Flink直接加载插件,而不是通过alibaba的处理方式。

    2023-07-09 09:45:48
    赞同 展开评论 打赏

相关产品

  • 人工智能平台 PAI
  • 热门讨论

    热门文章

    相关电子书

    更多
    微博机器学习平台架构和实践 立即下载
    机器学习及人机交互实战 立即下载
    大数据与机器学习支撑的个性化大屏 立即下载