大数据全系列 教程
1869个小节阅读:467.5k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
修改Runner类
xxxxxxxxxx
private void processArgs(Configuration conf, String[] args) {
......
//验证日期格式是否符合要求,不符合要求的话,默认使用昨天
if(StringUtils.isBlank(date)|| !TimeUtil.isValidateRunningDate(date)){
date = TimeUtil.getYesterday();
}
LOGGER.info("============date========="+date);
//将日期保持到conf对象中
conf.set(GlobalConstants.RUNNING_DATE_PARAMES,date);
}
再次运行Runner类,bug解决了,显示分析的是2022-02-06(默认使用昨天)
再去mysql查看以下表dimension_browser,dimension_date,dimension_platform,stats_user,stats_device_browser,都没有数据,原因是hbase的eventlog表中只有2022-01-20到2022-01-25的数据。
设置运行Runner时传入日期参数:-d 2022-01-20
在NewInstallUserMapper类的map方法的"有效首行"和NewInstallUserReducer类的reduce方法的"有效首行"处分别添加断点。
再次运行Runner类,提示分析是2022-01-20的数据,但是依然发现NewInstallUserMapper类map方法中的断点没有执行到,说明没有从hbase的表中查询到数据,才导致没有进入到NewInstallUserMapper类的Mapper方法中。
再次检查查询的过滤条件,发现查询的起始和结束时间的转换处存在问题:
将NewInstallUserRunner类的getScans方法的以下代码进行修改:
xxxxxxxxxx
scan.withStartRow(Bytes.toBytes(startTime),true);
scan.withStopRow(Bytes.toBytes(stopTime),true);
修改为:
xxxxxxxxxx
scan.withStartRow(Bytes.toBytes(startTime+""),true);
scan.withStopRow(Bytes.toBytes(stopTime+""));
修改后进行进行debug调试。
xxxxxxxxxx
java.lang.NullPointerException
at cn.itbaizhan.tranformer.model.DateDimension.readFields(DateDimension.java:103)
at cn.itbaizhan.tranformer.model.StatsCommonDimesion.readFields(StatsCommonDimesion.java:52)
at cn.itbaizhan.tranformer.model.StatsUserDimesion.readFields(StatsUserDimesion.java:43)
xxxxxxxxxx
private Date calendar;
修改为:
xxxxxxxxxx
private Date calendar= new Date();
xxxxxxxxxx
ava.lang.Exception: java.io.IOException: java.lang.ClassNotFoundException: cn.itbaizhan.tranformer.mr.StatsUserNewInstallUserCollector
xxxxxxxxxx
private KpiDemension kpiBrowserNewInstallUser =
new KpiDemension(EventLogConstants.NEW_INSTALL_USER);
修改为:
xxxxxxxxxx
private KpiDemension kpiBrowserNewInstallUser =
new KpiDemension(EventLogConstants.BROWSER_NEW_INSTALL_USER);