所需要的包有:
commons-codec-1.4.jar
commons-logging-1.1.1.jar
hadoop-0.20.2-core.jar
hbase-0.90.2.jar
log4j-1.2.16.jar
zookeeper-3.3.2.jar
背景:
假設有一個不知道是幹什麼表:)
表裡需要存入人員和其相對應的部門資訊
代碼:
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
public class HbaseAddEdtDel {
public static Configuration configuration=null;
static {
configuration = HBaseConfiguration.create();
configuration.set("hbase.master", "192.168.0.201:60000");
configuration.set("hbase.zookeeper.quorum","192.168.0.201,192.168.0.202,192.168.0.203");
configuration.set("hbase.zookeeper.property.clientPort", "2181");
}
public static void main(String[] args) throws Exception {
HBaseAdmin admin = new HBaseAdmin(configuration);
if (admin.tableExists("riapguh")) {
System.out.println("刪除 table");
admin.disableTable("riapguh");
admin.deleteTable("riapguh");
}
//建立riapguh表
System.out.println("建立 table");
HTableDescriptor tableDescripter = new HTableDescriptor("riapguh".getBytes());//建立表
tableDescripter.addFamily(new HColumnDescriptor("user"));//建立列簇user
tableDescripter.addFamily(new HColumnDescriptor("dpt"));//建立列簇dpt
admin.createTable(tableDescripter);
HTable table = new HTable(configuration, "riapguh");
//插入資料
System.out.println("add riapguh data");
List<Put> putuser = new ArrayList<Put>();
Put user1 = new Put(new String("使用者A").getBytes());
//寫入使用者員資訊
user1.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_0001").getBytes());
user1.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_使用者A").getBytes());
//寫入部門資訊
user1.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_001").getBytes());
user1.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部門A").getBytes());
putuser.add(user1);