我正在尝试在DataStax 3.1中运行Hadoop mapreduce作业,并收到此错误。有什么原因的想法吗?
造成原因:org.apache.hadoop.ipc.RemoteException:java.io.IOException:作业跟踪程序的未知协议(protocol):org.apache.hadoop.hdfs.protocol.ClientProtocol
在org.apache.hadoop.mapred.JobTracker.getProtocolVersion(JobTracker.java:347)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcc
最佳答案
引用Hadoop源文档:
DSE不随NameNode或DataNode一起提供-它们是Apache Hadoop HDFS的一部分,而在DSE中,它们已被Cassandra File System取代。
您正在使用HDFS协议(protocol)连接到JobTracker节点的stacktrace状态,这表明您错误地为作业添加了作业。
使用DSE,您应该通过以下方式提交M / R职位:
dse hadoop jar <your M/R jar file> <your M/R main class> [args]
并访问Cassandra文件系统:
dse hadoop fs <file system command> [args]
您可以在DSE Hadoop Documentation中找到更多信息。
关于hadoop - 作业跟踪器的未知协议(protocol),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18986549/