eclipse+hbase环境搭建

搭建eclipse开发环境步骤:

1.    环境准备,解压hadoop-common-2.2.0-bin-master.zip放到任意目录。然后在window系统配置用户环境变量HADOOP_HOME,值为解压的目录;修改配置系统环境变量Path,增加%HADOOP_HOME%\bin,之后可能需要重启电脑使系统环境变量生效,若你不想重启,可在往后的代码里增加一行代码:

System.setProperty("hadoop.home.dir", "E:\\ProgramFiles\\hadoop-2.7.0");

E:\\Program Files\\hadoop-2.7.0为解压的目录

 

2.    新建一个java 项目,将日志文件log4j.properties放到src目录下;在该项目下新建一个conf文件夹,将mapred-site.xmlcore-site.xml,hdfs-site.xml, hbase-site.xml放到conf文件夹中。

 

3.    Bulid Path --> configure build path --> Libraries --> Add Class Folderconf文件夹加到工程

 

4.    通过Bulid Path --> configure build path --> Libraries --> Add External jarshbaselib目录下的相关jar包加到工程中 (也可以在java项目中新建一个lib文件夹,把相关jar包放到lib文件夹中,然后将lib文件夹中的jar包通过Build Path --> Add to Bulid Path )

 

5.    window系统C:\Windows\System32\drivers\etc目录下修改hosts文件,增加集群映射路径,

                                   10.195.244.103 hdp39.xxx.com

10.195.244.104 hdp40.xxx.com

10.195.244.105 hdp41.xxx.com

 

6.    建包建类,如建一个HBaseTest测试类,下面代码包括一些对hbase的简单操作。

package 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 {
      //System.setProperty("hadoop.home.dir", "E:\\ProgramFiles\\hadoop-2.7.0");
      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 = "sscores2";
            String[] familys = { "grade", "course" };
            HBaseTest.creatTable(tablename, familys);

            // add record zkb
            HBaseTest.addRecord(tablename, "zkb", "grade", "", "5");
            HBaseTest.addRecord(tablename, "zkb", "course", "chinese", "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();
          }
        }
  }

 

猜你喜欢

转载自blog.csdn.net/bilibili_CSDN/article/details/79131785
0条评论
添加一条新回复