Hbase-业务开发(应用开发)-参考目录
本文是我学习Hbase的过程中参考和研究过的文章和资料,现整理成一个hbase学习的目录,供后续深入研究做参考。
一、Hbase数据库编程学习-前言
作为一个HBase-“业务开发测试”人员,需要迫切掌握的技术至少包含以下几点:
1.深入理解HTable,掌握如何结合“业务”设计高性能的HTable;
2.掌握与HBase的交互,反正是离不开数据的增删改查,通过HBase Shell命令及Java Api都是需要的;
3.掌握如何用MapReduce分析HBase里的数据,HBase里的数据总要分析的,用MapReduce是其中一种方式;
4.掌握如何测试HBase MapReduce,总不能光写不管正确性吧,debug是需要的吧,看看如何在本机单测debug吧。
二、Hbase数据库编程学习目录
1.1 业务开发测试HBase之旅一:HTable基本概念(*****)
学习1:http://www.kuqin.com/testing/20111011/312720.html 学习2:http://jiajun.iteye.com/blog/899632
说明:团队中使用HBase的项目多了起来,对于业务人员而言,通常并不需要从头搭建、维护一套HBase的集群环境,对于其架构细节也不一定要深刻理解(交由HBase集群维护团队负责),迫切需要的是快速理解基本技术来解决业务问题。
1.2 业务开发测试HBase之旅二:通过HBase Shell与HBase交互(***)
学习:http://www.kuqin.com/testing/20111011/312721.html
说明:HBase提供了丰富的访问接口:HBase Shell;Java clietn API;Jython、Groovy DSL、Scala; REST;Thrift(Ruby、Python、Perl、C++…);MapReduce;Hive/Pig。其中HBase Shell是常用的便捷方式之一!
1.3 业务开发测试HBase之旅三:通过Java Api与HBase交互(*****)
学习1:http://www.kuqin.com/testing/20111011/312722.html
说明:HBase Java客户端编程(HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要!)
学习2:http://www.cnblogs.com/panfeng412/archive/2011/08/14/2137984.html说明:本文以HBase-0.90.2为例,介绍如何在Windows系统,Eclipse-IDE集成环境下,使用Java语言,进行HBase客户端编程,包含建立表、删除表、插入记录、删除记录、各种方式下的查询操作等。
1.4 MapReduce对HBase数据进行分布式计算(编写MapReduce程序操作和使用Hbase数据库的编程)
在HBase系统上运行批处理运算,最方便和实用的模型依然是MapReduce。HBase Table和Region的关系,比较类似HDFS File和Block的关系,HBase提供了配套的TableInputFormat和TableOutputFormat API,可以方便的将HBase Table作为Hadoop MapReduce的Source和Sink,对于MapReduce Job应用开发人员来说,基本不需要关注HBase系统自身的细节。
1.4.1 业务开发测试HBase之旅四:HBase MapReduce实例分析(*****)
学习:http://www.kuqin.com/database/20111015/312905.html
1.4.2 业务开发测试HBase之旅五:HBase MapReduce测试实战(*****)
学习:http://www.kuqin.com/database/20111015/312906.html
说明:本文介绍了如何在单机模拟集群环境下运行HBase,MapReduce任务进行测试和Debug,这非常必要,尽快在本机发现一些代码逻辑问题而不是放到分布式集群环境中再来验证以降低复杂度节省时间。除了MapReduce测试外,其他的一些HBase表相关的业务操作测试可以参考前面一篇文章介绍的Java-api访问HBase知识来进行测试。这是本系列最后一篇文章了,关于业务开发测试HBase相关还有很多东西可挖,比如快速批量导数据,数据从其他载体(跨集群的DFS或RDBMS等)迁移等,iTest-hadoop也会不断发展完善。
1.5补充:Hadoop/HBase Mini Cluster介绍
如何不安装Hadoop、HBase环境,只要有JDK,就可以跑起来一个MapReduce的例子,就可以执行HBase的创建表及增删改查操作?
Hadoop、HBase提供了三个类来模拟集群环境:
org.apache.hadoop.hdfs. MiniDFSCluster,模拟DFS集群
org.apache.hadoop.mapred.MiniMRCluster,模拟Map-Reduce集群
org.apache.hadoop.hbase. MiniHBaseCluster,模拟HBase集群
三个类都是本机单进程的,通过构造器参数来设置关键配置和参数。这三个类在Hadoop及HBase项目本身的单元测试中被大量使用。
但如果你是一名业务开发人员,直接使用这些类来做业务测试会发现稍显重复或繁琐,因为有很多的Hadoop/HBase本身的参数在此并不关心,需要的只是一个模拟集群环境,然后可以在此环境中运行业务(MapReduce、HBase)程序来验证功能。为此我们提供了itest-hadoop版本来简化这个问题。
1.6:iTest-hadoop介绍
关于iTest的介绍可以参考这里,http://www.taobaotest.com/itest。
iTest-hadoop是iTest的一个子项目,目前处于发展阶段,用于Hadoop/HBase业务开发单元测试.使用iTest-hadoop来测试HBase Mapreduce非常简单。
1.7 Hbase Bulkload 分析(****)
学习:http://www.jaywong.org/?cat=8
注:文章中对博文的来源都注明了出处,上述博文对我的学习起到了很大的帮助,在此对相关博主表示感谢!
1.8 Hbase数据迁移(*****)
1.8.1 HBase数据迁移(1)- 通过单个客户端导入MySQL数据
网址:http://www.importnew.com/3226.html
1.8.2 HBase数据迁移(2)- 使用bulk load 工具从TSV文件中导入数据
网址:http://www.importnew.com/3645.html
1.8.3 HBase数据迁移(3)-自己编写MapReduce Job导入数据
网址:http://www.importnew.com/3912.html
三 补充:学习hadoop生态系统到上手工作线路指导(HBASE篇)
网址:http://www.aboutyun.com/thread-8391-1-1.html