Mryqu's Notes


  • 首页

  • 搜索
close

[Hadoop] 在MapReduce中使用HBase数据

时间: 2014-05-11   |   分类: BigData     |   阅读: 43 字 ~1分钟

对于MapReduce程序来说,除了可以用HDFS文件系统作为输入源和输出目标,同样可以使用HBase作为输入源和输出目标。下面做一个小练习进行学习。

MapReduceOnHBaseDemo.java

[Hadoop] 在MapReduce中使用HBase数据

rebuild.sh

#!/bin/bash

CLASSPATH=.:$(hbase classpath):$(hadoop classpath)
javac -d classes -cp $CLASSPATH *.java
jar -cvf YquMapreduceDemo.jar  -C classes/ .

测试

执行下列命令运行MapReduce作业:

HADOOP_CLASSPATH=$(hbase mapredcp):${HBASE_HOME}/conf hadoop jar YquMapreduceDemo.jar MapReduceOnHBaseDemo -libjars $(hbase mapredcp | tr ':' ',')

HBase结果如下: [Hadoop] 在MapReduce中使用HBase数据

与普通MapReduce程序的差异

  • 本例中ScoreMapper类继承自抽象类TableMapper。TableMapper是Mapper抽象类的子类,指定输入键类型为ImmutableBytesWritable,输入值类型为Result。因此ScoreMapper类定义仅指定输出键和值类型,而其mapper方法前两个参数为ImmutableBytesWritable和Result类型。
  • 本例中ScoreReducer类继承自抽象类TableReducer。TableReducer是Reduccer抽象类的子类,指定输出值类型为Mutation。因此ScoreReducer定义仅指定输入键和值、输出键的类型。有下图可知,TableReducer输出值类型支持Append、Delete、Increment和Put。[Hadoop] 在MapReduce中使用HBase数据
  • 本例中Driver部分通过TableMapReduceUtil类的initTableMapperJob和initTableReducerJob方法合并Hadoop和HBase配置,配置job属性。

参考

HBase and MapReduce

标题:[Hadoop] 在MapReduce中使用HBase数据
作者:mryqu
声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!

#MapReduce# #hbase# #TableMapper# #TableReducer# #TableMapReduceUtil#
QuickEdit mode of command prompt
JDBC连接池的testQuery/validationQuery设置
  • 文章目录
  • 站点概览

Programmer & Architect

662 日志
27 分类
1472 标签
GitHub Twitter FB Page
    • MapReduceOnHBaseDemo.java
    • rebuild.sh
    • 测试
    • 与普通MapReduce程序的差异
    • 参考
© 2009 - 2023 Mryqu's Notes
Powered by - Hugo v0.120.4
Theme by - NexT
0%