eclipse+HBASE开发环境搭建(已实践)

来源:互联网 发布:node.js版本 编辑:程序博客网 时间:2024/06/13 01:52

原文地址:http://www.aboutyun.com/thread-7149-1-1.html


Eclipse版本:Kepler Service Release 1
操作系统:Ubuntu13.04
Hadoop:2.2.0 
HBase:0.96.0 
编译可参考:
hbase与hadoop2.X在CentOS6.4下源码编译

1:从HBase集群中复制一份Hbase部署文件,放置在开发端某一目录下(如在/app/hadoop/hbase096目录下)。
2:在eclipse里新建一个java项目HBase,然后选择项目属性,在Libraries->Add External JARs...,然后选择/app/hadoop/hbase096/lib下相关的JAR包,如果只是测试用的话,就简单一点,将所有的JAR选上。
 




 





3:在项目HBase下增加一个文件夹conf,将Hbase集群的配置文件hbase-site.xml复制到该目录,然后选择项目属性在Libraries->Add Class Folder,将刚刚增加的conf目录选上。


 




 



  

 

建立类:

package com.hbase.demo;//package com.eric.hbase;import java.io.IOException;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.KeyValue;import org.apache.hadoop.hbase.MasterNotRunningException;import org.apache.hadoop.hbase.ZooKeeperConnectionException;import org.apache.hadoop.hbase.client.Delete;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HBaseAdmin;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.util.Bytes;public class HBaseTest {    private static final String TABLE_NAME = "demo_table";      public static Configuration conf = null;      public HTable table = null;      public HBaseAdmin admin = null;      static {        conf = HBaseConfiguration.create();        System.out.println(conf.get("hbase.zookeeper.quorum"));      }      /**       * 创建一张表       */      public static void creatTable(String tableName, String[] familys)          throws Exception {        HBaseAdmin admin = new HBaseAdmin(conf);        if (admin.tableExists(tableName)) {          System.out.println("table already exists!");        } else {          HTableDescriptor tableDesc = new HTableDescriptor(tableName);          for (int i = 0; i < familys.length; i++) {            tableDesc.addFamily(new HColumnDescriptor(familys[i]));          }          admin.createTable(tableDesc);          System.out.println("create table " + tableName + " ok.");        }      }      /**       * 删除表       */      public static void deleteTable(String tableName) throws Exception {        try {          HBaseAdmin admin = new HBaseAdmin(conf);          admin.disableTable(tableName);          admin.deleteTable(tableName);          System.out.println("delete table " + tableName + " ok.");        } catch (MasterNotRunningException e) {          e.printStackTrace();        } catch (ZooKeeperConnectionException e) {          e.printStackTrace();        }      }      /**       * 插入一行记录       */      public static void addRecord(String tableName, String rowKey,          String family, String qualifier, String value) throws Exception {        try {          HTable table = new HTable(conf, tableName);          Put put = new Put(Bytes.toBytes(rowKey));          put.add(Bytes.toBytes(family), Bytes.toBytes(qualifier),              Bytes.toBytes(value));          table.put(put);          System.out.println("insert recored " + rowKey + " to table "              + tableName + " ok.");        } catch (IOException e) {          e.printStackTrace();        }      }      /**       * 删除一行记录       */      public static void delRecord(String tableName, String rowKey)          throws IOException {        HTable table = new HTable(conf, tableName);        List list = new ArrayList();        Delete del = new Delete(rowKey.getBytes());        list.add(del);        table.delete(list);        System.out.println("del recored " + rowKey + " ok.");      }      /**       * 查找一行记录       */      public static void getOneRecord(String tableName, String rowKey)          throws IOException {        HTable table = new HTable(conf, tableName);        Get get = new Get(rowKey.getBytes());        Result rs = table.get(get);        for (KeyValue kv : rs.raw()) {          System.out.print(new String(kv.getRow()) + " ");          System.out.print(new String(kv.getFamily()) + ":");          System.out.print(new String(kv.getQualifier()) + " ");          System.out.print(kv.getTimestamp() + " ");          System.out.println(new String(kv.getValue()));        }      }      /**       * 显示所有数据       */      public static void getAllRecord(String tableName) {        try {          HTable table = new HTable(conf, tableName);          Scan s = new Scan();          ResultScanner ss = table.getScanner(s);          for (Result r : ss) {            for (KeyValue kv : r.raw()) {              System.out.print(new String(kv.getRow()) + " ");              System.out.print(new String(kv.getFamily()) + ":");              System.out.print(new String(kv.getQualifier()) + " ");              System.out.print(kv.getTimestamp() + " ");              System.out.println(new String(kv.getValue()));            }          }        } catch (IOException e) {          e.printStackTrace();        }      }                public static void main(String[] args) {        // TODO Auto-generated method stub         try {              String tablename = "scores";              String[] familys = { "grade", "course" };              HBaseTest.creatTable(tablename, familys);              // add record zkb              HBaseTest.addRecord(tablename, "zkb", "grade", "", "5");              HBaseTest.addRecord(tablename, "zkb", "course", "", "90");              HBaseTest.addRecord(tablename, "zkb", "course", "math", "97");              HBaseTest.addRecord(tablename, "zkb", "course", "art", "87");              // add record baoniu              HBaseTest.addRecord(tablename, "baoniu", "grade", "", "4");              HBaseTest                  .addRecord(tablename, "baoniu", "course", "math", "89");              System.out.println("===========get one record========");              HBaseTest.getOneRecord(tablename, "zkb");              System.out.println("===========show all record========");              HBaseTest.getAllRecord(tablename);              System.out.println("===========del one record========");              HBaseTest.delRecord(tablename, "baoniu");              HBaseTest.getAllRecord(tablename);              System.out.println("===========show all record========");              HBaseTest.getAllRecord(tablename);            } catch (Exception e) {              e.printStackTrace();            }          }    }


测试通过





0 0