Flink 错误 - org.apache.hadoop.ipc.RemoteException: 服务器 IPC 版本 9 无法与客户端版本 4 通信

Flink error - org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4

我正在尝试 运行 使用来自 HDFS 的文件进行 flink 作业。我创建了一个数据集如下 -

DataSource<Tuple2<LongWritable, Text>> visits = env.readHadoopFile(new TextInputFormat(), LongWritable.class,Text.class, Config.pathToVisits());

我使用的是flink的最新版本——0.9.0-milestone-1-hadoop1 (我也试过 0.9.0-milestone-1)

而我的 Hadoop 版本是 2.6.0

但是,当我尝试执行该作业时出现以下异常。我搜索过类似的问题,是客户端和hdfs版本不兼容的问题。

Exception in thread "main" org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4
at org.apache.hadoop.ipc.Client.call(Client.java:1113)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:229)
at com.sun.proxy.$Proxy5.getProtocolVersion(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

能否请您告诉我应该在我的 pom 中进行哪些更改,以便它指向正确的 Hadoop/HDFS 版本?或其他地方的变化? 或者我需要降级 hadoop 安装?

你试过Flink的Hadoop-2版本吗?看看 downloads page。有一个名为 flink-0.9.0-milestone-1-bin-hadoop2.tgz 的构建应该可以与 Hadoop 2 一起使用。