HDInsight-Hadoop实战(一)网站日志分析

news/2024/5/13 14:40:41/文章来源:https://yangzhenping.blog.csdn.net/article/details/41946199

HDInsight-Hadoop实战(一)网站日志分析

 

简介

在此示例中,你将使用分析网站日志文件的 HDInsight 查询来深入了解客户使用网站的方式。借助此分析,你可查看外部网站一天内对该网站的访问频率以及用户体验的网站错误总结。

在此教程中,你将学习如何使用 HDInsight:

  • 连接到包含网站日志文件的 Azure Storage Blob
  • 创建配置单元表以查询这些日志
  • 创建配置单元查询以分析数据
  • 使用 Microsoft Excel 连接到 HDInsight(使用 ODBC 连接)以检索已分析的数据

先决条件

已使用群集配置你完成脚本和查询所需的所有内容。要将已分析的数据导出到 Microsoft Excel,你必须满足以下要求:

  • 必须安装了 Microsoft Excel 2010Microsoft     Excel 2013
  • 你必须具有 Microsoft 配置单元 ODBC 驱动程序才能将数据从配置单元导入 Excel 中。基于 Microsoft     Excel 的版本选择 32 位或 64 位版本。

已加载到 Windows Azure 存储 Blob 的网站日志数据

以下是此示例使用的网站日志数据位置。你可从此页顶部的文件浏览器选项卡访问此数据。也可以在 [default storage account]/[defaultcontainer]/HdiSamples/WebsiteLogSampleData/SampleLog 路径下访问此示例的数据。

 

网站日志数据

wasb://yzphadoop01@yzpcloud.blob.core.chinacloudapi.cn/HdiSamples/WebsiteLogSampleData/SampleLog/

正在创建配置单元表以查询网站日志数据

以下配置单元语句创建了一个外部表,允许配置单元查询存储在 Azure Blob 存储中的数据。外部表以初始文件格式保留数据,同时允许配置单元针对文件内的数据执行查询。

配置单元语句通过描述文件内的字段、字段间的界定符以及  Azure Blob 存储中文件的位置创建了名为网络日志的新表。在此教程的创建配置单元查询以分析数据章节,你将针对存储在此表中的数据执行查询。

CreateExternal Table weblogs

DROP TABLE IFEXISTS weblogs;

 

--create tableweblogs on space-delimited website log data

CREATE EXTERNALTABLE IF NOT EXISTS weblogs(s_date date, s_time string, s_sitename string,cs_method string, cs_uristem string,

cs_uriquerystring, s_port int, cs_username string, c_ip string, cs_useragent string,

cs_cookiestring, cs_referer string, cs_host string, sc_status int, sc_substatus int,

sc_win32statusint, sc_bytes int, cs_bytes int, s_timetaken int )

ROW FORMATDELIMITED FIELDS TERMINATED BY ' '

STORED ASTEXTFILE LOCATION'wasb://yzphadoop01@yzpcloud.blob.core.chinacloudapi.cn/HdiSamples/WebsiteLogSampleData/SampleLog/'

TBLPROPERTIES('skip.header.line.count'='2');

 

创建配置单元查询以分析数据

以下配置单元查询基于网络日志表上运行的查询创建了两个新表。新表名为 clienterrors  refersperday

clienterrors 的查询从介于 400 500 之间的 HTTP 状态代码的网络日志表中提取数据,并且按遭遇这些错误的用户以及错误代码类型对其进行分组。状态代码的范围介于 400 500 之间,通过网络日志表中的 sc_status 列表示,对应访问网站时客户端遭遇的错误。然后,提取的数据按每个错误代码的发生次数进行排序并写入 clienterrors 表。

refersperday 的查询从引用此网站的所有外部网站的网络日志表中提取数据。外部网站信息从网络日志表的 cs_referer 列中提取。为了确保引用链接不遭遇错误,表仅显示返回 200 300 之间的 HTTP 状态代码的页面数据。然后,提取的数据将写入 refersperday 表。

DROP TABLE IFEXISTS ClientErrors;

 

--create tableClientErrors for storing errors users experienced and their frequencies

CREATE EXTERNALTABLE ClientErrors(sc_status int, cs_referer string, cs_page string, cnt int)

ROW FORMATDELIMITED FIELDS TERMINATED BY ',';

 

--populate tableClientErrors with data from table weblogs

INSERT OVERWRITETABLE ClientErrors

SELECT sc_status,cs_referer,

                                concat(cs_uristem,'?',regexp_replace(cs_uriquery,'X-ARR-LOG-ID=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',''))cs_page,

                                count(distinctc_ip) as cnt

FROM weblogs

WHERE sc_status>=400 and sc_status < 500

GROUP BYsc_status, cs_referer, concat(cs_uristem,'?',regexp_replace(cs_uriquery,'X-ARR-LOG-ID=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',''))

ORDER BY cnt;

-------------------------------------------------------------------------------------------

DROP TABLE IFEXISTS RefersPerDay;

 

--create tableRefersPerDay for storing references from external websites

CREATE EXTERNALTABLE IF NOT EXISTS RefersPerDay(year int, month int, day int, cs_refererstring, cnt int)

ROW FORMATDELIMITED FIELDS TERMINATED BY ',';

 

--populate tableRefersPerDay with data from the weblogs table

INSERT OVERWRITETABLE RefersPerDay

SELECTyear(s_date), month(s_date), day(s_date), cs_referer, count(distinct c_ip) ascnt

FROM weblogs

WHERE sc_status>=200 and sc_status <300

GROUP BY s_date,cs_referer

ORDER BY cntdesc;

-------------------------------------------------------------------------------------------

 

正在执行查询

单击提交以运行先前章节中显示的查询。查询执行以下任务:

  1. 从 HDInsight 群集关联的 Azure     Blob 存储中的原始网站日志数据创建网络日志表。
  2. 创建并填充先前章节中描述的 clienterrors 和 refersperday 表。

运行查询时,你可单击查看详细信息来获取有关后台运行任务的更多信息。在页底所有作业都处于已完成状态后,继续执行 将数据加载到 Excel

DROP TABLE IFEXISTS weblogs;

 

--create tableweblogs on space-delimited website log data

CREATE EXTERNALTABLE IF NOT EXISTS weblogs(s_date date, s_time string, s_sitename string,cs_method string, cs_uristem string,

                                    cs_uriquerystring, s_port int, cs_username string, c_ip string, cs_useragent string,

                                    cs_cookiestring, cs_referer string, cs_host string, sc_status int, sc_substatus int,

                                    sc_win32statusint, sc_bytes int, cs_bytes int, s_timetaken int )

ROW FORMATDELIMITED FIELDS TERMINATED BY ' '

STORED ASTEXTFILE LOCATION 'wasb://yzphadoop01@yzpcloud.blob.core.chinacloudapi.cn/HdiSamples/WebsiteLogSampleData/SampleLog/'

TBLPROPERTIES('skip.header.line.count'='2');

 

DROP TABLE IFEXISTS ClientErrors;

 

--create tableClientErrors for storing errors users experienced and their frequencies

CREATE EXTERNALTABLE ClientErrors(sc_status int, cs_referer string, cs_page string, cnt int)

ROW FORMATDELIMITED FIELDS TERMINATED BY ',';

 

--populatetable ClientErrors with data from table weblogs

INSERTOVERWRITE TABLE ClientErrors

SELECTsc_status, cs_referer,

                        concat(cs_uristem,'?',regexp_replace(cs_uriquery,'X-ARR-LOG-ID=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',''))cs_page,

                        count(distinct c_ip) ascnt

FROM weblogs

WHERE sc_status>=400 and sc_status < 500

GROUP BYsc_status, cs_referer, concat(cs_uristem,'?', regexp_replace(cs_uriquery,'X-ARR-LOG-ID=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',''))

ORDER BY cnt;

 

DROP TABLE IFEXISTS RefersPerDay;

 

--create tableRefersPerDay for storing references from external websites

CREATE EXTERNALTABLE IF NOT EXISTS RefersPerDay(year int, month int, day int, cs_refererstring, cnt int)

ROW FORMATDELIMITED FIELDS TERMINATED BY ',';

 

--populatetable RefersPerDay with data from the weblogs table

INSERTOVERWRITE TABLE RefersPerDay

SELECTyear(s_date), month(s_date), day(s_date), cs_referer, count(distinct c_ip) ascnt

FROM weblogs

WHERE sc_status>=200 and sc_status <300

GROUP BYs_date, cs_referer

ORDER BY cntdesc;

 


作业会话

查询名称

日期

ID

操作

状态

表中无可用数据

 

正在将数据加载到 Excel

创建配置单元表之后,你可使用 Microsoft 配置单元 ODBC 驱动器将数据从配置单元导入到 Excel。安装驱动程序后,请使用以下步骤连接到表。

1. 打开 Excel 并创建空白的工作表。

2. 从数据选项卡中,选择来自其他源,然后选择来自 Microsoft 查询

3. 提示选择数据源时,选择示例 Microsoft 配置单元 DSN

4. 在 Microsoft 配置单元 ODBC 驱动器连接对话框中,输入以下值,然后单击“确定”。

  • 主机 - HDInsight 群集的主机名。例如,mycluster.azurehdinsight.net
  • 用户名 - HDInsight 群集的管理员名称
  • 密码 - 管理员密码

所有其它字段均为默认值。

5. 在查询向导中,选择 refersperday 表,然后选择 > 按钮。

6. 单击下一步继续查看向导,直到到达带有完成按钮的对话框。单击完成

7. 出现导入数据对话框后,单击确定以接受默认值。完成查询后,数据将显示在 Excel 中。

摘要

在本教程中,你了解了如何使用 Azure HDInsight 分析使用 Apache Hive 的网站日志数据。你浏览了一个流程,了解原始数据如何先上载到  Azure 存储空间 Blob 再加载到配置单元表以便执行查询。最后,你了解了如何将配置单元查询的结果导入到 Microsoft Excel。如果你具有本教程或其他示例方面的反馈,请使用上面的帮助 + 反馈链接。

使用以下链接继续了解如何将配置单元和 Excel 与 HDInsight 一同使用。

  • 将配置单元和 HDInsight Hadoop 一同使用
  • 使用 HDInsight Hadoop 分析 Twitter 数据
  • 使用 Microsoft 配置单元 ODBC 驱动程序将 Excel 连接到 Hadoop

 转载请注明出处:http://blog.csdn.net/yangzhenping, 谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_798978.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20个学习CSS的绝佳网站-让你从入门到精通

CSS&#xff08;层叠样式表&#xff09;是一种简单的设计语言&#xff0c;能够将页面变漂亮这回事儿变的简单化。在HTML和XHTML中设定页面的样式&#xff0c;这是最常用的应用。但也可以应用于 XML类的文档&#xff0c;包括SVG和XUL。他负责管理网页的设计和外观。使用CSS&…

ios图文详情加载html_WordPress 网站深度优化加载速度(技术篇)

本篇文章主要介绍如何对网站的静态资源进行优化。静态资源就是网页中用到的 js/css/fonts 这些文件。基本上 WordPress 的每个插件&#xff0c;每个主题都会有自己的 css/js/fonts。最终在做好的网站上会加载这些全部的 js/css/fonts 文件。而我们需要做的就是优化这些静态资源…

Nginx配置SSL证书部署HTTPS网站

一、什么是 SSL 证书&#xff0c;什么是 HTTPSSSL 证书是一种数字证书&#xff0c;它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道&#xff0c;从而实现&#xff1a;1、数据信息在客户端和服务器之间的加密传输&#xff0c;保证双方传递信息的安全…

前端通过网站得到json_【WEB开发】Django中方便快捷的json响应

目前流行的前后端分离开发模式中&#xff0c;前端工程师需要根据后端开发人员给出的API文档发起不同的请求得到数据&#xff0c;API文档规定了一些请求的模板以及响应的数据格式和代码。通常&#xff0c;前后端约定一些代码以代表一定含义的响应。在这里&#xff0c;分享一个作…

java 文件上传漏洞_网站漏洞修复之UEditor漏洞 任意文件上传漏洞

UEditor于近日被曝出高危漏洞&#xff0c;包括目前官方UEditor 1.4.3.3 最新版本&#xff0c;都受到此漏洞的影响&#xff0c;ueditor是百度官方技术团队开发的一套前端编辑器&#xff0c;可以上传图片&#xff0c;写文字&#xff0c;支持自定义的html编写&#xff0c;移动端以…

linux服务器网站php无法访问,linux服务器无法远程连接

1、查看SSH是否安装(检查是否装了SSH包)输入命令&#xff1a;rpm -qa | grep ssh如下如所示系统已经默认安装了SSH&#xff1a;若没有安装&#xff0c;则输入&#xff1a;yum install openssh-server进行安装。在线视频教程推荐&#xff1a;linux视频教程2、查看SSH服务是否运行…

Java开源建站工具

http://www.ruanyifeng.com/blog/2011/08/opensource_java_web_development_tools.html 作者&#xff1a; 阮一峰 日期&#xff1a; 2011年8月11日 美国程序员Jon Scott Stevens&#xff0c;公布了他的创业公司所使用的开发工具清单。 他的语言平台是Java&#xff0c;开发项目是…

10个学习Android开发的网站推荐

1. Android Developers 作为一个Android开发者&#xff0c;官网的资料当然不可错过&#xff0c;从设计&#xff0c;培训&#xff0c;指南&#xff0c;文档&#xff0c;都不应该错过&#xff0c;在以后的学习过程中慢慢理解体会。 2. Android Guides - CodePath CodePath是国外一…

树莓派lnmp安装mysql_树莓派上的lnmp,建立网站》解决phpmyadmin无法访问树莓派上mysql的问题...

本篇主要记录lnmp的搭建过程&#xff0c;以及遇到的问题。解决phpmyadmin无法访问树莓派上mysql的问题时间2018年2月11日使用wordpress 可道云 等开源软件作为网站程序。网站的运行环境是lnmp&#xff0c;它是 linux nginx mysql php的缩写。注意:(首先: nginx安装完成后网页可…

PHP授权查询地址,PHP网站域名授权系统正版授权查询系统网站授权加密系统带自助授权查询...

资源介绍PHP网站域名授权系统正版授权查询系统网站授权加密系统带自助授权查询&#xff0c;主要修复了前一版本的BUG&#xff0c;增加管理员登录安全码&#xff0c;增加服务器IP域名双重授权模式!域名服务器IP授权模式 授权顶级域名后 其他二级域名均可使用。目前几乎可以运用到…

html网页如何上线,从零开始上线网站的日常(二)— 第一次上线

上一章&#xff1a;从零开始上线网站的日常(一)— 前后端分离网站本地调通本章目标&#xff1a;在云服务器上线上一章完成的网站时间&#xff1a;2019.05.13零. 步骤项目打包云服务器环境部署(JDK & Nginx)项目部署部署脚本编写一. 项目打包1. 前端项目打包前端项目打包比较…

分享高性能ASP.NET网站的系统架构设计

大型动态应用系统平台主要是针对于大流量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑&#xff0c;以保证网站应用的平稳运行。 大型动态应用系统又可分为几个子系统&#xff1a; Web前端系统负载均衡系统数据…

假如我来架构12306网站(一) - 概论

序言&#xff1a; 此文的撰写始于国庆期间&#xff0c;当中由于工作过于繁忙而不断终止撰写&#xff0c;最近在设计另一个电商平台时再次萌发了完善此文并且发布此文的想法&#xff0c;期望自己的绵薄之力能够给予各位同行一些火花&#xff0c;共同推进国内的大型在线交易系统…

企业网站推广的方法有哪些?

摘要&#xff1a; 网站推广就是以互联网为基础&#xff0c;借助平台和网络媒体的交互性来辅助营销目标实现的一种新型的市场营销方式。当前传播常见的推广方式主要是在各大网站推广服务商中通过买广告之类等等方式来实现&#xff0c;免费网站推广包括&#xff1a;SEO优化网站内…

网站设计如何兼顾优化?

开发十年&#xff0c;就只剩下这套Java开发体系了 >>> 网站设计除了设计网站的外观和风格以外&#xff0c;同时还要编写前端的代码&#xff0c;网站设计用描述性的标签来组织页面结构&#xff0c;可以提高内容对搜索引擎的可读性&#xff0c;有利于网站优化&#x…

通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行(转载)

LoadControl 和输出缓存会话和输出缓存Forms 身份验证票证生存期视图状态&#xff1a;无声的性能杀手SQL Server 会话状态&#xff1a;另一个性能杀手未缓存的角色配置文件属性序列化线程池饱和模拟和 ACL 授权不要完全信赖它 — 请设置数据库的配置文件&#xff01;ASP.NET 成…

做一个网站需要多少花费?

我是今年清明节&#xff08;4.5&#xff09;之后开始做自己的网站&#xff0c;这周&#xff08;6.20号左右&#xff09;网站正式上线。由于在上班&#xff0c;利用下班时间和周末&#xff0c;陆陆续续做了3个月&#xff0c;勉强做了个能打开&#xff0c;有内容&#xff08;对&a…

搭建自己的ebook网站

2019独角兽企业重金招聘Python工程师标准>>> 搭建自己的电子书网站 下载代码方式&#xff1a; githubgitee项目介绍 项目使用spring-boot开发&#xff0c;使用maven主要分为manager&#xff0c;common&#xff0c;client模块。 manager 管理模块 参考 client 客户端…

注册网站域名多少钱_网站注册域名要知道什么?注意什么?

网站注册域名要知道什么&#xff1f;注意什么&#xff1f;网站注册域名的问题咱们聚名网已经跟大家说了很多了&#xff0c;但是注册好域名之后&#xff0c;接下来该做哪些&#xff0c;咱们聚名网还没和大家细细的说&#xff0c;一般网站注册好之后需要做哪些事情呢&#xff1f;…

iis网站属性在哪_IIS在使用URL Rewrite 重写的时候由于目标服务器响应时间长,导致出现502问题解决...

按照正常来说&#xff0c;再iis网站界面会有一个application requestrouting cache 的 icon&#xff0c; 可以点击 设置timeout 但是这里没有显示找到了 官方说明可以用命令行解决这个问题https://blogs.iis.net/richma/502-3-bad-gateway-the-operation-timed-out-with-iis-ap…