版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《HBase分布式数据库实战》HBase分布式数据库实战项目五HBaseAPI开发
任务一HBase常用JavaAPI回顾知识点1
HBaseShell操作回顾回顾知识点2Help命令回顾知识点3General命令回顾知识点4DDL命令回顾知识点5namespace命令回顾知识点6DML命令任务引入在日常工作中,会遇到HBaseShell无法满足需求的情况,这时就需要使用API进行编程来满足复杂需求,本任务将介绍HBase中一些常用API的用法。任务概要任务描述:从本任务开始,我们将进入HBase开发部分的学习,本任务将介绍HBase中常用的JavaAPI接口,对其功能和常用方法做简要说明,然后给出实例来介绍如何使用这些方法。任务教学目标:掌握常用的HBaseJavaAPI功能及用法。掌握HBaseAPI开发流程。一HBase常用API二HBase编程实例教学内容HBase常用API知识点一(一)HBase常用APIAdmin类常用方法返回值方法作用void(why,e)终止服务器或客户端voidaddColumn(TableNametableName,HColumnDescriptorcolumn)向一个已存在的表添加列booleanbalancer调用balancer进行负载均衡voidcreateTable(HTableDescriptordesc)创建表voiddeleteTable(TableNametableName)删除表void(tableName)禁用表voidenableTable(TableNametableName)启用表HTableDescriptorlistTableDescriptorsByNamespace(Stringname)按照命名空间列出表项booleantableExists(TableNametableName)表是否存在1.org.apache.hadoop.hbase.client.Admin(一)HBase常用APIHBaseConfiguration类常用方法返回值方法作用staticorg.apache.hadoop.conf.ConfigurationaddHbaseResources(org.apache.hadoop.conf.Configurationconf)向当前配置中添加配置信息staticorg.apache.hadoop.conf.Configurationcreate()使用默认的HBase配置创建staticvoidmerge(org.apache.hadoop.conf.ConfigurationdestConf,org.apache.hadoop.conf.ConfigurationsrcConf)合并两个配置文件2.org.apache.hadoop.hbase.HBaseConfiguration(一)HBase常用APIHTable类常用方法返回值方法作用voidclose()释放缓冲区资源,根据数据变化更新Tablevoiddelete(Deletedelete)删除表中指定的单元格或行booleanexists(Getget)检查指定的列是否存在get(Getget)从指定位置取出相应的值voidput(Putput)向指定位置添加值ResultScannergetScanner(Scanscan)获得ResultScanner实例3.HTable类常用方法(一)HBase常用APIHTableDescriptor类常用方法返回值方法作用HTableDescriptoraddFamily(HColumnDescriptorfamily)添加列族Collection<HColumnDescriptor>getFamilies()返回列表中所有列族的名字TableNamegetTableName()返回表的名字byte[]getValue(byte[]key)获得某个属性的值HColumnDescriptorremoveFamily(byte[]column)删除某个列族HTableDescriptorsetValue(byte[]key,byte[]value)设置属性的值4.org.apache.hadoop.hbase.HTableDescriptor(一)HBase常用APIHColumnDescriptor类常用方法返回值方法作用byte[]getName()获取列族的名字byte[](byte[]key)获取某列某单元格的值HColumnDescriptorsetValue(byte[]key,byte[]value)设置某单元格的值5.org.apache.hadoop.hbase.HColumnDescriptor(一)HBase常用APIPut类常用方法返回值方法作用PutaddColumn(byte[]family,byte[]qualifier,byte[]value)将指定的列族、列限定符、对应的值添加到Put实例中List<Cell>get(byte[]family,byte[]qualifier)获取列族和列限定符指定列中所有行的值booleanhas(byte[]family,byte[]qualifier)检查列族和列限定符是否存在booleanhas(byte[]family,byte[]qualifier,byte[]value)检查列族和列限定符是否存在指定的value6.org.apache.hadoop.hbase.client.Put(一)HBase常用APIGet类常用方法返回值方法作用PutaddColumn(byte[]family,byte[]qualifier,byte[]value)将指定的列族、列限定符、对应的值添加到Put实例中List<Cell>get(byte[]family,byte[]qualifier)获取列族和列限定符指定列中所有行的值booleanhas(byte[]family,byte[]qualifier)检查列族和列限定符是否存在booleanhas(byte[]family,byte[]qualifier,byte[]value)检查列族和列限定符是否存在指定的value7.org.apache.hadoop.hbase.client.Get(一)HBase常用APIResult类常用方法返回值方法作用booleancontainsColumn(byte[]family,byte[]qualifier)检查是否包含列族和列限定符制定的列List<Cell>getColumnCells(byte[]family,byte[]qualifier)获得列族和列限定符指定的列所有行的值NavigableMap<byte[],byte[]>getFamilyMap(byte[]family)根据列族获得包含列限定符和值的所有行的键值对byte[]getValue(byte[]family,byte[]qualifier)获得列族和列限定符指定的单元格的最新值8.org.apache.hadoop.hbase.client.Result(一)HBase常用APIResultScanner类常用方法返回值方法作用voidclose()关闭scanner并释放资源Resultnext()获得下一个Result实例9.org.apache.hadoop.hbase.client.ResultScanner(一)HBase常用APIScan类常用方法返回值方法作用ScanaddColumn(byte[]family,byte[]qualifier)限定需要查找的列族ScanaddFamily(byte[]family)限定列族和列限定符指定的列ScansetMaxVersions()限定最大的版本个数ScansetTimeRange(longminStamp,longmaxStamp)限定最大的时间戳和最小的时间戳,只有在此范围内的单元格才能被获取ScansetFilter(Filterfilter)指定Filter过滤掉不需要的数据ScansetStartRow(byte[]startRow)限定开始的行,否则从表头开始ScansetStopRow(byte[]stopRow)限定结束的行,不包含此行ScansetBatch(intbatch)限定最多返回的单元格数目。用于防止返回过多的数据导致OutoMemory错误10.org.apache.hadoop.hbase.client.ScanHBase编程实例知识点二(二)HBase编程实例进入CentOS7下的eclipse程序,在eclipse左上角依次点击File→New→JavaProject1.编程环境搭建(二)HBase编程实例在弹出的窗口中输入项目名称HBaseAPI,点击Finish即可创建项目1.编程环境搭建(二)HBase编程实例添加依赖包:在新创建的项目窗口上右键项目→New→Folder,创建conf文件夹1.编程环境搭建(二)HBase编程实例将HBase安装目录下conf文件夹中的hbase-site.xml文件复制到上一步创建的HBaseAPI项目的conf文件夹中1.编程环境搭建(二)HBase编程实例在项目上右键→properties,在弹出的界面左边点击JavaBuildPath,点击Libraries,点击右边的AddExternalJARs,添加HBase依赖包1.编程环境搭建(二)HBase编程实例然后选择HBase安装目录下的lib文件夹,按ctrl+A全选,点击确定1.编程环境搭建(二)HBase编程实例此外,我们再次右键项目→properties→JavaBuildPath→Libraries→AddClassFolder1.编程环境搭建(二)HBase编程实例选择刚才创建的conf文件夹,点击OK1.编程环境搭建(二)HBase编程实例首先右键项目创建新的package,命名为HBaseAPI2.编写程序(二)HBase编程实例创建一张表,如果表存在,则输出“tablealreadyexists”publicstaticvoidcreatTable(StringtableName,String[]familys)throwsException{HBaseAdminadmin=newHBaseAdmin(conf);if(admin.tableExists(tableName)){System.out.println("tablealreadyexists!");}else{HTableDescriptortableDesc=newHTableDescriptor(tableName);for(inti=0;i<familys.length;i++){tableDesc.addFamily(newHColumnDescriptor(familys[i]));}admin.createTable(tableDesc);System.out.println("createtable"+tableName+"ok.");}}2.编写程序(关键代码)(二)HBase编程实例删除表publicstaticvoiddeleteTable(StringtableName)throwsException{try{HBaseAdminadmin=newHBaseAdmin(conf);admin.disableTable(tableName);admin.deleteTable(tableName);System.out.println("deletetable"+tableName+"ok.");}catch(MasterNotRunningExceptione){e.printStackTrace();}catch(ZooKeeperConnectionExceptione){e.printStackTrace();}}2.编写程序(关键代码)(二)HBase编程实例插入一行记录
publicstaticvoidaddRecord(StringtableName,StringrowKey,Stringfamily,Stringqualifier,Stringvalue)throwsException{try{HTabletable=newHTable(conf,tableName);Putput=newPut(Bytes.toBytes(rowKey));put.add(Bytes.toBytes(family),Bytes.toBytes(qualifier),Bytes.toBytes(value));table.put(put);System.out.println("insertrecored"+rowKey+"totable"+tableName+"ok.");}catch(IOExceptione){e.printStackTrace();}}2.编写程序(关键代码)(二)HBase编程实例删除一行记录
publicstaticvoiddelRecord(StringtableName,StringrowKey)throwsIOException{HTabletable=newHTable(conf,tableName);Listlist=newArrayList();Deletedel=newDelete(rowKey.getBytes());list.add(del);table.delete(list);System.out.println("delrecored"+rowKey+"ok.");}2.编写程序(关键代码)(二)HBase编程实例查找一行记录
publicstaticvoidgetOneRecord(StringtableName,StringrowKey)throwsIOException{HTabletable=newHTable(conf,tableName);Getget=newGet(rowKey.getBytes());Resultrs=table.get(get);for(KeyValuekv:rs.raw()){System.out.print(newString(kv.getRow())+"");System.out.print(newString(kv.getFamily())+":");System.out.print(newString(kv.getQualifier())+"");System.out.print(kv.getTimestamp()+"");System.out.println(newString(kv.getValue()));}}2.编写程序(关键代码)(二)HBase编程实例显示所有数据
publicstaticvoidgetAllRecord(StringtableName){try{HTabletable=newHTable(conf,tableName);Scans=newScan();ResultScannerss=table.getScanner(s);for(Resultr:ss){for(KeyValuekv:r.raw()){System.out.print(newString(kv.getRow())+"");System.out.print(newString(kv.getFamily())+":");System.out.print(newString(kv.getQualifier())+"");System.out.print(kv.getTimestamp()+"");System.out.println(newString(kv.getValue()));}}}catch(IOExceptione){e.printStackTrace();}2.编写程序(关键代码)(二)HBase编程实例main方法
publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubtry{Stringtablename="scores";String[]familys={"grade","course"};testHBaseAPI.creatTable(tablename,familys);//addrecordzkbtestHBaseAPI.addRecord(tablename,"zkb","grade","","5");testHBaseAPI.addRecord(tablename,"zkb","course","","90");testHBaseAPI.addRecord(tablename,"zkb","course","math","97");testHBaseAPI.addRecord(tablename
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国海洋大学2026年强基计划面试+体育测试模拟试题及答案解析
- 江苏省盐城市獐沟中学2026届十校联考最后物理试题含解析
- 江苏省连云港市外国语校2026届中考冲刺卷物理试题含解析
- 广东省阳江市教育局教研究室重点名校2026届中考物理押题卷含解析
- 钢管混凝土柱顶升浇筑方案
- 咸宁市通城县2026届中考联考物理试题含解析
- 产科护理营养支持
- 陕西省西安市滨河区达标名校2026届中考二模物理试题含解析
- 巴楚县2025-2026学年数学四年级第二学期期末统考试题(含解析)
- 2025-2026学年广东省中山市石岐区华侨中学高二(下)月考数学试卷(5月份)(含答案)
- 输尿管结石术后患者护理
- 铁路通信承载业务课件
- 物业品质现场培训课件
- SL3000变频恒压供水控制系统
- 消防设施评估报告范本
- 2025年广东省中考地理试题卷(标准含答案)
- 劳务合同培训课件
- 辽宁省文体旅集团所属企业招聘笔试题库2025
- 闺蜜合伙开店合同协议书
- T/ZHCA 021-2022化妆品紧致功效测试体外人源成纤维细胞活性测试方法
- 2025光伏电站防雷装置检测技术规范
评论
0/150
提交评论