最近版本的hbase中,已经用Table类取代了原来的HTableInterface的,获取接连的方式也变为Connection类来获取.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTableInterface;
import org.apache.hadoop.hbase.client.Table;
/**
* Hbase管理类,相当于工厂类
* @author jianting.zhao
*
*/
public class HBaseDriverManager {
public static Configuration conf = null;
private static Connection conn;
private static int POOL_MAX_SIEZE = 500;
public static Configuration getHbaseConf(){
return conf;
}
static {
conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "10.200.42.1,10.200.42.2,10.200.42.3");
// conf.set("hbase.zookeeper.quorum", "10.201.194.131,10.201.194.132,10.201.194.133");
conf.set("hbase.zookeeper.property.clientPort", "2181");
conf.set("hbase.master.port", "60000");
try {
conn = ConnectionFactory.createConnection(conf);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static HBaseAdmin getHBaseAdmin() throws IOException{
HBaseAdmin hbaseAdmin = null;
try {
hbaseAdmin = (HBaseAdmin)(conn.getAdmin());
} catch (MasterNotRunningException e) {
e.printStackTrace();
} catch (ZooKeeperConnectionException e) {
e.printStackTrace();
}
return hbaseAdmin;
}
public static synchronized Table getHtable(String tableName) throws IOException{
if(conn!=null){
return conn.getTable(TableName.valueOf(tableName));
}else{
try {
conn = ConnectionFactory.createConnection(conf);
return conn.getTable(TableName.valueOf(tableName));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStac