大数据入门学习笔记(捌)- Hadoop项目实战

用户行为日志概述

用户行为日志:用户每次访问网站时所有的行为数据(访问、浏览、搜索、点击…)
用户行为轨迹、流量日志

日志数据内容:

百条测试数据链接地址:https://download.csdn.net/download/bingdianone/10800924
每行日志如下:
117.35.88.11 - - [10/Nov/2016:00:01:02 +0800] “GET /article/ajaxcourserecommends?id=124 HTTP/1.1” 200 2345 “www.imooc.com” “http://www.imooc.com/code/1852” - “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36” “-” 10.100.136.65:80 200 0.616 0.616

  1. 访问的系统属性: 操作系统、浏览器等等
  2. 访问特征:点击的url、从哪个url跳转过来的(referer)、页面上的停留时间等
  3. 访问信息:session_id、访问ip(访问城市)等

数据处理流程

  1. 数据采集
    Flume: web日志写入到HDFS

  2. 数据清洗
    脏数据
    Spark、Hive、MapReduce 或者是其他的一些分布式计算框架
    清洗完之后的数据可以存放在HDFS(Hive/Spark SQL)

  3. 数据处理
    按照我们的需要进行相应业务的统计和分析
    Spark、Hive、MapReduce 或者是其他的一些分布式计算框架

  4. 处理结果入库
    结果可以存放到RDBMS、NoSQL

  5. 数据的可视化
    通过图形化展示的方式展现出来:饼图、柱状图、地图、折线图
    ECharts、HUE、Zeppelin
    在这里插入图片描述
    本实战只有mapreduce清洗和处理离线数据

项目需求

需求:统计一个网站访问日志的浏览器访问次数

将依赖加入pom文件中

        <!--添加UserAgent解析的依赖-->
        <dependency>
            <groupId>com.kumkee</groupId>
            <artifactId>UserAgentParser</artifactId>
            <version>0.0.1</version>
        </dependency>
  • 针对不同的浏览器进行统计操作

测试

环境参考,接上博文大数据入门学习笔记(叁)- 布式文件系统HDFS 中的环境

package com.kun.hadoop.project;

import com.kumkee.userAgent.UserAgent;
import com.kumkee.userAgent.UserAgentParser;

/**
 * UserAgent测试类
 */
public class UserAgentTest {
   
    public static void main(String[] args) {
   
        String source="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36";
        UserAgentParser userAgentParser = new UserAgentParser();
        UserAgent agent = userAgentParser.parse(source);
        String browser = agent.getBrowser();//浏览器
        String engine = agent.getEngine();//引擎
        String engineVersion = agent.getEngineVersion();//引擎版本
        String os = agent.getOs();//操作系统
        String platform = agent.getPlatform();//平台
        boolean mobile = agent.isMobile();//移动
        System.out.println(browser+ ","+engine+ ","+engineVersion+ ","+os+ ","+platform+ ","+mobile);
        //Chrome,Webkit,537.36,Windows 7,Windows,false
    }
}


    /**
     * 本地测试聚合计算浏览器分类个数
     * @throws Exception
     */
    @Test
    public void testReadFile() throws Exception{
   
        String path="D:\\SoftWare\\myGit\\hadoop-train\\100-access.log";
        BufferedReader reader = new BufferedReader(
                new InputStreamReader(new FileInputStream(new File(path)))
        );
        String line="";//此字符串不代表null值

        Map<String, Integer> browserMap = new HashMap<String, Integer>();//浏览器类型和出现次数

        UserAgentParser userAgentParser = new UserAgentParser();
        while (line!=null){
   
            line = reader.readLine();//一次读入一行数据

            if (StringUtils.isNotBlank(line))
  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值