Flink DataStream Hadoop is not in the classpath

在这里插入图片描述

1. 问题

在本地 Idea 上运行 Flink 程序,抛出如下异常:

Exception in thread "main" org.apache.flink.util.FlinkException: Failed to execute job 'StateBackendExample'.
	at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.executeAsync(StreamExecutionEnvironment.java:1918)
	at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1796)
	at org.apache.flink.streaming.api.environment.LocalStreamEnvironment.execute(LocalStreamEnvironment.java:69)
	at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1782)
  ...
Caused by: org.apache.flink.runtime.client.JobInitializationException: Could not instantiate JobManager.
  ...
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.flink.util.FlinkRuntimeException: Failed to create checkpoint storage at checkpoint coordinator side.
  ...
	at org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.createJobMasterService(DefaultJobMasterServiceFactory.java:39)
	at org.apache.flink.runtime.jobmaster.JobManagerRunnerImpl.<init>(JobManagerRunnerImpl.java:162)
	at org.apache.flink.runtime.dispatcher.DefaultJobManagerRunnerFactory.createJobManagerRunner(DefaultJobManagerRunnerFactory.java:86)
	at org.apache.flink.runtime.dispatcher.Dispatcher.lambda$createJobManagerRunner$5(Dispatcher.java:478)
	... 4 more
Caused by: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: 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. For a full list of supported file systems, please see https://ci.apache.org/projects/flink/flink-docs-stable/ops/filesystems/.
	at org.apache.flink.core.fs.FileSystem.getUnguardedFileSystem(FileSystem.java:531)
	at org.apache.flink.core.fs.FileSystem.get(FileSystem.java:408)
	at org.apache.flink.core.fs.Path.getFileSystem(Path.java:274)
	at org.apache.flink.runtime.state.filesystem.FsCheckpointStorageAccess.<init>(FsCheckpointStorageAccess.java:64)
	at org.apache.flink.runtime.state.filesystem.FsStateBackend.createCheckpointStorage(FsStateBackend.java:518)
	at org.apache.flink.contrib.streaming.state.RocksDBStateBackend.createCheckpointStorage(RocksDBStateBackend.java:476)
	at org.apache.flink.runtime.checkpoint.CheckpointCoordinator.<init>(CheckpointCoordinator.java:330)
	... 19 more
Caused by: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Hadoop is not in the classpath/dependencies.
	at org.apache.flink.core.fs.UnsupportedSchemeFactory.create(UnsupportedSchemeFactory.java:55)
	at org.apache.flink.core.fs.FileSystem.getUnguardedFileSystem(FileSystem.java:527)
	... 25 more

Process finished with exit code 1

2. 解决方案

核心原因:Flink 本身不直接支持 HDFS 文件系统,需通过 Hadoop 客户端库实现。当代码中使用 HDFS 路径(如 Checkpoint 存储位置)但未添加 Hadoop 依赖时,Flink 无法加载 HDFS 文件系统实现。

解决方案是在 Maven 项目的 pom.xml 中添加 Hadoop 客户端依赖(版本需与集群一致):

<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-client</artifactId>
  <version>2.10.1</version>
  <scope>provided</scope>
</dependency>
<think>好的,我现在需要帮助用户了解如何在本地环境中配置和使用Flink与Paimon。首先,我应该回顾用户提供的引用内容,特别是引用[1]和引用[2],因为它们提到了Flink 1.17.2对应的Paimon依赖jar包以及安装步骤。用户的问题是关于本地环境的集成和配置,所以需要确保步骤详细且适合本地设置。 第一步,我应该检查用户的引用内容。引用[1]提到下载paimon-flink-1.17-0.7.0-incubating.jar,并且给出了wget命令。引用[2]涉及Flink、Paimon、Hadoop和StarRocks的安装部署,其中提到了将Flink的文件复制到Homebrew的路径,这可能是在macOS系统下的操作。用户可能需要指导如何将Paimon的jar包添加到Flink的lib目录中。 接下来,我需要组织步骤。首先,下载正确的依赖包,确保版本匹配。Flink 1.17.2对应的Paimon版本是0.7.0,所以必须确认用户下载的是这个版本。然后,将jar包放入Flink的lib目录,这样Flink在启动时就能加载Paimon的依赖。 然后配置Hadoop环境。虽然用户可能在本地运行,但Paimon可能依赖Hadoop的类,所以需要设置HADOOP_CLASSPATH。需要指导用户如何设置环境变量,可能是在.bashrc或.zshrc文件中。 接下来是启动Flink集群,这里需要检查用户是否正确安装了Flink,并且能够通过start-cluster.sh脚本启动。之后,验证Paimon是否成功加载,可以通过提交示例作业或者检查日志是否有错误。 在代码示例部分,需要使用Flink SQL或DataStream API来操作Paimon表。用户可能需要一个简单的例子来创建表和插入数据,这样他们可以测试集成是否成功。比如使用Flink SQL Client执行CREATE TABLE语句,指定connector为paimon,并定义字段和参数。 另外,用户可能需要知道如何访问Paimon文档或社区资源,以便进一步学习和解决问题。这部分可以作为补充信息提供。 需要注意的是,用户可能使用的是macOS系统,因为引用[2]提到了Homebrew的路径。所以在路径示例时,可能需要给出常见的安装路径,如/usr/local/flink-1.17.2,但也要提醒用户根据实际安装位置调整。 同时,要确保所有步骤中的命令正确无误,比如wget的URL是否正确,文件路径是否存在,环境变量设置后是否需要重启终端或会话。如果有潜在的常见问题,比如jar包版本不匹配或Hadoop类路径未正确设置,也需要在注意事项中提到。 最后,生成相关问题,围绕配置步骤、常见问题、版本兼容性以及与其他组件的集成,如Hadoop或StarRocks,这样可以引导用户进一步探索相关主题。</think>### 本地环境中配置和使用 Flink Paimon 的步骤 #### 1. **下载依赖包** 根据 Flink 版本选择对应的 Paimon JAR 包。例如,Flink 1.17.2 需使用: ```bash wget https://labfile.oss.aliyuncs.com/courses/31774/paimon-flink-1.17-0.7.0-incubating.jar ``` 将下载的 JAR 包放入 Flink 的 `lib` 目录下(例如 `/usr/local/flink-1.17.2/lib`)[^1]。 #### 2. **配置 Hadoop 环境** Paimon 依赖 Hadoop 类库,需配置环境变量: ```bash export HADOOP_CLASSPATH=`hadoop classpath` # 若已安装 Hadoop ``` 若未安装 Hadoop,可下载 `hadoop-common` 并添加到 Flink 的 `lib` 目录。 #### 3. **启动 Flink 集群** ```bash cd /usr/local/flink-1.17.2 ./bin/start-cluster.sh ``` 验证 Flink Web UI(默认端口 8081)是否正常。 #### 4. **使用 Paimon 表** 通过 Flink SQL 或 DataStream API 操作 Paimon 表: ```sql -- Flink SQL 示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@SmartSi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值