1.Hbase获取连接:
public class HbaseConnection {
private static Configuration config;
private static HConnection hconn;
private static final Logger LOGGER = LoggerFactory
.getLogger(HbaseConnection.class);
public static synchronized Configuration getConfiguration() {
if (config == null) {
try {
config = HBaseConfiguration.create();
config.set("hbase.zookeeper.property.clientPort",
Constants.HBASE_PORT);
config.set("hbase.zookeeper.quorum", Constants.HBASE_IPADDRESS);
// config.set("hbase.master", Constants.HBASE_MASTER);
config.set("hbase.client.retries.number", "1");
} catch (Exception e) {
e.printStackTrace();
LOGGER.error("init HBaseConfiguration error ... "
+ e.getMessage());
}
}
return config;
}
public static synchronized HConnection getHConnection() {
if (hconn == null) {
try {
hconn = HConnectionManager.createConnection(getConfiguration());
} catch (IOException e) {
e.printStackTrace();
LOGGER.error("init HConnection error ... " + e.getMessage());
}
}
return hconn;
}
}
2.示例:
HTableInterface table = null;
try {
table = HbaseConnection.getHConnection().getTable(Constants.TABLE_CONVERSATION);
table.setWriteBufferSize(Constants.HBASE_AUTO_COMMIT);//设置缓冲区,达到大小后提交
table.setAutoFlush(false, false);//关闭自动提交
} catch (IOException e) {
Utils.printStackTrace(e);
}
...
Put put = new Put(Bytes.toBytes(rowkey));
put.add(family, Bytes.toBytes(key),Bytes.toBytes(value));
...
try {
table.put(put);
} catch (IOException e) {
Utils.printStackTrace(e);
}
try {
table.flushCommits();
} catch (IOException e) {
Utils.printStackTrace(e);
} finally {
try {
table.close();
} catch (IOException e) {
Utils.printStackTrace(e);
}
}