基于Java的HBase客户端编程.doc_第1页
基于Java的HBase客户端编程.doc_第2页
基于Java的HBase客户端编程.doc_第3页
基于Java的HBase客户端编程.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Java的HBase客户端编程本文以HBase 0.90.2为例,介绍如何在Windows系统,Eclipse IDE集成环境下,使用Java语言,进行HBase客户端编程,包含建立表、删除表、插入记录、删除记录、各种方式下的查询操作等。 AD: 本文以HBase 0.90.2为例,介绍如何在Windows系统,Eclipse IDE集成环境下,使用Java语言,进行HBase客户端编程,包含建立表、删除表、插入记录、删除记录、各种方式下的查询操作等。1. 准备工作1. 下载后安装jdk包(这里使用的是jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008); 2. 下载eclipse,解压到本地(这里使用的是eclipse-java-helios-SR2-win32); 3. 下载HBase包,解压安装包到本地(这里使用的是hbase-0.90.2)。 2. 搭建开发环境1. 运行Eclipse,创建一个新的Java工程“HBaseClient”,右键项目根目录,选择 “Properties”-“Java Build Path”-“Library”-“Add External JARs”,将HBase解压后根目录下的hbase-0.90.2.jar、hbase-0.90.2-tests.jar和lib子目录下所有jar 包添加到本工程的Classpath下。 2. 按照步骤1中的操作,将自己所连接的HBase的配置文件hbase-site.xml添加到本工程的Classpath中,如下所示为配置文件的一个示例: 1. 2. 3. hbase.rootdir4. hdfs:/hostname:9000/hbase5. 6. 7. hbase.cluster.distributed8. true9. 10. 11. hbase.zookeeper.quorum12. *.*.*.*,*.*.*.*,*.*.*.*13. 14. 15. hbase.defaults.for.version16. 0.90.217. 18. 3. 下面可以在Eclipse环境下进行HBase编程了。 3. HBase基本操作代码示例3.1 初始化配置1. privatestaticConfigurationconf=null;2. /*3. *初始化配置4. */5. static6. conf=HBaseConfiguration.create();7. 3.2 创建表1. /*2. *创建表操作3. *throwsIOException4. */5. publicvoidcreateTable(Stringtablename,Stringcfs)throwsIOException6. HBaseAdminadmin=newHBaseAdmin(conf);7. if(admin.tableExists(tablename)8. System.out.println(表已经存在!);9. 10. else11. HTableDescriptortableDesc=newHTableDescriptor(tablename);12. for(inti=0;icfs.length;i+)13. tableDesc.addFamily(newHColumnDescriptor(cfsi);14. 15. admin.createTable(tableDesc);16. System.out.println(表创建成功!);17. 18. 3.3 删除表1. /*2. *删除表操作3. *paramtablename4. *throwsIOException5. */6. publicvoiddeleteTable(Stringtablename)throwsIOException7. try8. HBaseAdminadmin=newHBaseAdmin(conf);9. admin.disableTable(tablename);10. admin.deleteTable(tablename);11. System.out.println(表删除成功!);12. catch(MasterNotRunningExceptione)13. e.printStackTrace();14. catch(ZooKeeperConnectionExceptione)15. e.printStackTrace();16. 17. 3.4 插入一行记录1. /*2. *插入一行记录3. *paramtablename4. *paramcfs5. */6. publicvoidwriteRow(Stringtablename,Stringcfs)7. try8. HTabletable=newHTable(conf,tablename);9. Putput=newPut(Bytes.toBytes(rows1);10. for(intj=0;jcfs.length;j+)11. put.add(Bytes.toBytes(cfsj),12. Bytes.toBytes(String.valueOf(1),13. Bytes.toBytes(value_1);14. table.put(put);15. 16. catch(IOExceptione)17. e.printStackTrace();18. 19. 3.5 删除一行记录1. /*2. *删除一行记录3. *paramtablename4. *paramrowkey5. *throwsIOException6. */7. publicvoiddeleteRow(Stringtablename,Stringrowkey)throwsIOException8. HTabletable=newHTable(conf,tablename);9. Listlist=newArrayList();10. Deleted1=newDelete(rowkey.getBytes();11. list.add(d1);12. table.delete(list);13. System.out.println(删除行成功!);14. 3.6 查找一行记录1. /*2. *查找一行记录3. *paramtablename4. *paramrowkey5. */6. publicstaticvoidselectRow(Stringtablename,StringrowKey)7. throwsIOException8. HTabletable=newHTable(conf,tablename);9. Getg=newGet(rowKey.getBytes();10. Resultrs=table.get(g);11. for(KeyValuekv:rs.raw()12. System.out.print(newString(kv.getRow()+);13. System.out.print(newString(kv.getFamily()+:);14. System.out.print(newString(kv.getQualifier()+);15. System.out.print(kv.getTimestamp()+);16. System.out.println(newString(kv.getValue();17. 18. 3.7 查询表中所有行1. /*2. *查询表中所有行3. *paramtablename4. */5. publicvoidscaner(Stringtablename)6. try7. HTabletable=newHTable(conf,tablename);8. Scans=newScan();9. ResultScannerrs=table.getScanner(s);10. for(Resultr:rs)11. KeyValuekv=r.raw();12. for(inti=0;ikv.length;i+)13. System.out.print(newString(kvi.getRow()+);14. System.out.print(newString(kvi.getFamily()+:);15. System.out.print

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论