2013-09-24 76 views
0

我试图在DataStax 3.1中运行Haddoop mapreduce作业,并收到此错误。任何想法是什么原因?作业跟踪器的未知协议

产生的原因:org.apache.hadoop.ipc.RemoteException:java.io.IOException异常:未知协议作业服务器:org.apache.hadoop.hdfs.protocol.ClientProtocol 在org.apache.hadoop.mapred。 JobTracker.getProtocolVersion(JobTracker.java:347) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcc

回答

1

引用Hadoop的源文档:

org.apache.hadoop.hdfs.protocol.ClientProtocol由用户代码通过org.apache.hadoop.hdfs.DistributedFileSystem类使用与NameNode进行通信。

DSE不附带NameNodes和DataNodes - 它们是Apache Hadoop HDFS的一部分,在DSE中它们已被Cassandra文件系统替代。

堆栈跟踪显示您正在使用HDFS协议连接到JobTracker节点,这表明您不正确地整理作业。

随着DSE你应该通过调用提交您的M/R工作:

dse hadoop jar <your M/R jar file> <your M/R main class> [args] 

并访问卡桑德拉文件系统:

dse hadoop fs <file system command> [args] 

您可以找到DSE Hadoop Documentation的更多信息。