Hadoop学习四十四:某项目技术小结概述

一.对源代码的改造

  •  改造MultipleInputs:能够做到HBase文件或者HDFS文件的混合输入
  • 改造JobControl和ControlledJob:能够做到一个Job运行完后,先执行扩展类,再运行下一个Job
  •  改造HFileOutputFormat和PutSortReducer:有一种业务场景是新来的一批数据里包含了少量要删除的数据。改造后配合Mapper对这些删除数据的标记,PutSortReducer能发现这些数据,HFileOutputFormat将这些数据记录到某个文件(不生成HFile)
  • 改造hadoop_datajoin-2.3.0.jar:使用PartitionerClass SortComparatorClass GroupingComparatorClass技术手段,去掉maxNumOfValuesPerGroup = 100的限制,实现迭代一组Value就实现关联。
  • 改造RunJar:在一个没有安装Hadoop集群环境上提交作业,自己实现一个JarRunner类,做到和使用集群hadoop jar命令一样的效果。

二.使用到的工具类

  • Distcp:集群间HDFS文件拷贝。定制化InputFormat TextOutputFormat;无Reducer。
  • Snapshot:HBase克隆快照。
  • Export Import:集群间HBase拷贝。
         Export的话使用IdentityTableMapper将Result直接输出,使用SequenceFileOutputFormat将对象序列化到指定文件。
         Import的话使用SequenceFileInputFormat从指定文件读取数据;1.Mapper里将Result对象转换成Mutation对象并输出,TableOutputFormat接受到后直接写到HBase;无Reducer。2.或者是另外种借助HFileOutputFormat的处理,下篇再详说。
  • CopyTable:一个集群里将一个表copy成另外一个表 。Mapper里将Result对象转换成Mutation对象并输出,TableOutputFormat接受到后直接写到HBase;无Reducer。

     接下来有时间抽取其中几点,详细说下。

一.对源代码的改造 二.使用到的工具类

猜你喜欢

转载自zy19982004.iteye.com/blog/2166422