分享

在eclipse中开发HBase程序的示例

1.hbase目录中的lib中的jar包导入,然后将src目录中的java下的包导入。
2.示例程序:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Writer;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
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.util.Bytes;
public class server {
    public static void main(String args[]) {
        try
        {
            HBaseConfiguration config =new HBaseConfiguration();//获得Hbase配置参数  
            //config.clear();
            config.set("hbase.master","10.28.0.185:60000");
            config.set("hbase.zookeeper.quorum","10.28.0.186,10.28.0.187,10.28.0.188");
        //  config.set("hbase.rootdir", "hdfs://localhost.localdomain:9000/hbase");
            //config.set("hbase.cluster.distributed","true");
            config.set("hbase.zookeeper.property.clientPort", "2223");
            //config.set("zookeeper.session.timeout","60000");
        //  config.set("hbase.regionserver.port", "61234");
            config.set("hbase.master.port", "62345");
            //config.set("HBASE_MANAGER_ZK", "true");
            HBaseAdmin admin =new HBaseAdmin(config);//新建一个数据库管理员  
            if (admin.tableExists("info")) {  
                System.out.println("drop table");  
                admin.disableTable("info");//关闭一个表  
                admin.deleteTable("info");//删除一个表  
            }  
            System.out.println("create table");  
            HTableDescriptor tableDescripter =new HTableDescriptor("info".getBytes());//新建一个scores表的描述  
            tableDescripter.addFamily(new HColumnDescriptor("details:"));//在描述里添加列族  
            admin.createTable(tableDescripter);//根据配置好的描述建表  
            HTable htable =new HTable(config,"info");//返回表scores的实例

            htable.setAutoFlush(true);
            htable.setWriteBufferSize(1024 * 1024 * 100);

            byte[] rowkey = Bytes.toBytes(1);
            Put put = new Put(rowkey);
            put.add(Bytes.toBytes("details"),Bytes.toBytes("name"),Bytes.toBytes("liuyue"));
            put.add(Bytes.toBytes("details"),Bytes.toBytes("num"),Bytes.toBytes("24"));
            put.add(Bytes.toBytes("details"),Bytes.toBytes("time"),Bytes.toBytes("2011"));
            htable.put(put);

            htable.flushCommits();

            Get get=new Get(Bytes.toBytes(1));//新建Get实例,用来根据条件返回一个指定行里的数据  
            Result r=htable.get(get);//返回一个指定行里的数据  
            byte[] value1 = r.getValue(Bytes.toBytes("details:name"));
            byte[] value2 = r.getValue(Bytes.toBytes("details:num"));
            byte[] value3 = r.getValue(Bytes.toBytes("details:time"));//根据列key=course:math,返回value

            System.out.println(new String(value1));
            System.out.println(new String(value2));
            System.out.println(new String(value3));
            htable.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}
大家有问题,可以回帖留言

已有(2)人评论

跳转到指定楼层
lzw 发表于 2013-12-22 19:00:50
你开发连接hbase过于复杂了,你只要在本地配置一下hosts文件,像我代码如下:
  1. package com.duplicate.local;
  2. import java.io.IOException;
  3. import org.apache.hadoop.conf.Configuration;
  4. import org.apache.hadoop.hbase.HBaseConfiguration;
  5. import org.apache.hadoop.hbase.client.HTableInterface;
  6. import org.apache.hadoop.hbase.client.HTablePool;
  7. import org.apache.hadoop.hbase.client.Result;
  8. import org.apache.hadoop.hbase.client.ResultScanner;
  9. import org.apache.hadoop.hbase.client.Scan;
  10. import org.apache.hadoop.hbase.util.Bytes;
  11. public class ConnectionHbase {
  12.         private static HTablePool pool = null;
  13.         /**
  14.          * @param args
  15.          */
  16.         public static void main(String[] args) {
  17.                 ConnectionHbase hbase = new ConnectionHbase();
  18.                 hbase.run();
  19.         }
  20.         public void run() {
  21.                 // TODO Auto-generated method stub
  22.                 Configuration conf = HBaseConfiguration.create();
  23.                 HTableInterface testHTable = null;
  24.                 conf.set("hbase.zookeeper.quorum", "192.168.0.101");
  25.                 pool = new HTablePool(conf, 10);
  26.                 testHTable = pool.getTable("TestCars");
  27.                 Scan scan = new Scan();
  28.                 try {
  29.                         ResultScanner res = testHTable.getScanner(scan);
  30.                         for(Result rs : res){
  31.                                 System.out.println(Bytes.toString(rs.getRow()));
  32.                         }
  33.                 } catch (IOException e) {
  34.                         // TODO Auto-generated catch block
  35.                         e.printStackTrace();
  36.                 }
  37.         }
  38. }
复制代码
回复

使用道具 举报

刚果 发表于 2015-9-11 15:25:32
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条