我正在尝试使用来自 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 一起使用。
关于maven - Flink 错误 - org.apache.hadoop.ipc.RemoteException : Server IPC version 9 cannot communicate with client version 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30847667/