私はHbaseに非常に慣れていません。Hbase をスタンドアロン モードで使用し、Google n-gram を使用してアプリケーションを開発しています。Amazon Ec2 インスタンスで ubuntu ボックスを使用しています
バッチ API を介してプログラムを使用して 100 万回の書き込みを行っています。
HTable table = new HTable(conf, tableName);
conf.set("zookeeper.session.timeout", "180000");
conf.set("hbase.rpc.timeout", "180000");
conf.set("hbase.regionserver.logroll.period", "180000");
conf.set("hbase.hregion.max.filesize","51200");
table.setAutoFlush(false);
table.batch(iterateList);
table.flushCommits();
これを 1M 行で実行すると、以下の順序で次の例外が発生します。
12/08/28 14:17:13 INFO zookeeper.ClientCnxn: Unable to read additional data from server sessionid 0x1396d9653bd0004, likely server has closed socket, closing socket connection and attempting reconnect
12/08/28 14:17:13 INFO zookeeper.ClientCnxn: Unable to read additional data from server sessionid 0x1396d9653bd0003, likely server has closed socket, closing socket connection and attempting reconnect
12/08/28 14:17:13 WARN client.HConnectionManager$HConnectionImplementation: Failed all from region=googlegrams,,1346160551634.abc8baf335dee8485d64a6c8b989d6b0., hostname=ip-10-80-74-132.ec2.internal, port=45549
java.util.concurrent.ExecutionException: java.io.IOException: ip-10-80-74-132.ec2.internal/10.80.74.132:45549 への呼び出しがローカル例外で失敗しました: java.io.EOFException
その後
12/08/28 14:17:15 WARN zookeeper.ClientCnxn: Session 0x1396d9653bd0004
for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:286)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1035)
私が試したいくつかのことは、1. ubuntuのulimitおよびnproc設定の変更2. Zookeeperタイムアウト、rpcタイムアウトlogroll期間、hregionファイルサイズなどのHbase構成
助けてください!
乾杯、ドワラック