我是Cassandra的新手。我想在3个节点上安装cassandra-0.8.4并运行Map / Reduce作业,将数据从HDFS上传到Cassandra。
我已经在3个节点lab02(199.168.0.2),lab03(199.168.0.3)&上安装了Cassnadra。 lab04(199.168.0.4)分别可以创建一个密钥空间&列系列,它们分布在整个集群中。
当我运行map / reduce程序时,它以“UnknownHostException”结束。相同的map / reduce程序在单节点集群上运行良好。
以下是我遵循的步骤。
lab02(199.168.0.2):(种子节点)
auto_bootstrap:false seeds:“199.168.0.2”listen_address:199.168.0.2 rpc_address:199.168.0.2
lab03(199.168.0.3):auto_bootstrap:true seeds:“199.168.0.2” listen_address:199.168.0.3 rpc_address:199.168.0.3
lab04(199.168.0.4):auto_bootstrap:true seeds:“199.168.0.2” listen_address:199.168.0.4 rpc_address:199.168.0.4
2。 当我运行map / reduce程序时,它最终以“UnknownHostException”
结束错误:的java.net.UnknownHostException:/199.168.0.2在java.net.Inet6AddressImpl.lookupAllHostAddr(本机方法)在java.net.InetAddress中$ 1.lookupAllHostAddr(InetAddress.java:849)在java.net.InetAddress中。 getAddressFromNameService(InetAddress.java:1200)在java.net.InetAddress.getAllByName0(InetAddress.java:1153)在java.net.InetAddress.getAllByName(InetAddress.java:1083)在java.net.InetAddress.getAllByName(InetAddress.java :1019)在java.net.InetAddress.getByName(InetAddress.java:969)在org.apache.cassandra.client.RingCache.refreshEndpointMap(RingCache.java:93)在org.apache.cassandra.client.RingCache(RingCache。的.java:67)在org.apache.cassandra.hadoop.ColumnFamilyRecordWriter(ColumnFamilyRecordWriter.java:98)在org.apache.cassandra.hadoop.ColumnFamilyRecordWriter(ColumnFamilyRecordWriter.java:92)在org.apache.cassandra.hadoop。 ColumnFamilyOutputFormat.getRecordWriter(ColumnFamilyOutputFormat.java:132)在org.apache.cassandra.hadoop.ColumnFamilyOutputFormat.getRecordWriter(ColumnF amilyOutputFormat.java:62)在org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:553)在org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:408)在org.apache.hadoop .mapred.Child.main(Child.java:170)
以下是map / reduce的配置行。
job4.setReducerClass(TblUploadReducer.class );
job4.setOutputKeyClass(ByteBuffer.class);
job4.setOutputValueClass(List.class);
job4.setOutputFormatClass(ColumnFamilyOutputFormat.class);
ConfigHelper.setOutputColumnFamily(job4.getConfiguration(), args[1],args[3] );
ConfigHelper.setRpcPort(job4.getConfiguration(), args[7]); // 9160
ConfigHelper.setInitialAddress(job4.getConfiguration(), args[9]); // 199.168.0.2
ConfigHelper.setPartitioner(job4.getConfiguration(), "org.apache.cassandra.dht.RandomPartitioner");
我已验证的步骤
请帮我解决上述问题。
此致 Thamizhannal
答案 0 :(得分:3)
这已经在0.8提示中得到解决:https://issues.apache.org/jira/browse/CASSANDRA-3044
答案 1 :(得分:1)
它试图查找文字字符串“/199.168.0.2”作为地址,这确实无效。如果这是来自您的配置,请删除斜杠。否则,它可能来自RingCache,这将是一个错误。如果是这样,首先升级到0.7.8以确保它尚未修复。如果问题仍然存在,请在https://issues.apache.org/jira/browse/CASSANDRA上打开错误。
编辑:Nate是对的,这是0.8.4中已知的错误,固定为0.8.5。