在我开始 MapReduce 作业之前,我成功地使用DataStax Java 驱动程序访问了我的 Java 代码中的 Cassandra。
cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
但是,我需要检查其他信息以根据每条记录决定如何减少记录。如果我尝试在 Hadoop Reducer 类中使用相同的代码,则无法连接并出现错误:
INFO mapred.JobClient: Task Id :
attempt_201310280851_0012_r_000000_1, Status : FAILED
com.datastax.driver.core.exceptions.NoHostAvailableException:
All host(s) tried for query failed (tried: /127.0.0.1 ([/127.0.0.1]
Unexpected error during transport initialization
(com.datastax.driver.core.TransportException: [/127.0.0.1] Error writing)))
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:186)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:81)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:662)
at com.datastax.driver.core.Cluster$Manager.access$100(Cluster.java:604)
at com.datastax.driver.core.Cluster.<init>(Cluster.java:69)
at com.datastax.driver.core.Cluster.buildFrom(Cluster.java:96)
at com.datastax.driver.core.Cluster$Builder.build(Cluster.java:585)
MapReduce 输入和输出将成功读取和写入 Cassandra。正如我所提到的,我可以在运行作业之前进行连接,所以我认为这不是 Cassandra 服务器的问题。