源碼:
package HbaseOperation;
import com.alibaba.fastjson.JSON;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class HbaseOperationServiceImpl implements HbaseOperationService {
public static final String FAMILY_NAME = "f1";
public static final String FAMILY_NAME_F2 = "f2";
public static final byte[] CF = Bytes.toBytes(FAMILY_NAME);
private static Connection connection = null;
private static volatile HbaseOperationServiceImpl instance;
private HbaseOperationServiceImpl() {
String ip = "192.168.184.128";
String port = "2181";
try {
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", ip);
conf.set("hbase.zookeeper.property.clientPort", port);
connection = ConnectionFactory.createConnection(conf);
System.out.println("創建connection!");
} catch (IOException e) {
e.printStackTrace();
}
}
public static HbaseOperationServiceImpl getIstance() {
// 定義一個共有的靜態方法,返回該類型實例
if (instance == null) {
// 對象實例化時與否判斷(不使用同步代碼塊,instance不等於null時,直接返回對象,提高運行效率)
synchronized (HbaseOperationServiceImpl.class) {
// 同步代碼塊(對象未初始化時,使用同步代碼塊,保證多線程訪問時對象在第一次創建后,不再重復被創建)
if (instance == null) {
// 未初始化,則初始instance變量
instance = new HbaseOperationServiceImpl();
}
}
}
return instance;
}
}
測試代碼:
public class test_hbase_oper {
public static void main(String args[]) {
HbaseOperationServiceImpl hbaseOperationObj = HbaseOperationServiceImpl.getIstance();
}
