阿里云E-MapReduce这个ossref 是这样写的吧?org.apache.flink.client.deployment.ClusterDeploymentException: Couldn't deploy Yarn Application Cluster
at org.apache.flink.yarn.YarnClusterDescriptor.deployApplicationCluster(YarnClusterDescriptor.java:472)
at org.apache.flink.client.deployment.application.cli.ApplicationClusterDeployer.run(ApplicationClusterDeployer.java:67)
at org.apache.flink.client.cli.CliFrontend.runApplication(CliFrontend.java:214)
at org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1081)
at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1156)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1730)
at org.apache.flink.runtime.security.contexts.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1156)
Caused by: org.apache.hadoop.fs.UnsupportedFileSystemException: No FileSystem for scheme "ossref"
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:3281)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3301)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:124)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3352)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3320)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:479)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:365)
at org.apache.flink.yarn.Utils.lambda$getQualifiedRemoteSharedPaths$1(Utils.java:651)
at org.apache.flink.configuration.ConfigUtils.decodeListFromConfig(ConfigUtils.java:133)
at org.apache.flink.yarn.Utils.getRemoteSharedPaths(Utils.java:661)
at org.apache.flink.yarn.Utils.getQualifiedRemoteSharedPaths(Utils.java:647)
at org.apache.flink.yarn.YarnClusterDescriptor.startAppMaster(YarnClusterDescriptor.java:807)
at org.apache.flink.yarn.YarnClusterDescriptor.deployInternal(YarnClusterDescriptor.java:616)
at org.apache.flink.yarn.YarnClusterDescriptor.deployApplicationCluster(YarnClusterDescriptor.java:465)
-Dyarn.provided.lib.dirs=ossref://user/202119786/flink_app/flink-connector-kafka-1.15.1.jar \
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的错误信息和知识库内容,问题的核心是ossref文件系统方案(scheme)未被Hadoop的FileSystem类识别,导致Flink在提交YARN Application Cluster时失败。以下是详细的分析和解决方案:
错误信息解析:
org.apache.hadoop.fs.UnsupportedFileSystemException: No FileSystem for scheme "ossref",表明Hadoop无法识别ossref作为文件系统的scheme。ossref通常用于引用OSS上的资源,但它需要特定的配置才能被Hadoop或Flink正确解析。可能的原因:
ossref的支持。相关知识库支持:
jfs://或oss://前缀访问OSS,但未提及ossref的具体用法。ossref检查Hadoop的core-site.xml配置文件,确保已添加以下内容以支持OSS:
<property>
<name>fs.oss.impl</name>
<value>com.aliyun.jindodata.oss.JindoOssFileSystem</value>
</property>
<property>
<name>fs.AbstractFileSystem.oss.impl</name>
<value>com.aliyun.jindodata.oss.OSS</value>
</property>
注意:如果使用ossref,需要额外确认其是否被JindoSDK支持。若不支持,建议改用oss://。
如果未安装JindoSDK,请参考知识库安装并配置JindoSDK。
将ossref://替换为oss://,并确保路径格式正确。例如:
-Dyarn.provided.lib.dirs=oss://user/202119786/flink_app/flink-connector-kafka-1.15.1.jar
如果必须使用ossref,请确认其是否需要额外的依赖或插件支持。目前知识库中未明确提及ossref的用法,建议联系阿里云技术支持获取进一步指导。
确保Flink集群中已加载JindoSDK的相关依赖。可以通过以下方式检查:
ls $FLINK_HOME/lib | grep jindo
$FLINK_HOME/lib目录下。如果使用的是EMR集群,确保集群版本支持JindoSDK。根据知识库,EMR-5.17.x版本已包含JindoSDK。
使用hadoop fs命令测试OSS路径是否可访问。例如:
hadoop fs -ls oss://user/202119786/flink_app/
如果命令执行成功,说明OSS路径配置正确。
如果路径不可访问,请检查以下配置项:
jindofsx.oss.accessKeyIdjindofsx.oss.accessKeySecretjindofsx.oss.endpoint配置方法可参考知识库。
修改后的提交命令示例:
flink run-application \
-t yarn-application \
-Dyarn.provided.lib.dirs=oss://user/202119786/flink_app/flink-connector-kafka-1.15.1.jar \
/opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar
如果问题仍然存在,请检查Flink日志以获取更多调试信息。
ossref的使用可能存在兼容性问题,建议优先使用oss://作为文件系统scheme。ossref,请联系阿里云技术支持确认其具体用法和支持情况。通过以上步骤,您可以解决UnsupportedFileSystemException问题并成功提交Flink作业。如果仍有疑问,请提供更多上下文信息以便进一步分析。
阿里云EMR是云原生开源大数据平台,为客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎,计算资源可以根据业务的需要调整。EMR可以部署在阿里云公有云的ECS和ACK平台。