eclipse 连接并操作单机版Hbase
2014-10-14 21:40
405 查看
在自己电脑上面配置了一个单击版的Hbase,想用Eclipse来连接并操作Hbase,看了网上一些教程基本上都是配置的分布式的Hbase集群。
自己试着能让单机版的HBase在eclipse下面跑起来。
单机版的Hbase配置比较简单,文件系统直接用的本地文件系统,不像分布式下面需要HDFS
首先启动Hbase
启动后在本地网页中输入
http://localhost:60010/ 会显示一些基本的信息
然后打开Hbase shell
这是Hbase已经启动了
下面开始搭建eclipse环境
1 新建一个java项目 取名为 HbaseTest
2 导入相关的Jar包(包位于Hbase lib 文件下面)
有
3:在项目HBase下增加一个文件夹conf,将Hbase集群的配置文件hbase-site.xml复制到该目录,然后选择项目属性在Libraries->Add Class Folder,将刚刚增加的conf目录选上。
我的hbase-site.xml配置如下
4:在建好的项目中新建一个包和新建一个类
编辑如下测试代码
5:设置运行配置,然后运行.
运行结果如下:
可以看到已经在Hbase中建好了表
查看数据 scan ‘hbase_tb’
至此,我们就能够用eclipse来在单机Hbase中进行操作了
自己试着能让单机版的HBase在eclipse下面跑起来。
单机版的Hbase配置比较简单,文件系统直接用的本地文件系统,不像分布式下面需要HDFS
首先启动Hbase
<span style="font-size:18px;">root@bigfish-System-Product-Name:/usr/local/hbase-0.92.1/bin# ./start-hbase.sh starting master, logging to /usr/local/hbase-0.92.1/bin/../logs/hbase-root-master-bigfish-System-Product-Name.out root@bigfish-System-Product-Name:/usr/local/hbase-0.92.1/bin# </span>
启动后在本地网页中输入
http://localhost:60010/ 会显示一些基本的信息
然后打开Hbase shell
<span style="font-size:18px;">root@bigfish-System-Product-Name:/usr/local/hbase-0.92.1/bin# ./hbase shell HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 0.92.1, r1298924, Fri Mar 9 16:58:34 UTC 2012 hbase(main):001:0> list TABLE mytable 2 row(s) in 0.7870 seconds </span>
这是Hbase已经启动了
下面开始搭建eclipse环境
1 新建一个java项目 取名为 HbaseTest
2 导入相关的Jar包(包位于Hbase lib 文件下面)
有
3:在项目HBase下增加一个文件夹conf,将Hbase集群的配置文件hbase-site.xml复制到该目录,然后选择项目属性在Libraries->Add Class Folder,将刚刚增加的conf目录选上。
我的hbase-site.xml配置如下
<span style="font-size:18px;"><configuration> <property> <name>hbase.rootdir</name> <value>file:///home/bigfish/myhbase1/</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/bigfish/myhbase1/zookeeper</value> </property> </configuration></span>
4:在建好的项目中新建一个包和新建一个类
编辑如下测试代码
<span style="font-size:18px;">package bigfish.com; import java.io.IOException; 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.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 HBaseTestCase { //声明静态配置 HBaseConfiguration static Configuration cfg=HBaseConfiguration.create(); //创建一张表,通过HBaseAdmin HTableDescriptor来创建 public static void creat(String tablename,String columnFamily) throws Exception { HBaseAdmin admin = new HBaseAdmin(cfg); if (admin.tableExists(tablename)) { System.out.println("table Exists!"); System.exit(0); } else{ HTableDescriptor tableDesc = new HTableDescriptor(tablename); tableDesc.addFamily(new HColumnDescriptor(columnFamily)); admin.createTable(tableDesc); System.out.println("create table success!"); } } //添加一条数据,通过HTable Put为已经存在的表来添加数据 public static void put(String tablename,String row, String columnFamily,String column,String data) throws Exception { HTable table = new HTable(cfg, tablename); Put p1=new Put(Bytes.toBytes(row)); p1.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column), Bytes.toBytes(data)); table.put(p1); System.out.println("put '"+row+"','"+columnFamily+":"+column+"','"+data+"'"); } public static void get(String tablename,String row) throws IOException{ HTable table=new HTable(cfg,tablename); Get g=new Get(Bytes.toBytes(row)); Result result=table.get(g); System.out.println("Get: "+result); } //显示所有数据,通过HTable Scan来获取已有表的信息 public static void scan(String tablename) throws Exception{ HTable table = new HTable(cfg, tablename); Scan s = new Scan(); ResultScanner rs = table.getScanner(s); for(Result r:rs){ System.out.println("Scan: "+r); } } public static boolean delete(String tablename) throws IOException{ HBaseAdmin admin=new HBaseAdmin(cfg); if(admin.tableExists(tablename)){ try { admin.disableTable(tablename); admin.deleteTable(tablename); }catch(Exception ex){ ex.printStackTrace(); return false; } } return true; } public static void main (String [] agrs) { String tablename="hbase_tb"; String columnFamily="cf"; try { HBaseTestCase.creat(tablename, columnFamily); HBaseTestCase.put(tablename, "row1", columnFamily, "cl1", "data"); HBaseTestCase.get(tablename, "row1"); HBaseTestCase.scan(tablename); /* if(true==HBaseTestCase.delete(tablename)) System.out.println("Delete table:"+tablename+"success!"); */ } catch (Exception e) { e.printStackTrace(); } } }</span>
5:设置运行配置,然后运行.
运行结果如下:
<span style="font-size:18px;">create table success! put 'row1','cf:cl1','data' Get: keyvalues={row1/cf:cl1/1413277900260/Put/vlen=4} Scan: keyvalues={row1/cf:cl1/1413277900260/Put/vlen=4} </span>
可以看到已经在Hbase中建好了表
<span style="font-size:18px;">hbase(main):001:0> list TABLE hbase_tb mytable 2 row(s) in 0.7870 seconds</span>
查看数据 scan ‘hbase_tb’
<span style="font-size:18px;">hbase(main):002:0> scan 'hbase_tb' ROW COLUMN+CELL row1 column=cf:cl1, timestamp=1413277900260, value=data 1 row(s) in 0.1700 seconds </span>
至此,我们就能够用eclipse来在单机Hbase中进行操作了
相关文章推荐
- eclipse远程连接操作hbase数据库
- win7系统eclipse远程连接虚拟机中的centos6.5,对hbase进行操作
- windows10上安装单机版hbase到使用eclipse连接简单使用hbase
- Java 连接hbase 进行简单操作
- 利用javaApI【eclipse】操作HBase时,出现异常的解决方案
- [Hbase]eclipse下操作hbase
- Ubuntu 14.10 下Eclipse操作HBase
- eclipse远程操作hbase
- 在eclipse操作hbase时,遇到的问题
- Eclipse下连接 操作数据库的方法
- eclipse远程连接hbase遇到的问题
- 本地Eclipse连接HDFS进行简单的文件操作
- hadoop+hbase+zookeeper 分布式集群搭建 + eclipse远程连接hdfs 完美运行
- eclipse连接hbase
- hadoop+hbase+zookeeper 分布式集群搭建 + eclipse远程连接hdfs 完美运行
- HBase在win7下eclipse中Java实现对表的操作报错解决
- Hbase的安装及配置、eclipse 操作示例
- HBase实现表的连接操作-1_____MultipleInputs实现多Mapper和单Reducer的组合
- HBase的eclipse操作Java API
- hadoop+hbase+zookeeper 分布式集群搭建 + eclipse远程连接hdfs 完美运行