




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年山东省枣庄市高二(下)期中数学试卷(含答案)
- 2025年昌邑中面试题及答案
- 2025年小学体育试题清单及答案
- 2025年中集集团面试题目及答案
- 2025年小学生空白试题及答案
- 2025年网红面试题目及答案
- 2025年宋朝面试题及答案
- 2025年东方航空招聘试题及答案
- 2025年学生德语测试题及答案解析
- 2025年出境访学面试题及答案
- 2025-2030中国花椒行业发展分析及竞争策略与趋势预测研究报告
- 2025新版静疗规范
- 机关单位网络安全讲座
- 2024年咖啡师考试知识试题及答案
- 养牛场规章制度
- 2025年恒生电子笔试题及答案java
- 离婚协议书正规打印电子版(2025年版)
- 放射治疗半影
- 紫薇苗木整形修剪技术规范
- 现代自动化仪表与控制工程课件资料
- 2025年中州水务控股有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论