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。
接下来有时间抽取其中几点,详细说下。
相关推荐
changjiang 2020-11-16
minerd 2020-10-28
WeiHHH 2020-09-23
Aleks 2020-08-19
WeiHHH 2020-08-17
飞鸿踏雪0 2020-07-26
tomli 2020-07-26
deyu 2020-07-21
strongyoung 2020-07-19
eternityzzy 2020-07-19
Elmo 2020-07-19
飞鸿踏雪0 2020-07-09
飞鸿踏雪0 2020-07-04
xieting 2020-07-04
WeiHHH 2020-06-28
genshengxiao 2020-06-26
Hhanwen 2020-06-25