hadoop - 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
解决方案
我在大学作业中遇到了类似的问题;)我的解决方案:
- 下载https://hadoop.apache.org/releases.html
- 添加到虚拟机
- 设置
HADOOP_CLASSPATH
为 hadoop 类路径命令的输出
推荐阅读
- java - 如何在点击每个 RecyclerView 列表项时显示插页式广告
- swift - 如何快速替换MKMapView中当前位置坐标中的新位置坐标
- apache-kafka - Kafka 是否防止消费者在网络分区后提交?
- azure - 使用另一个访问令牌获取 msgraph 访问令牌
- java - 如何计算在给定时间范围内运行的起始对数
- pyqt - 如何防止ui有时使用线程挂起?
- c - 双指针与指向数组的指针,不兼容的指针类型
- docker - 气流:DockerOperator 失败并出现 Permission Denied 错误
- reactjs - 卡住了 React.js 的安装
- javascript - Vue.js - 在页面加载时初始化变量