HBase编程实践培训课件_第1页
HBase编程实践培训课件_第2页
HBase编程实践培训课件_第3页
HBase编程实践培训课件_第4页
HBase编程实践培训课件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

Open Passion ValueHBase编程实践目录Hbase

访问方式Hbase

Java编程Hbase多语言编程Hbase-MapReduce编程总结2Hbase

访问方式3NativeJava

API最常规和高效的访问方式;HBaseShellHBase的命令行工具,最简单的接口,适合HBase管理使用;Thrift

Gateway利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据;REST

Gateway支持REST

风格的Http

API访问HBase,

解除了语言限制;MapReduce直接使用MapReduce作业处理Hbase数据;使用Pig/hive处理Hbase数据。目录Hbase

访问方式Hbase

Java编程Hbase多语言编程Hbase-MapReduce编程总结4Hbase

Java

API概述5Hbase是用Java语言编写的,支持Java编程是自然而然的事情;支持CRUD操作;Create,Read,Update,

DeleteJava

API包含Hbase

shell支持的所有功能,甚至更多;Java

API是访问Hbase最快的方式。6Java

API程序设计步骤步骤1:创建一个Configuration对象包含各种配置信息步骤2:构建一个HTable句柄提供Configuration对象提供待访问Table的名称步骤3:执行相应的操作执行put、get、delete、scan等操作步骤4:关闭HTable句柄将内存数据刷新到磁盘上释放各种资源Java

API程序设计步骤7步骤1:创建一个Configuration对象Configurationconf=

HbaseConfiguration.create();步骤2:构建一个HTable句柄HTabletable=newHTable(conf,

tableName);步骤3:执行相应的操作table.getTableName();步骤4:关闭HTable句柄table.close();示例程序8创建Configuration对象9Configuration对象包装了客户端程序连接Hbase服务所需的全部信息;Zookeeper位置Zookeeper连接超时时间HbaseConfiguration.create()内部逻辑从CLASSPATH中加载hbase-default.xml和hbase-site.xml两个文件hbase-default.xml已经被打包到Hbase

jar包中hbase-site.xml需添加到CLASSPATH中hbase-site.xml将覆盖hbase-default.xml中的同名属性创建Configuration对象10Hbase如何从CLASSPATH中获取hbase-site.xml信息;修改hadoop脚本,将Hbase

CLASSPATH加入在<hadoop_install>/conf/hadoop-env.sh中设置exportHADOOP_CLASSPATH=$HBASE_HOME/*:$HBASE_HOME/conf:$HADOOP_CLASSPATH检查Hadoop

CLASSPATHhadoop

classpathhadoopclasspath|grep

hbase创建Configuration对象11如果已经有一个Configuration文件,可进行如下操作;ConfigurationnewConf=

Configuration.create(existingConf);用户自定义的配置文件将在已有配置文件之后加载将覆盖hbase-default.xml和hbase-site.xml中的配置可单独覆盖某一个或多个参数值Configurationconf=

HbaseConfiguration.create();conf.set("hbase.zookeeper.quorum",

"node1,node2");通常不推荐这么做!创建HTable句柄12org.apache.hadoop.hbase.client.HTable一个table对应一个HTable句柄提供了CRUD操作设计简单、使用方便提供行级事务不支持多行事务或者表级别的事务严格的行一致性并发读、顺序写13创建HTable句柄创建HTable句柄代价很大扫描.META.表等;创建一次,以后尽可能复用;如果需要创建多个Htable句柄,使用HTablePool;HTable并非线程安全的一个线程创建一个即可Htable支持CRUD批处理非线程安全,仅是为了提高性能向HBase写入数据14步骤1:创建一个Put对象;Putput=new

Put(Bytes.toBytes("rowkey"));步骤2:设置cell值;Put.add(family,column,

value)Put.add(family,column,timestamp,

value)Put.add(KeyValue

kv)步骤3:调用HTable中的put方法,写入数据;步骤4:关闭HTable句柄。向HBase写入数据15从Hbase中读取数据16支持的API类型通过rowkey获取一行数据通过一个rowkey集合获取多条记录扫描整个表或者表的一部分扫描表可指定扫描的范围[startkey

endkey)表中数据是按照rowkey排序的API

特点数目有限、使用简单从Hbase中读取数据17读取数据时注意事项只读取需要的数据尽可能增加数据约束条件可增加family,

column(s),

time

range

max

versions等约束条件接口实例get.setTimeRange(minStamp,

maxStamp)get.setMaxVersions(maxVersions)get.addFamily(family)get.addColumn(family,

column)从Hbase中读取数据18从Hbase中删除数据19从Hbase中scan数据20目录Hbase

访问方式Hbase

Java编程Hbase多语言编程Hbase-MapReduce编程总结21Hbase-Thrift

拓扑结构22使用步骤23HDFS/HBase安装启动Hbase

thrift

serverbin/hbase-daemon.shstart

thrift生成Hbase

thrift

client接口文件thrift --genphp

Hbase.thriftthrift --gencpp

Hbase.thrift编写客户端代码Hbase

C++编程24生成Hbase

thriftclient接口文件thrift --gencpp

Hbase.thrifthbase.thrift位置:${HBASE_HOME}/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift编写客户端代码${HBASE_HOME}/src/examples/thrift/DemoClient.cpp编译代码(make)运行程序./DemoClientHbase

C++编程—头文件25Hbase

C++编程—初始化26Hbase

C++编程—获取所有表27Hbase

C++编程—创建表28Hbase

C++编程—插入数据29Hbase

C++编程—全表扫描30Hbase

C++编程—全表扫描31Hbase

Python编程32生成Hbase

thriftclient接口文件thrift --genpy

hbase.thrifthbase.thrift位置:${HBASE_HOME}/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift编写客户端代码${HBASE_HOME}/src/examples/thrift/DemoClient.py运行程序pythonDemoClient.pyHbase

Python编程—头文件与初始化33Hbase

Python编程—获取所有表34Hbase

Python编程—创建表35Hbase

Python编程—插入数据36Hbase

Python编程—全表扫描37Hbase

Python编程—全表扫描38Hbase更多语言编程39PHP${HBASE_HOME}/src/examples/thrift/DemoClient.phpRuby${HBASE_HOME}/src/examples/thrift/DemoClient.rb其他语言Thrift支持的语言全部支持,包括:C++、C#、Cocoa、D、Delphi、Erlang、Haskell、Java、Perl、PHP、Python、Ruby、Smalltalk等目录HBase访问方式Hbase

Java编程Hbase多语言编程Hbase

MapReduce编程总结40Hbase

MapReduce编程—基础publicabstractclassTableMapper<KEYOUT,

VALUEOUT>extendsMapper<ImmutableBytesWritable,Result,KEYOUT,

VALUEOUT>{}publicabstractclassTableReducer<KEYIN,VALUEIN,KEYOUT>extendsReducer<KEYIN,VALUEIN,

温馨提示

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

评论

0/150

提交评论