淘宝之HBase MapReduce实例分析
来源:互联网 发布:美国网络存储公司 编辑:程序博客网 时间:2024/05/16 06:08
http://www.aboutyun.com/thread-7072-1-1.html
引言
跟Hadoop的无缝集成使得使用MapReduce对HBase的数据进行分布式计算非常方便,本文将以前面的blog示例,介绍HBase下MapReduce开发要点。很好理解本文前提是你对Hadoop MapReduce有一定的了解。
HBase MapReduce核心类介绍
首先一起来回顾下MapReduce的基本编程模型,
可以看到最基本的是通过Mapper和Reducer来处理KV对,Mapper的输出经Shuffle及Sort后变为Reducer的输入。除了Mapper和Reducer外,另外两个重要的概念是InputFormat和OutputFormat,定义了Map-Reduce的输入和输出相关的东西。HBase通过对这些类的扩展(继承)来方便MapReduce任务来读写HTable中的数据。
实例分析
我们还是以最初的blog例子来进行示例分析,业务需求是这样:找到具有相同兴趣的人,我们简单定义为如果author之间article的tag相同,则认为两者有相同兴趣,将分析结果保存到HBase。除了上面介绍的blog表外,我们新增一张表tag_friend,RowKey为tag,Value为authors,大概就下面这样。
我们省略了一些跟分析无关的Column数据,上面的数据按前面描述的业务需求经过MapReduce分析,应该得到下面的结果
实际的运算过程分析如下
代码实现
有了上面的分析,代码实现就比较简单了。只需以下几步
定义Mapper类继承TableMapper,map的输入输出KV跟上面的分析一致。定义Reducer类继承TableReducer,reduce的输入输出KV跟上面分析的一致。在提交作业时设置inputFormat为TableInputFormat,设置outputFormat为TableOutputFormat,可以借助TableMapReduceUtil类来简化编码。小结
本文通过实例分析演示了使用MapReduce分析HBase的数据,需要注意的这只是一种常规的方式(分析表中的数据存到另外的表中),实际上不局限于此,不过其他方式跟此类似。如果你进行到这里,你肯定想要马上运行它看看结果,在下篇文章中将介绍如何在模拟集群环境下本机运行MapReduce任务进行测试。
跟Hadoop的无缝集成使得使用MapReduce对HBase的数据进行分布式计算非常方便,本文将以前面的blog示例,介绍HBase下MapReduce开发要点。很好理解本文前提是你对Hadoop MapReduce有一定的了解。
HBase MapReduce核心类介绍
首先一起来回顾下MapReduce的基本编程模型,
可以看到最基本的是通过Mapper和Reducer来处理KV对,Mapper的输出经Shuffle及Sort后变为Reducer的输入。除了Mapper和Reducer外,另外两个重要的概念是InputFormat和OutputFormat,定义了Map-Reduce的输入和输出相关的东西。HBase通过对这些类的扩展(继承)来方便MapReduce任务来读写HTable中的数据。
实例分析
我们还是以最初的blog例子来进行示例分析,业务需求是这样:找到具有相同兴趣的人,我们简单定义为如果author之间article的tag相同,则认为两者有相同兴趣,将分析结果保存到HBase。除了上面介绍的blog表外,我们新增一张表tag_friend,RowKey为tag,Value为authors,大概就下面这样。
我们省略了一些跟分析无关的Column数据,上面的数据按前面描述的业务需求经过MapReduce分析,应该得到下面的结果
实际的运算过程分析如下
代码实现
有了上面的分析,代码实现就比较简单了。只需以下几步
定义Mapper类继承TableMapper,map的输入输出KV跟上面的分析一致。定义Reducer类继承TableReducer,reduce的输入输出KV跟上面分析的一致。在提交作业时设置inputFormat为TableInputFormat,设置outputFormat为TableOutputFormat,可以借助TableMapReduceUtil类来简化编码。小结
本文通过实例分析演示了使用MapReduce分析HBase的数据,需要注意的这只是一种常规的方式(分析表中的数据存到另外的表中),实际上不局限于此,不过其他方式跟此类似。如果你进行到这里,你肯定想要马上运行它看看结果,在下篇文章中将介绍如何在模拟集群环境下本机运行MapReduce任务进行测试。
0 0
- 淘宝之HBase MapReduce实例分析
- HBase MapReduce实例分析之三
- HBase MapReduce实例分析
- HBase MapReduce实例分析
- HBase MapReduce实例分析
- HBase MapReduce实例分析
- 业务开发测试HBase之旅四:HBase MapReduce实例分析
- HBase之旅四:HBase MapReduce实例分析(转自:Taobao QA Team)
- 业务开发测试HBase之旅四:HBase MapReduce实例分析
- 业务开发测试HBase之旅四:HBase MapReduce实例分析
- Hadoop初探之MapReduce+HBase实例
- Hbase + Mapreduce + eclipse实例
- 云计算(三十二)-HBase MapReduce实例分析
- HBase之MapReduce
- MapReduce实例分析
- MapReduce原理,实例分析
- HBase整合MapReduce之建立HBase索引
- Hbase编程入门之MapReduce
- HDU - 4287 Intelligent IME 字典树
- 用apple script读取excel数据
- Mahout推荐系统引擎RecommenderEvaluator源码解析
- 阿里云服务器ubuntu安装java运行环境
- Android之SDK如何更新
- 淘宝之HBase MapReduce实例分析
- 蓝牙的RSSI转换为信号强度百分百
- (素材源码)swanzhu学IOS(三)打飞机
- YTU 2892 免费看电影 贪心
- POJ 1001(Exponentiation)
- Linux 下面安装redis
- Seek the Name, Seek the Fame
- UVA-11000 Bee-蜜蜂繁殖
- 【XML】视频总结