使用Hive分析网站日志

MapReduce BMR

  • 发行版本
  • 功能发布记录
  • 产品描述
    • 节点类型说明
    • 产品优势
    • 应用场景
    • 产品功能
    • 产品简介
  • Python-SDK
    • Cluster(集群)
    • BmrClient
    • 异常处理
    • InstanceGroup(实例组)
    • 简介
    • 文档更新记录
    • Step(作业)
    • 版本变更记录
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
  • 开源组件介绍
    • Impala
    • Pig
    • Druid
    • Presto
    • Hue
    • Ooize
    • HBase
    • Kudu
    • Sqoop
    • Hadoop-Streaming
    • Zeppelin
    • Alluxio
    • Kerberos
      • 集群互信配置
      • 概述
    • ClickHouse
      • 常见问题
      • 数据迁移同步
        • 从Spark导入
        • 从Kafka同步数据
        • 将自建ClickHouse数据迁移到云ClickHouse中
        • 从Flink导入
        • 从MySQL导入和同步
        • 从本地数据导入
          • Parquet格式
          • JSON
          • SQL转储
          • CSV and TSV
      • 快速入门
        • 访问模式
        • 客户端登录
        • 创建ClickHouse集群
        • 基础操作
      • 运维相关操作
        • ClickHouse集群扩容
        • ClickHouse集群缩容
        • 日志配置说明
        • 监控告警配置
    • Ranger
      • ranger概述
      • 权限策略配置
    • Paimon
      • Hive示例
      • StarRocks示例
      • 联合查询示例
      • Flink示例
      • Spark示例
    • Flink
      • 基础使用
    • Trino
      • 基础使用
      • 概述
    • Spark
      • 引擎增强
      • 基础使用
    • Hive
      • 开发指南
        • 自定义函数(UDF)
      • 实践操作
        • Hive迁移
        • Hive操作HBase外表
      • 基础使用
        • Hive基础操作
        • Hive连接方式
  • Java-SDK
    • Cluster(集群)
    • 异常
    • BmrClient
    • InstanceGroup(实例组)
    • 日志
    • 文档更新记录
    • 版本更新记录
    • Step(作业)
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
    • 概述
  • 快速入门
    • 操作流程概览
    • 环境准备
    • 创建集群
    • 数据准备
    • 开发作业
    • 查看结果
    • ClickHouse
      • 导入数据
      • 创建数据库
      • 连接集群
      • 创建表
  • 操作指南
    • 集群模板
    • 服务管理
    • 集群配置
      • 用户管理
      • 弹性伸缩
      • 创建集群
      • 集群安全模式
      • EIP
      • Hive元数据说明
      • 集群审计
      • 配置已有集群
      • 安全组
    • 管理作业
      • 创建作业
      • 诊断、调优
      • 定时任务
      • 查看作业
    • 访问集群
      • 访问集群服务页面
      • 访问集群-openVPN访问集群
      • 使用OpenVPN提交Hadoop作业
      • SSH连接到集群
    • 实践操作
      • 存储数据至HBase
      • 导入数据
      • 编译Maven项目
      • Sqoop导入导出数据
        • 导出数据
    • 权限管理
      • 多用户访问控制
      • 用户管理
    • 集群管理
      • 节点管理
      • 监控报警
      • 集群指标
      • 资源管理
  • 服务等级协议SLA
    • BMR服务等级协议SLA
  • API参考
    • 通用说明
    • 公共头
    • 数据类型
    • 版本更新记录
    • 服务域名
    • 实例操作接口
    • 实例组操作接口
    • 集群操作接口
    • API简介
    • 错误码
  • 常见问题
    • 安全性问题
    • 计费类问题
    • 常见问题总览
    • 性能类问题
    • 配置类问题
    • 故障类问题
  • 视频专区
    • 操作指南
    • 产品介绍
  • 场景教程
    • 流式应用场景
    • 离线应用场景
    • 使用Hive分析网站日志
    • Sqoop应用文档
    • 定时分析日志数据
    • HIVE
      • 不同集群的 Hive 迁移方案
      • Hive 操作 Hbase 外部表
  • 产品定价
    • 转换计费方式
    • 计费项
    • 到期或欠费说明
    • 包年包月计费
    • 续费说明
    • 变更配置计费说明
    • 计费方式
    • 按需计费
    • 账单和用量查询
    • 退款说明
所有文档
menu
没有找到结果,请重新输入

MapReduce BMR

  • 发行版本
  • 功能发布记录
  • 产品描述
    • 节点类型说明
    • 产品优势
    • 应用场景
    • 产品功能
    • 产品简介
  • Python-SDK
    • Cluster(集群)
    • BmrClient
    • 异常处理
    • InstanceGroup(实例组)
    • 简介
    • 文档更新记录
    • Step(作业)
    • 版本变更记录
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
  • 开源组件介绍
    • Impala
    • Pig
    • Druid
    • Presto
    • Hue
    • Ooize
    • HBase
    • Kudu
    • Sqoop
    • Hadoop-Streaming
    • Zeppelin
    • Alluxio
    • Kerberos
      • 集群互信配置
      • 概述
    • ClickHouse
      • 常见问题
      • 数据迁移同步
        • 从Spark导入
        • 从Kafka同步数据
        • 将自建ClickHouse数据迁移到云ClickHouse中
        • 从Flink导入
        • 从MySQL导入和同步
        • 从本地数据导入
          • Parquet格式
          • JSON
          • SQL转储
          • CSV and TSV
      • 快速入门
        • 访问模式
        • 客户端登录
        • 创建ClickHouse集群
        • 基础操作
      • 运维相关操作
        • ClickHouse集群扩容
        • ClickHouse集群缩容
        • 日志配置说明
        • 监控告警配置
    • Ranger
      • ranger概述
      • 权限策略配置
    • Paimon
      • Hive示例
      • StarRocks示例
      • 联合查询示例
      • Flink示例
      • Spark示例
    • Flink
      • 基础使用
    • Trino
      • 基础使用
      • 概述
    • Spark
      • 引擎增强
      • 基础使用
    • Hive
      • 开发指南
        • 自定义函数(UDF)
      • 实践操作
        • Hive迁移
        • Hive操作HBase外表
      • 基础使用
        • Hive基础操作
        • Hive连接方式
  • Java-SDK
    • Cluster(集群)
    • 异常
    • BmrClient
    • InstanceGroup(实例组)
    • 日志
    • 文档更新记录
    • 版本更新记录
    • Step(作业)
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
    • 概述
  • 快速入门
    • 操作流程概览
    • 环境准备
    • 创建集群
    • 数据准备
    • 开发作业
    • 查看结果
    • ClickHouse
      • 导入数据
      • 创建数据库
      • 连接集群
      • 创建表
  • 操作指南
    • 集群模板
    • 服务管理
    • 集群配置
      • 用户管理
      • 弹性伸缩
      • 创建集群
      • 集群安全模式
      • EIP
      • Hive元数据说明
      • 集群审计
      • 配置已有集群
      • 安全组
    • 管理作业
      • 创建作业
      • 诊断、调优
      • 定时任务
      • 查看作业
    • 访问集群
      • 访问集群服务页面
      • 访问集群-openVPN访问集群
      • 使用OpenVPN提交Hadoop作业
      • SSH连接到集群
    • 实践操作
      • 存储数据至HBase
      • 导入数据
      • 编译Maven项目
      • Sqoop导入导出数据
        • 导出数据
    • 权限管理
      • 多用户访问控制
      • 用户管理
    • 集群管理
      • 节点管理
      • 监控报警
      • 集群指标
      • 资源管理
  • 服务等级协议SLA
    • BMR服务等级协议SLA
  • API参考
    • 通用说明
    • 公共头
    • 数据类型
    • 版本更新记录
    • 服务域名
    • 实例操作接口
    • 实例组操作接口
    • 集群操作接口
    • API简介
    • 错误码
  • 常见问题
    • 安全性问题
    • 计费类问题
    • 常见问题总览
    • 性能类问题
    • 配置类问题
    • 故障类问题
  • 视频专区
    • 操作指南
    • 产品介绍
  • 场景教程
    • 流式应用场景
    • 离线应用场景
    • 使用Hive分析网站日志
    • Sqoop应用文档
    • 定时分析日志数据
    • HIVE
      • 不同集群的 Hive 迁移方案
      • Hive 操作 Hbase 外部表
  • 产品定价
    • 转换计费方式
    • 计费项
    • 到期或欠费说明
    • 包年包月计费
    • 续费说明
    • 变更配置计费说明
    • 计费方式
    • 按需计费
    • 账单和用量查询
    • 退款说明
  • 文档中心
  • arrow
  • MapReduceBMR
  • arrow
  • 场景教程
  • arrow
  • 使用Hive分析网站日志
本页目录
  • 概览
  • 需求场景
  • 网站PV/UV日志分析
  • 方案概述
  • 环境准备
  • 准备日志文件
  • 创建BMR集群
  • 访问Hue Web界面
  • 分析网站日志
  • 建表
  • 查询
  • 分析结果
  • 6 相关产品

使用Hive分析网站日志

更新时间:2025-08-21

概览

网站日志包含用户访问信息,通过日志分析我们可以了解网站的访问量、网页访问次数、网页访问人数、频繁访问时段等等,以便获取用户行为以优化网站的商业价值。由于网站每天会产生海量的日志,非常适合使用MapReduce(简称BMR)这样的托管Hadoop服务。同时,BMR集成了Hive和Hue,开发者可在浏览器中与Hadoop集群交互,分析处理数据,完成创建数据集、执行Hive查询等操作,大大降低了使用门槛。

需求场景

网站PV/UV日志分析

WEB服务网站每天都会有大量的用户访问,相关的用户行为,访问量,访问频次以及用户行为等数据具有很大的商业价值,可以用于用户画像的构建以及用户行为的预测等。

方案概述

示例日志

示例日志是Nginx日志,存储在对象存储服务BOS的公共可读的路径中:

  • 存储在“华北-北京”区域的样例数据路径为:bos://datamart-bj/web-log-10k/,仅华北区域的BMR集群可用。
  • 存储在“华南-广州”区域的样例数据路径为:bos://datamart-gz/web-log-10k/,仅华南区域的BMR集群可用。

关于百度智能云的区域说明,请参考区域选择说明。

分析过程总览

使用BMR分析Niginx日志的过程如下:

环境准备

准备日志文件

您可跳过此步直接使用百度智能云提供的示例日志。在熟悉日志分析后,可参考数据准备选择您自己的日志数据。

创建BMR集群

  1. 打开“产品服务>MapReduce>MapReduce-集群列表”,点击“创建集群”,进入集群配置页面。
  2. 选择付费方式和地区,可选择后付费或预付费,地域和区域(可用区)根据客户需求自行选择即可。

image.png

  1. 在“集群基础设置”区选择集群类型"hadoop",并且选择 BMR 1.2.0版本,并且勾选HUE 、Hive、Spark等需要的服务。

image.png

  1. 用户可以对BMR集群打标签,用于区分不同集群。也可默认不填写。

image.png

5.在"基础设置"中设置集群名称,密码和网络等信息,然后点击下一步。

image.png

  1. 根据用户实际计算和存储需求,选择实例类型规格,点击“提交订单”。支付订单后,集群会在五至十分钟左右创建完成。

访问Hue Web界面

  1. 打开“产品服务>MapReduce>MapReduce-集群列表”,点击已创建的集群,进入实例详情页面。

image.png

  1. 在“相关应用”栏中点击“Hue Web UI”。
  2. 在弹出的认证页面中输入创建集群时设置的用户名和密码,用户名默认为root,密码为创建集群时的密码,并点击“登录”。

  3. 首次登录HUE WEB UI,需要创建您登录Hue服务的用户名和密码,输入后点击“Create Account”后进入Hue Web界面。

分析网站日志

建表

  1. 在分析之前,首先需要根据网站日志建立一张Hive表。在Hue菜单栏中选择“查询编辑器”>“Hive”,并输入以下SQL语句:

    SQL
    1DROP TABLE IF EXISTS access_logs;
    2CREATE EXTERNAL TABLE access_logs(
    3    remote_addr STRING comment 'client IP',
    4    time_local STRING comment 'access time',
    5    request STRING comment 'request URL',
    6    status STRING comment 'HTTP status',
    7    body_bytes_sent STRING comment 'size of response body',
    8    http_referer STRING comment 'referer',
    9    http_cookie STRING comment 'cookies',
    10    remote_user STRING comment 'client name',
    11    http_user_agent STRING comment 'client browser info',
    12    request_time STRING comment 'consumed time of handling request',
    13    host STRING comment 'server host',
    14    msec STRING comment 'consumed time of writing logs'
    15)
    16COMMENT 'web access logs'
    17ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
    18WITH SERDEPROPERTIES (
    19    "input.regex" = "([0-9\\.]+) - \\[([^\\]]+)\\] \"([^\"]*)\" ([\\d]+) ([\\d]*) \"([^\"]*)\" \"([^\"]*)\" ([\\S]+) \"([^\"]*)\" ([0-9\\.]+) ([\\S]+) ([0-9\\.]+)"
    20	)
    21STORED AS TEXTFILE
    22LOCATION "bos://datamart-bj/web-log-10k";
  2. 输入语句后点击左侧的三角符号执行命令,这样,Hive会重建access_logs表,然后通过正则表达式来解析日志文件。
  3. 成功创建access_logs表之后,点击Hive Editor左侧的刷新按钮,找到access_logs表并预览示例数据:

查询

定了表之后,便可以进行查询了。

  • 若统计网页请求的结果,可使用以下语句:

    Plain Text
    1SELECT status, count(1)
    2FROM access_logs
    3GROUP BY status

    查询结果可切换到图表页,还可以以饼图的形式可视化数据,如下图所示:

  • 若想了解那个时段网页访问量最大,可使用下面的语句:

    Plain Text
    1SELECT hour(from_unixtime(unix_timestamp(time_local, 'dd/MMMM/yyyy:HH:mm:ss Z'))) as hour, count(1) as pv
    2FROM access_logs
    3GROUP BY hour(from_unixtime(unix_timestamp(time_local, 'dd/MMMM/yyyy:HH:mm:ss Z')))

    查询结果可切换到图表页,或以柱状图来更直观的查看结果:

分析结果

网页访问量最大的时间点是晚上九点。

6 相关产品

BMR(MapReduce)、弹性公网IP(EIP)

上一篇
离线应用场景
下一篇
Sqoop应用文档