首页 > 解决方案 > Hadoop 不在类路径/依赖项中,hdfs 不是有效的文件方案

问题描述

亲爱的群体智能,

我是 flink 和 hadoop 的新手,所以我尝试了一下。我有 3 个 Google Cloud Platform VM,我想在其上安装 flink 和 hadoop 分布式文件系统 HDFS。所以要安装 HDFS,我按照教程进行操作,一切似乎都正常。我可以通过 CLI 使用hdfs dfs -COMMAND /. 所以现在我从 apache-website 下载了 flink 的二进制文件。如果我在本地运行例如 WebCount-example,一切正常。此外,如果我想通过./bin/flink run -m localhost:8081 JAR它分发作业也可以。只有当我想提供来自 HDFS 的输入和输出参数时,它才会大喊错误:

Caused by: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Hadoop is not in the classpath/dependencies.

Could not find a file system implementation for scheme 'hdfs'. The scheme is not directly supported by Flink and no Hadoop file system to support this scheme could be loaded.

命令:

./bin/flink run -m localhost:8081 examples/batch/WordCount.jar --input hdfs://hadoop-master:9000/test/hello.txt

我已经尝试将 flink-shaded-hadoop-2-uber-2.8.3-10.0.jar 和 flink-hadoop-compatibility_2.12-1.12.1.jar 复制到 lib 文件夹中,正如一些帮助者在 stackoverflow 上建议的那样。但它没有用。

Hadoop版本:3.3.0

Flink 版本:1.12.1

标签: hadoophdfsapache-flink

解决方案


我在大学作业中遇到了类似的问题;)我的解决方案:


推荐阅读