大数据全系列 教程
1869个小节阅读:464.9k
目录
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
AnalyserLogDataRunner类
xxxxxxxxxx
package cn.itbaizhan.etl.mr;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
import org.apache.log4j.Logger;
public class AnalyserLogDataRunner implements Tool {
//日志记录对象
private static final Logger LOGGER = Logger.getLogger(AnalyserLogDataRunner.class);
//定义配置文件对象
private Configuration conf = null;
public static void main(String[] args) {
try {
ToolRunner.run(new Configuration(true),new AnalyserLogDataRunner(),args);
} catch (Exception e) {
LOGGER.error("执行数据清洗job出现异常",e);
}
}
@Override
public int run(String[] args) throws Exception {
Configuration conf = this.getConf();
//处理接收到的参数 -d 2030-12-18
processArgs(conf,args);
//创建Job对象等
Job job = Job.getInstance(conf, "ETL");
//......
//设置输入路径
setJobInputPaths(job);
//设置Mapper类相关
job.setMapOutputKeyClass(NullWritable.class);
job.setMapOutputValueClass(Put.class);
job.setMapperClass(AnalyserLogDataMapper.class);
//TableMapReduceUtil
return 0;
}
/**处理程序运行的参数
* 如果运行程序时没有传入日期参数,默认使用昨天
* 如果运行程序时传入日志参数,检查格式是否合法,
* 合法:则使用
* 不合法:则使用昨天字符串
* 将得到结果日期字符串保存到conf对象中,方便后续的程序使用(用到时从conf对象获取即可)。
* @param conf 配置文件对象
* @param args 程序运行时传递的参数
*/
private void processArgs(Configuration conf, String[] args) {
}
private void setJobInputPaths(Job job){
}
@Override
public void setConf(Configuration conf) {
//将传递过来的conf对象赋值
//将传递过来的conf对象转换为当前类的conf
this.conf = HBaseConfiguration.create(conf);
}
@Override
public Configuration getConf() {
return this.conf;
}
}