Hadoop 不在 classpath/dependencies 中,hdfs 不是有效的文件方案

Hadoop is not in the classpath/dependencies, hdfs not a valid file scheme

亲爱的群智能,

我是flink和hadoop的新手,所以我试着玩了一下。我有 3 Google 个云平台虚拟机,我想在上面安装 flink 和 hadoop 分布式文件系统 HDFS。 所以为了安装 HDFS,我遵循了一个教程,一切似乎都正常。我可以使用 hdfs dfs -COMMAND / 通过 CLI 放置、访问和列出文件。 所以现在我从 apache-website 下载了 flink 的二进制文件。 如果我 运行 例如本地的 WebCount 示例,一切正常。此外,如果我想通过 ./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 复制到库中一些助手在 Whosebug 上建议的文件夹。 但是没用。

Hadoop 版本:3.3.0

Flink 版本:1.12.1

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