一开始是RPC.getProxy这个方法编译不通过,按照提示继承了VersionedProtocol还是不行,接着对RPC.getProxy进行强转,
总算没问题了,然后运行。。。。
好戏才刚开始,
,会提示报Server IPC version 9 cannot communicate with client version 4,这个问题搞了好久都没解决。。。。
其实根本原因 dependencies里面有个hadoop-core的包,版本太低,这样,工程中org.apache.hadoop都是1.2.1版本的,这个就是那个“ipc client version4”, 而电脑里运行的hadoop是2.4的,版本不对。
解决方法好像只能改下配置文件
把原来的1.2.1的
dependency
换成
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.5.1</version> </dependency>
更新下,运行通过。。。