We get the following error using the latest ( r: 791199) hbase trunk. We
are running it in standalone mode.
09/07/05 21:56:42 INFO zookeeper.ZooKeeper: Initiating client connection,
host=localhost:2181 sessionTimeout=30000
watcher=org.apache.hadoop.hbase.zookeeper.watcherwrap...@42c4d04d
09/07/05 21:56:42 INFO zookeeper.ClientCnxn: Attempting connection to server
localhost/127.0.0.1:2181
09/07/05 21:56:42 INFO zookeeper.ClientCnxn: Priming connection to
java.nio.channels.SocketChannel[connected local=/127.0.0.1:37809
remote=localhost/127.0.0.1:2181]
09/07/05 21:56:42 INFO zookeeper.ClientCnxn: Server connection successful
09/07/05 21:56:42 WARN zookeeper.ClientCnxn: Exception closing session 0x0
to sun.nio.ch.selectionkeyi...@4e46b90a
java.io.IOException: Read error rc = -1 java.nio.DirectByteBuffer[pos=0
lim=4 cap=4]
at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:653)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:897)
09/07/05 21:56:42 WARN zookeeper.ZooKeeperWrapper: Failed to create /hbase:
org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase
at org.apache.zookeeper.KeeperException.create(KeeperException.java:90)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:522)
at
org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper.ensureExists(ZooKeeperWrapper.java:371)
at
org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper.ensureParentExists(ZooKeeperWrapper.java:392)
at
org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper.checkOutOfSafeMode(ZooKeeperWrapper.java:505)
at
org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRootRegion(HConnectionManager.java:844)
at
org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:514)
at
org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:490)
at
org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:564)
at
org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:523)
at
org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:490)
at
org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:564)
at
org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:527)
at
org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:490)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:124)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:84)
at PageRank$PageRankMap.map(PageRank.java:75)
at PageRank$PageRankMap.map(PageRank.java:47)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:363)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:312)
at
org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:178)
09/07/05 21:56:42 INFO mapred.JobClient: map 0% reduce 0%
09/07/05 21:56:43 INFO zookeeper.ClientCnxn: Attempting connection to server
localhost/127.0.0.1:2181
09/07/05 21:56:43 INFO zookeeper.ClientCnxn: Priming connection to
java.nio.channels.SocketChannel[connected local=/127.0.0.1:37810
remote=localhost/127.0.0.1:2181]
09/07/05 21:56:43 INFO zookeeper.ClientCnxn: Server connection successful
09/07/05 21:56:43 WARN zookeeper.ClientCnxn: Exception closing session 0x0
to sun.nio.ch.selectionkeyi...@2e257f1b
java.io.IOException: Read error rc = -1 java.nio.DirectByteBuffer[pos=0
lim=4 cap=4]
at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:653)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:897)
public class PageRank extends Configured implements Tool{
public static class PageRankMap extends MapReduceBase implements
Mapper<LongWritable, EdgeRecord, LongWritable, DoubleWritable> {
public void map(LongWritable key, EdgeRecord value,
OutputCollector<LongWritable, DoubleWritable> output, Reporter reporter)
throws IOException {
// Pagerank of the page
double pagerank = 1;
HBaseConfiguration hbc = new HBaseConfiguration();
HTable ht = new HTable(hbc, "PageRank");
Get g = new Get(Bytes.toBytes(value.getNode1()));
Result r = ht.get(g);
byte[] read_value;
if (r.containsColumn(Bytes.toBytes("pagerank"),
Bytes.toBytes("0"))) {
read_value = r.getValue(Bytes.toBytes("pagerank"),
Bytes.toBytes("0"));
pagerank = Double.parseDouble(new String(read_value));
}
System.out.println(value.getNode1() + " --> " +
pagerank);
int numoutlinks = 10;
output.collect(new LongWritable(value.getNode2()), new
DoubleWritable(pagerank));
}
}
public static class PageRankReduce extends MapReduceBase implements
Reducer<LongWritable, DoubleWritable, LongWritable, DoubleWritable> {
// The pagerank damping factor
private final double damping = 0.85;
public void reduce(LongWritable key, Iterator<DoubleWritable>
values,
OutputCollector<LongWritable, DoubleWritable> output, Reporter reporter)
throws IOException {
double pagerank = 0;
while (values.hasNext()) {
pagerank += values.next().get();
}
// Now apply the damping factor
pagerank = (1-damping) + damping * pagerank;
HTable ht = new HTable("PageRank");
Put p = new Put(Bytes.toBytes(key.get()));
p.add(Bytes.toBytes("pagerank"), Bytes.toBytes("0"), new
Double(pagerank).toString().getBytes());
ht.put(p);
output.collect(key, new DoubleWritable(pagerank));
}
}
public int run(String[] args) throws Exception {
JobConf conf = new JobConf(getConf(), PageRank.class);
HBaseConfiguration hbc = new HBaseConfiguration(getConf());
HBaseAdmin.checkHBaseAvailable(hbc);
HBaseAdmin hba = new HBaseAdmin(hbc);
if(hba.tableExists("PageRank")) {
hba.disableTable("PageRank");
hba.deleteTable("PageRank");
}
HTableDescriptor htd = new
HTableDescriptor("PageRank".getBytes());
htd.addFamily(new HColumnDescriptor("pagerank"));
hba.createTable(htd);
conf.setInputFormat(EdgeRecordInputFormat.class);
conf.setOutputFormat(TextOutputFormat.class);
conf.setMapOutputKeyClass(LongWritable.class);
conf.setMapOutputValueClass(DoubleWritable.class);
conf.setOutputKeyClass(LongWritable.class);
conf.setOutputValueClass(DoubleWritable.class);
conf.setMapperClass(PageRankMap.class);
conf.setReducerClass(PageRankReduce.class);
try {
FileInputFormat.setInputPaths(conf, other_args.get(0));
TextOutputFormat.setOutputPath(conf, new
Path(other_args.get(1)));
//format being matrixadd-matrixid1-matrixid2-sumid
String jobName = "PageRank computation";
conf.setJobName(jobName);
JobClient.runJob(conf);
}
catch(Exception e) {
e.printStackTrace();
System.out.println("Incorrect argument format!");
}
System.out.println("Outputs are - ");
String[] columns = new String[1];
columns[0] = "pagerank";
HTable ht = new HTable("PageRank");
double pagerank;
Scan s = new Scan();
s.addColumn(Bytes.toBytes("pagerank"), Bytes.toBytes("0"));
ResultScanner scanner = ht.getScanner(s);
try {
for (Result rr : scanner) {
System.out.println("Found row: " + rr);
}
} finally {
scanner.close();
}
System.out.println("Done!");
return 0;
}
- Naresh Rapolu
--
View this message in context:
http://www.nabble.com/ConnectionLoss-error-with-latest--hbase-trunk-%28-r%3A-791199%29-in-map-reduce-program-tp24348944p24348944.html
Sent from the HBase User mailing list archive at Nabble.com.