pig脚本如下
register myudfs.jar;
DEFINE DayExtractor org.apache.pig.piggybank.evaluation.util.apachelogparser.DateExtractor('yyyy-MM-dd hh:mm:ss');
log = LOAD '/user/input/test/hp_analytics.ifensi.com-access_log.log' USING PigStorage() as (l1:chararray,l2:chararray,l3:chararray,l4:chararray,l5:chararray,l6:chararray,l7:chararray,l8:chararray,l9:chararray,l10:chararray);
log1 = FOREACH log GENERATE FLATTEN(STRSPLIT(l1, '\\,', 2))as (ip,otherargs),SUBSTRING(l4,1,21) as date,FLATTEN(REGEX_EXTRACT_ALL(l5,'\\"[^ ]* ([^ ]*) [^\\"]*\\"')) as url,FLATTEN(REGEX_EXTRACT_ALL(l8,'.{1}(.*).{1}')) as referer,FLATTEN(REGEX_EXTRACT_ALL(l9,'.{1}(.*).{1}')) as useragent,FLATTEN(REGEX_EXTRACT_ALL(l10,'.{1}(.*).{1}')) as vuid;
log2 = FILTER log1 BY SUBSTRING(vuid, 0, 4)=='vuid';
log3 = FOREACH log2 GENERATE ip, myudfs.DateExtractor(date) as date, FLATTEN(STRSPLIT(url, '\\?', 2)) AS (cmd, args), referer, useragent,FLATTEN(REGEX_EXTRACT_ALL(vuid,'.{5}(.*)')) as vuid;
SPLIT log3 INTO ihm IF cmd=='/__ihm.gif', ia IF cmd=='/__ia.gif';
-- ia process block
log4 = FOREACH ia GENERATE vuid, ip, FLATTEN(STRSPLIT(date, '\\|', 2)) AS (date, time), FLATTEN(REGEX_EXTRACT_ALL(args,'version=([^&]*)&(.*)')) as (ia_version, ia_other), referer,useragent;
SPLIT log4 INTO ia_version1 IF ia_version == '1.0', ia_version2 IF ia_version == '1.1';
log5 = FOREACH ia_version1 GENERATE vuid, ip,date,time, FLATTEN(REGEX_EXTRACT_ALL(ia_other,'browser=([^&]*)&browser_version=([^&]*)&operation_system=([^&]*)&operation_system_version=([^&]*)&flash_version=([^&]*)&java_enabled=([^&]*)&language=([^&]*)&screen_colors=([^&]*)&screen_resolution=([^&]*)&referrer=([^&]*)&tourl=([^&]*)&vuid=([^&]*)')) AS (ia_browser,ia_browser_version,ia_operation_system,ia_operation_system_version,ia_flash_version,ia_java_enabled,ia_language,ia_screen_colors,ia_screen_resolution,ia_referrer,ia_tourl,ia_vuid), referer, useragent;
result1 = FOREACH log5 GENERATE vuid,ip,date,time,ia_browser,ia_browser_version,ia_operation_system,ia_operation_system_version,ia_flash_version,ia_java_enabled,ia_language,ia_screen_colors,ia_screen_resolution,ia_referrer,ia_tourl,ia_vuid,referer,useragent;
STORE result1 INTO '/test/output/data/ia/ia_version1' USING PigStorage();
log6 = FOREACH ia_version2 GENERATE vuid, ip,date,time, FLATTEN(REGEX_EXTRACT_ALL(ia_other,'browser=([^&]*)&browser_version=([^&]*)&operation_system=([^&]*)&operation_system_version=([^&]*)&flash_version=([^&]*)&java_enabled=([^&]*)&language=([^&]*)&screen_colors=([^&]*)&screen_resolution=([^&]*)&referrer=([^&]*)&tourl=([^&]*)&title=([^&]*)&vuid=([^&]*)&muid=([^&]*)&mfid=([^&]*)&musername=([^&]*)&memail=([^&]*)')) AS (ia_browser,ia_browser_version,ia_operation_system,ia_operation_system_version,ia_flash_version,ia_java_enabled,ia_language,ia_screen_colors,ia_screen_resolution,ia_referrer,ia_tourl,ia_title,ia_vuid,ia_muid,ia_mfid,ia_musername,ia_memail), referer, useragent;
result2 = FOREACH log6 GENERATE vuid,ip,date,time,ia_browser,ia_browser_version,ia_operation_system,ia_operation_system_version,ia_flash_version,ia_java_enabled,ia_language,ia_screen_colors,ia_screen_resolution,ia_referrer,ia_tourl,ia_title,ia_vuid,referer,useragent,ia_muid,ia_mfid,ia_musername,ia_memail;
STORE result2 INTO '/test/output/data/ia/ia_version2' USING PigStorage();
-- ihm process block
ihm1 = FOREACH ihm GENERATE vuid,ip,FLATTEN(STRSPLIT(date, '\\|', 2)) AS (date, time),FLATTEN(REGEX_EXTRACT_ALL(args,'version=([^&]*)&(.*)')) as (ihm_version, ihm_other),referer,useragent;
ihm2 = FOREACH ihm1 GENERATE vuid,ip,date,time,ihm_version,FLATTEN(REGEX_EXTRACT_ALL(ihm_other,'vuid=([^&]*)&url=([^&]*)&width=([^&]*)&x=([^&]*)&y=(.*)')) as (ihm_vuid,ihm_url,ihm_width,ihm_x,ihm_y),referer,useragent;
ihm3 = FOREACH ihm2 GENERATE vuid,ip,date,time,ihm_vuid,ihm_url,ihm_x,ihm_y,ihm_width,referer,useragent;
STORE ihm3 INTO '/test/output/data/ihm' USING PigStorage();
附件为部分日志文件
分享到:
相关推荐
标题中的“用于进行Hadoop Pig分析的日志”指的是在大数据处理场景中,使用Apache Pig工具对网站访问日志数据进行分析的过程。Pig是Hadoop生态系统中的一个高级数据处理语言,它提供了一种抽象的方式,使得用户可以...
【标题】:“2022毕业设计,基于 Hadoop 的游戏数据分析系统源码” 这个毕业设计项目主要聚焦于使用Hadoop框架开发一个游戏数据分析系统。Hadoop是Apache软件基金会的一个开源分布式计算平台,专为处理和存储大规模...
标题 "基于hadoop,hive,hbase的日志分析系统.zip" 涉及到的核心技术是大数据处理领域中的Hadoop、Hive和HBase。这三个工具在大数据生态系统中扮演着重要角色,尤其对于日志分析而言,它们提供了一种有效且可扩展的...
《基于Hadoop的数据分析系统详解》 在当今大数据时代,数据的价值日益凸显,而有效处理海量数据的关键技术之一就是Hadoop。Hadoop是Apache软件基金会开发的一个开源框架,专门用于处理和存储大规模数据,尤其适合...
这篇基于Hadoop的流量日志分析系统的学士学位毕业论文,深入探讨了Hadoop在大数据处理中的应用及其优势。 首先,Hadoop架构是论文的核心研究对象。Hadoop是由Apache基金会开发的一个开源项目,旨在提供一种分布式...
《基于Hadoop的Web日志分析》 在大数据时代,数据的价值不言而喻,而Web日志作为互联网应用产生的海量数据源之一,其蕴含的信息对于优化网站性能、提升用户体验、进行用户行为分析等具有重要价值。Hadoop,作为开源...
综上所述,基于Hadoop的大数据平台为高校校园网站日志的存储和分析提供了一套完整的解决方案。通过对海量日志数据的有效管理和深入挖掘,不仅能够帮助高校提升网站服务质量,还能加强网络安全防护,从而为师生提供一...
Pig是基于MapReduce的高级查询语言,允许用户用SQL-like语法进行数据分析。Chukwa是基于Hadoop的大规模集群监控系统,用于数据收集和处理。 电力行业的大数据分析模型通常涉及数据抽取、格式清洗和DFS存储三个步骤...
本项目“基于Hadoop、Spark的大数据金融信贷风险控制系统”旨在利用这两种技术来构建一个高效的风险评估和管理系统。让我们深入探讨一下其中涉及的关键知识点。 1. Hadoop:Hadoop是Apache基金会开源的分布式存储和...
7. **Flume**:用于收集、聚合和移动大量日志数据的系统,常用于数据流入Hadoop集群。 8. **Oozie**:工作流调度系统,管理Hadoop生态系统中的作业和协调任务。 在进行Hadoop数据分析时,我们通常会经历以下步骤:...
标题中的“基于Hadoop的携程集中式日志及其周边生态系统介绍”揭示了本文档将深入探讨携程公司如何利用Hadoop框架构建其集中式的日志处理系统,并且会涵盖Hadoop生态系统中的相关组件和技术。描述中提到的“2013年...
总的来说,基于Hadoop的智能购书系统利用了大数据处理的优势,通过Java编程实现各种功能,包括但不限于数据存储、分析、推荐算法等,从而为用户提供更智能、更个性化的购书体验。这样的系统设计充分体现了大数据时代...
《基于Hadoop平台的Web数据挖掘系统》是一个深入探讨大数据处理和分析的行业文档,它主要聚焦于如何利用Hadoop框架来实现Web数据的有效挖掘。Hadoop是一个开源的分布式计算框架,由Apache软件基金会开发,它能够处理...
【标题】:“毕业设计,基于 Hadoop 的游戏数据分析系统” 【描述】:此毕业设计项目主要探讨了如何利用Hadoop框架来构建一个高效、可扩展的游戏数据分析系统。Hadoop是Apache开源项目的一部分,专为处理和存储大...
Hadoop生态体系还包括一系列辅助工具,如Pig提供了一种高级的数据流语言,简化了大数据分析的复杂性;Hive则为Hadoop带来了SQL兼容性,使得用户能够使用熟悉的SQL语法进行数据查询和分析;HBase是一个分布式、列式...
Hadoop生态中还包括许多其他组件,如Hive(用于数据仓库和SQL查询)、Pig(提供数据分析工具)、HBase(NoSQL数据库)、Spark(更快的计算框架)等,它们共同构建了一个完整的数据处理平台。 六、Hadoop应用实例 1....
第十三章专注于Hadoop在日志分析中的应用,展示了如何利用Hadoop的强大处理能力进行大规模日志数据的分析。 **14. 使用HBase构建实时系统(Building Real-Time Systems Using HBase)** 第十四章介绍HBase,这是...
【标题】2022 毕业设计:基于 Hadoop 的游戏数据分析系统 在当前大数据时代,游戏行业的数据量持续增长,对于游戏公司的运营、优化以及玩家行为研究至关重要。基于 Hadoop 的游戏数据分析系统是一种有效处理大规模...