网页融合大数据计算点击率并排序

这里选择很早的yiju项目。
跳转那些修改都简单先上服务层代码

public List<HouseView> findtopClick(int houseType) {
        List<HouseView> houseViews=new ArrayList<>();
        Map<String,String> houseIds=jedis.hgetAll("houseIds");
        Map<String, Integer> map = new HashMap<>();
        for (String key : houseIds.keySet()) {
            String s = houseIds.get(key);
            int i = Integer.parseInt(s);
            map.put(key,i);
        }
        List<Map.Entry<String,Integer>> list = new ArrayList(map.entrySet());
        Collections.sort(list, (o1, o2) -> (o2.getValue() - o1.getValue()));//这两行为map的排序降序,升序的话后面2个比大小的值反下就ok
        for (int i=0;i<4;i++){
            Map.Entry<String, Integer> stringIntegerEntry = list.get(i);
            String key = stringIntegerEntry.getKey();
            HouseView houseById = iHouseViewDao.findHouseById(Integer.parseInt(key));
            houseViews.add(houseById);
        }
        return houseViews;
    }

还有就是要收集日志 上面注释了是原来的

## Global logging configuration
#log4j.rootLogger=DEBUG, stdout
## Console output...
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

# Global logging configuration
log4j.rootLogger=DEBUG, stdout,logfile
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

log4j.appender.logfile = org.apache.log4j.FileAppender
log4j.appender.logfile.File = D://logs/log.log//这个是存在本地的
log4j.appender.logfile.Threshold = INFO 
log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

在控制层加上

@Autowired
    private Logger log4j=Logger.getLogger(UserController.class);

在你需要的方法里加上这个记录功能

log4j.info("find house :"+houseid);

当然没有服务器还是手动上传的 开始linux的zk、storm、kafka、flume。
这里只需要修改写的方法,这里采用redis数据库为非关系型数据库。

public class WriteCountBolt extends BaseBasicBolt {
    Jedis jedis=null;

    @Override
    public void prepare(Map stormConf, TopologyContext context) {
        jedis=new Jedis("127.0.0.1",6379);

    }

    @Override
    public void execute(Tuple tuple, BasicOutputCollector basicOutputCollector) {
        String s = tuple.getString(0);
        jedis.hincrBy("houseIds",s,1);//默认1,自动加+1
        


    }

    @Override
    public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值