产品汪与程序猿的爱恨纠葛,有了它一切都不是事

世界上最遥远的距离,不是生与死,不是我在你面前你却不知道我爱你,而是我求你帮我跑个数据,你却装聋作哑。

不同的知识体系、思维能力,注定了程序猿和产品汪的相爱相杀。那么归根到底,问题症结究竟在哪呢?数据~

打破传统,“据”给力

拿数据处理来说,以字符界面控制台为主的传统Hadoop数据分析,虽被大家广泛使用,但由于其数据处理较为繁琐,在商务应用上并不实用。

而Hue为Hadoop数据分析提供了图形界面系统,仅仅使用浏览器便能够在Hadoop平台上导入数据、处理数据以及分析数据,瞬间高大上了不少,有没有。

网站日志分析,“据”高效

众所周之,网站的日志包含用户访问信息, 产品汪可通过日志分析了解网站的访问量、网页访问次数、网页访问人数、频繁访问时段等等,以便获取用户行为以优化网站的商业价值。


由于网站每天会产生海量的日志,产品汪以前不得不求助于程序猿写代码跑Hadoop作业来分析结果。而集成Hive和Hue的百度MapReduce(简称BMR)为用户提供了友好的界面,仅通过SQL语句产品汪自己就能分析海量日志,大大提高效率。同时,简单的操作模式也降低了使用门槛。

一站式Hue访问,“据”高效

关于使用问题,只需登录百度开放云管理控制台并创建集群,在软件配置设置栏内添加Hive和Hue应用,不出几分钟BMR集群便可创建完毕。


相较那些需要使用SSH Tunnel登录的老旧方法,BMR近期推出了一站式Hue访问,在集群详情页内可以找到Hue的网址,输入集群用户名密码即可登录。

干货分享,“据”实用

登录Hue以后可以借助File Browser上传Nginx日志,示例数据可以从https://bmr-public-data.bj.bcebos.com/logs/accesslog-10k.log下载,简单起见就放在/user/root下面:


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

DROP TABLE IF EXISTS access_logs;

CREATE EXTERNAL TABLE access_logs (

  remote_addr STRING comment 'client IP',

  time_local STRING comment 'access time',

  request STRING comment 'request URL',

  status STRING comment 'HTTP status',

  body_bytes_sent STRING comment 'size of response body',

  http_referer STRING comment 'referer',

  http_cookie STRING comment 'cookies',

  remote_user STRING comment 'client name',

  http_user_agent STRING comment 'client browser info',

  request_time STRING comment 'consumed time of handling request',

  host STRING comment 'server host',

  msec STRING comment 'consumed time of writing logs'

)

COMMENT 'web access logs'

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'

WITH SERDEPROPERTIES (

  "input.regex" = "([0-9\\.]+) - \\[([^\\]]+)\\] \"([^\"]*)\" ([\\d]+) ([\\d]*) \"([^\"]*)\" \"([^\"]*)\" ([\\S]+) \"([^\"]*)\" ([0-9\\.]+) ([\\S]+) ([0-9\\.]+)"

)

STORED AS TEXTFILE

LOCATION "/user/root";

这样,Hive会建立access_logs表,然后通过正则表达式来解析日志文件。注意LOCATION需要跟上传日志文件所对应,比如/user/root。当然,BMR还支持从对象存储BOS上读取数据,暂且不提。

成功创建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')))

切换到图表页,可以以柱状图来可视化结果:


可见大量的访问在晚上九点,是不是需要在这段时间多投放一些广告呢?

此外,Hue还能够轻松制作地图可视化效果:


这里需要IP地址到地理位置信息的映射等转换,数据库的完备性影响到结果的精确性,欲了解详情,请联系bce@baidu.com。

总之,通过百度MapReduce提供的一站式Hue的帮助,用Hadoop做数据分析也成了轻松愉快的事情,产品汪再也不用看程序猿的脸色啦!

最后

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值