上云无忧 > 文档中心 > 百度智能云MapReduce - 使用Hive分析网站日志
百度智能云MapReduce - 使用Hive分析网站日志

文档简介:
概览: 网站日志包含用户访问信息,通过日志分析我们可以了解网站的访问量、网页访问次数、网页访问人数、频繁访问时段等等,以便获取用户行为以优化网站的商业价值。由于网站每天会产生海量的日志,非常适合使用MapReduce(简称BMR)这样的托管Hadoop服务。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

概览

网站日志包含用户访问信息,通过日志分析我们可以了解网站的访问量、网页访问次数、网页访问人数、频繁访问时段等等,以便获取用户行为以优化网站的商业价值。由于网站每天会产生海量的日志,非常适合使用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. 选择付费方式和地区,可选择后付费或预付费,地域和区域(可用区)根据客户需求自行选择即可。

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

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

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

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

访问Hue Web界面

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

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

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

分析网站日志

建表

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

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

查询

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

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

    SELECT status, count(1)
    FROM access_logs
    GROUP BY status

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

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

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

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

分析结果

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

6 相关产品

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

相似文档
  • MapReduce混部方案可以让您以“分时”的方式使用BCC云服务器,即在云服务器BCC繁忙的时候专注自身业务,空闲的时候分一部分精力帮助BMR集群的大数据计算。既提高了云服务器BCC的资源利用率,也提高了BMR集群的计算能力,降低总体IT支出。
  • 在本示例中,hive数据表的location为BOS路径,hive数据表的partition为dt(string),根据dt指定日期,区分每一天的导入数据。 说明: 由于hive数据表的location为BOS,无法直接通过sqoop将RDS的数据导入hive,因为hive在加载数据时,会先将数据写入本地hdfs,然后将数据所在目录移动到hive表的location上。由于本地hdfs和BOS数据两个不同的文件系统,直接进行移动操作会抛出异常。因此,本场景需要“数据导入BOS”和“数据导入hive”两个步骤。
  • 概览: 实现云上流式场景下数据流打通,方便用户在百度智能云上使用各个产品实现流式需求,实现流式数据处理全流程。 需求场景: 事件流: 事件流具能够持续产生大量的数据,这类数据最早出现与传统的银行和股票交易领域,也在互联网监控、无线通信网等领域出现、需要以近实时的方式对更新数据流进行复杂分析如趋势分析、预测、监控等。
  • 概览: 离线数据分析适用于数据规模大、处理实时性要求不高的场景,例如用户行为分析、用户留存分析、报表统计等等。基于百度智能云大数据平台,用户可以便捷地实现离线数据分析,包括数据的采集、数据清洗、数据仓库以及商业智能展现。
  • 协议生效时间:2019年05月01日。 本服务等级协议(Service Level Agreement,以下简称 "SLA")规定了百度智能云向客户提供的MapReduce BMR的服务可用性等级指标及赔偿方案。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部