pig 自定义加载函数加载apache 的access.log中的数据

芯片DFT设计实战:从扫描链到BIST,揭秘可测试性设计核心技术与避坑指南 在超大规模集成电路设计中,可测试性设计是确保芯片制造良率和可靠性的关键技术。其核心原理是通过在设计阶段植入特定电路结构,解决芯片内部高度集成与外部测试接口有限之间的矛盾,从而实现对内部逻辑状态的有效控制和观测。这项技术的核心价值在于,它能以最小的面积和性能开销,显著提升芯片生产后的故障检测与诊断能力,直接关系到产品的成本与上市时间。在实际工程中,扫描链技术通过将时序元件重构为可移位的寄存器链,实现了测试向量的高效注入与状态捕获;而内建自测试则针对存储器等模块,集成了自动化测试引擎。这些方法广泛应用于从消费电 阅读详情

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518

第二个视频发布  https://edu.youkuaiyun.com/course/detail/27109

腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------

access.log数据:

 

127.0.0.1 - - [08/Jan/2012:21:46:31 +0800] "GET / HTTP/1.1" 200 44
127.0.0.1 - - [08/Jan/2012:21:46:31 +0800] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [08/Jan/2012:22:47:15 +0800] "GET /aa.php HTTP/1.1" 200 61261
127.0.0.1 - - [08/Jan/2012:22:47:15 +0800] "GET /aa.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2524
127.0.0.1 - - [08/Jan/2012:22:47:15 +0800] "GET /aa.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2146
127.0.0.1 - - [08/Jan/2012:22:47:15 +0800] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [08/Jan/2012:22:49:39 +0800] "GET /aa.php HTTP/1.1" 200 61496
127.0.0.1 - - [08/Jan/2012:22:49:39 +0800] "GET /aa.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2524
127.0.0.1 - - [08/Jan/2012:22:49:39 +0800] "GET /aa.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2146
127.0.0.1 - - [08/Jan/2012:22:49:39 +0800] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [08/Jan/2012:23:05:28 +0800] "GET /tiki HTTP/1.1" 301 230
127.0.0.1 - - [08/Jan/2012:23:05:28 +0800] "GET /tiki/ HTTP/1.1" 200 30566
127.0.0.1 - - [08/Jan/2012:23:05:28 +0800] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [08/Jan/2012:23:06:23 +0800] "GET /tiki/index.php HTTP/1.1" 302 -
127.0.0.1 - - [08/Jan/2012:23:06:24 +0800] "GET /tiki/tiki-install.php HTTP/1.1" 200 10974
127.0.0.1 - - [08/Jan/2012:23:06:25 +0800] "GET /tiki/lib/tiki-js.js HTTP/1.1" 200 54004
127.0.0.1 - - [08/Jan/2012:23:06:25 +0800] "GET /tiki/styles/fivealive.css HTTP/1.1" 200 21404
127.0.0.1 - - [08/Jan/2012:23:06:26 +0800] "GET /tiki/lib/jquery_tiki/tiki-jquery.js HTTP/1.1" 200 94701
127.0.0.1 - - [08/Jan/2012:23:06:26 +0800] "GET /tiki/img/tiki/Tiki_WCG.png HTTP/1.1" 200 9362
127.0.0.1 - - [08/Jan/2012:23:06:26 +0800] "GET /tiki/pics/icons/help.png HTTP/1.1" 200 740


pig ApacheLoader:

 

 

package pig;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.InputFormat;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.RecordReader;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.pig.LoadFunc;
import org.apache.pig.backend.executionengine.ExecException;
import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit;
import org.apache.pig.data.Tuple;
import org.apache.pig.data.TupleFactory;

public class ApacheLoader extends LoadFunc {
	protected RecordReader recordReader = null;

	@Override
	public InputFormat getInputFormat() throws IOException {

		return new TextInputFormat();
	}

	@Override
	public Tuple getNext() throws IOException {
		try {
			if (!recordReader.nextKeyValue()) {
				return null;
			}
			List<String> list = new ArrayList<String>();
			Text value = (Text) recordReader.getCurrentValue();
			String pattern = "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3}) (\\d+)";
			Pattern p = Pattern.compile(pattern);
			Matcher matcher = p.matcher(value.toString());
			if (!matcher.matches()) {
				return null;
			}
			list.add(matcher.group(1));
			list.add(matcher.group(4));
			list.add(matcher.group(5));
			list.add(matcher.group(6));
			list.add(matcher.group(7));
			return TupleFactory.getInstance().newTuple(list);
		} catch (Exception e) {
			throw new ExecException(e);
		}
	}

	@Override
	public void prepareToRead(RecordReader reader, PigSplit split)
			throws IOException {
		this.recordReader = reader;
	}

	@Override
	public void setLocation(String location, Job job) throws IOException {
		FileInputFormat.setInputPaths(job, location);

	}

}


到pig grunt运行:

 

 register apacheLoader.jar 

A =load 'access.log' using pig.ApacheLoader();

dump A;

 

说明:如果access.log有9个列则正则表达式为

 

 String logEntryPattern = "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3}) (\\d+) \"([^\"]+)\" \"([^\"]+)\"";


上面我的程序是7个列的。

 

则则参考:

http://nc100.blog.sohu.com/148887042.html

http://www.cnblogs.com/csurn/archive/2010/06/22/1762791.html

 

改进:

如果最后一个也就是大小为-

String pattern = "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3}) (\\d+|-)";

动态掩码语言模型(MLM)优化策略:效率提升与最新技术实践 本文深入探讨了动态掩码语言模型(MLM)的优化策略与技术实践,涵盖核心原理、效率优化及2025年最新突破。重点解析了动态掩码在提升模型性能中的关键作用,包括工程实现、掩码策略演进及混合专家动态掩码等创新技术,为自然语言处理领域的研究与应用提供实用指南。 阅读详情

相关推荐

密码学小白必看:三大顶级会议论文下载与阅读指南(附完整资源链接)

本文为密码学初学者提供了系统获取和阅读三大顶级会议(Crypto、Eurocrypt、Asiacrypt)论文的实战指南。详细介绍了通过IACR官方渠道、ePrint预印本等权威资源免费下载论文的方法,并分享了高效筛选、精读核心章节及构建个人知识体系的具体策略,帮助读者快速切入密码学研究前沿。

weixin_28363123的博客 412

Kohana框架安装与配置实战指南(PHP 5.4–5.6)

Kohana是一个轻量、面向对象的PHP Web应用开发框架,强调约定优于配置与代码可读性。其核心基于PHP命名空间、PSR-0自动加载和清晰MVC分层,虽已停止维护,但在遗留系统维护、资源受限嵌入式环境及框架原理学习中仍具不可替代的技术价值。本文聚焦Kohana 3.3.x在现代开发环境中的真实落地——严格适配PHP 5.4–5.6版本,详解Apache/Nginx重写规则、目录权限、数据库碎片优化及常见报错(如Class 'Kohana' not found)的根因排查。适用于PHP、Web-Appli

weixin_34331102的博客 511

Unity获取透明物体深度数据

Unity获取透明物体深度数据前言透明&景深需求模型透明度部分带透明通道图片/视频部分半透明模型获取深度的具体实现方法带透明度图片/视频获取深度的具体实现方法结束语 前言 最近在做的项目有很多奇怪的需求,甚至之前在unity里用插件写了一个类似于蓝图的行为树插件,之后有时间给大家讲一讲相关的实现方法,今天刚解决了unity里透明物体无法获得深度数据的问题。所以分享给大家。 透明&景...

可以吃的妙脆角的博客 2632

分布式文件系统选型指南:从HDFS到JuiceFS的架构演进与实战对比

分布式文件系统是解决海量数据存储与高并发访问挑战的核心技术。其基本原理是将多台服务器的存储资源通过网络整合,对外提供统一的文件系统视图,实现容量、性能和可靠性的线性扩展。从技术价值看,它支撑了大数据分析、人工智能训练和云原生应用等现代计算范式,通过数据冗余和并行访问机制保障了业务连续性。在应用场景上,不同系统各有侧重:HDFS为批处理优化,采用主从架构和‘一次写入、多次读取’模型,适合日志聚合与数据仓库;JuiceFS则采用数据与元数据分离的云原生设计,依托对象存储实现极致弹性,并通过智能缓存为AI训练提供

culiao2169的博客 648

Python爬虫:爬取拼多多平台商品信息、销量、价格等数据

在本篇博客中,我们将深入探讨如何使用Python爬虫技术爬取拼多多平台的商品信息,包括商品的标题、销量、价格等详细数据。拼多多的商品页面通常是分页展示的,因此我们需要遍历多个页面,获取所有商品的信息。每个商品在拼多多平台上都有一个唯一的商品ID,我们可以通过该ID访问商品页面。通过以上的技术方案和代码示例,你已经掌握了如何使用Python爬虫获取拼多多平台上的商品信息、销量、价格等数据。等技术,解决拼多多平台的反爬虫机制,成功抓取我们所需的商品数据。,我们能够应对拼多多的反爬虫机制,稳定地获取到商品数据。

2201_76125261的博客 3657

微信小程序 - 解决报错 {“errcode“:41002,“errmsg“:“appid missing, rid: X“} 微信报错错误码errcode“:41002问题分析及解决教程(详细排查)

【微信小程序】报错{“errcode“:41002,“errmsg“:“appid missing, rid: 64e55770-67c1fb7e-027c5a70“}:【微信小程序】微信小程序登录请求出现appid missing提示,微信公众号{"errcode":41002,"errmsg":"appid missing"},微信 报错{“errcode“:41002,“errmsg“:“appid missing,微信小程序获取openid返回appid missing的问题,微信小程序提示Erro

🏆 前端领域优质创作者 5660

Pig用户自定义函数(UDF)

以词频统计为例,讲解Pig的用户自定义函数(UDF)。

zythy的专栏 1万+

Android实现自动输入文本效果 (附完整源码)

Android实现自动输入文本效果 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 416

大数据学习——数据处理工具Pig入门使用

简介Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转为一系列经过优化处理的MapReduce运算。特点 专注于大量数据集分析 运行在集群的计算架构上,Yahoo Pig提供了多层抽象,简化并行计算让普通用户使用,这些抽象完成自动把用户请求queries翻译成有效的并行评估计划,然后在物理集群上执行这些计划;

猿来这样-谢厂节的博客 7322

IgH EtherCAT 从入门到精通:第 30 章 实战:高可用 EtherCAT 系统设计

摘要:构建高可用EtherCAT系统的关键技术 本章详细介绍了工业级EtherCAT系统的高可用性设计方法,主要包括: 冗余链路架构:采用双网卡环形拓扑设计,主备网卡同时工作,通过IgH Master的冗余配置实现线缆故障自动切换。 状态监控机制:提供专用API实时监控主备链路状态,包括从站响应数、链路状态和冗余激活标志,形成完整的故障判断矩阵。 自动恢复功能:系统内置FSM架构支持热插拔自动检测和重配置,从站断线/重连时可自动完成状态恢复,同时允许应用层实施安全措施。 这些技术共同构成了生产环境下Ethe

从事嵌入式linux android驱动开发,拥有全栈能力 247

你用pig分析access_log日志中ip访问次数

环境说明:os版本:rhel5.7 64位hadoop版本:hadoop-0.20.2hbase版本:hbase-0.90.5pig版本:pig-0.9.2访问日志文件,下载文章中的附件!日志放在本地目录路径为:/home/hadoop/access_log.txt日志格式为:220.181.108.151 - - [31/Jan/2012:00:02:32 +0800] "...

weixin_33845477的博客 232

VTK API 详解(134):vtkOBJWriter - 写入 OBJ 模型

是 VTK 中用于将数据写入 Wavefront OBJ 文件格式的类。OBJ 格式是广泛支持的 3D 网格模型格式,支持顶点、面和基本几何信息的保存,便于模型在多种三维软件间交换。

yumeiguo的博客 140

javascript基于前端框架react或者vue或者其他其他框架导出数据生成csv文件,以及导入csv文件读取数据的简单例子

1.用npm在项目中安装以下插件: //根据数据导出生成csv文件插件安装 npm install file-saver --save //导入csv文件生成数据插件安装 npm install papaparse --save npm install jschardet --save npm install iconv-lite --save npm install encoding --s...

qq_39634880的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

大数据运维Pig

Pig 题: 在 master 节点安装 Pig Clients,打开 Linux Shell 以 MapReduce 模式启动它的 Grunt。 [root@master ~]# pig -x mapreduce 19/05/13 12:22:05 INFO pig.ExecTypeProvider: Trying ExecType : LOCAL 19/05/13 12:22:05 IN...

mn525520的博客 1134

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Apache Log4j RCE Waf Bypass & Data Exfiltration Payloads

简介 CVE-2021-44228(又名 log4shell)是 Apache Log4j 库中的一个远程代码执行漏洞,该库是一种基于 Java 的日志记录工具,广泛用于世界各地的应用程序中。此漏洞允许可以控制日志消息的攻击者执行从攻击者控制的服务器加载的任意代码——我们预计大多数使用 Log4j 库的应用程序都将满足此条件。 Apache Log4j2 <=2.14.1 在配置、日志消息和参数中使用的 JNDI 功能不能防止攻击者控制的 LDAP 和其他 JNDI 相关端点。当启用消息查找替换时,可

LiBai'S BLOG 6869

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

悲哀的"黑客大战"

作者:NetDemon几天来走了很多国内知名的论坛,对于这次的"黑客大战"可谓一个热门话题,各种意见都有,赞成的,不赞成的,乱起哄的,互相对骂的,令人笑破肚子的,真是五花八门,看看网页也有4天没有更新了,以次充充数,汇报我的观后感同时也说说我的一些观点:1.首先这次话题之所以会叫"黑客大战",其实是各个媒体对"黑客"这个词的侮辱,在我看来,一个真正的黑客是为了网络而生存,他的最高宗旨是获得一切他想

Anders tempter | Demo 1293

在LAMP环境搭载Discuz!(上)

1.下载Discuz![root@localhost~]#mkdir /data/www[root@localhostwww]#cd /data/www[root@localhostwww]#wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip[root@localhostw...

weixin_34409822的博客 145

从配置错误到内核漏洞:Linux本地提权核心思路与实战防御

在系统安全领域,权限管理是核心基础概念。其原理在于操作系统通过用户身份和访问控制列表来隔离资源,确保最小权限原则。这一机制的技术价值在于防止单一环节的漏洞导致整个系统沦陷,是构建纵深防御体系的基石。在应用场景上,无论是日常的服务器配置、服务部署,还是复杂的微服务架构,权限配置不当都可能成为攻击突破口。例如,在排查“DNS服务配置”或“WSUS更新失败”等运维问题时,若误操作文件权限,就可能为攻击者留下可乘之机。同样,在配置“Nacos服务治理”或“Claude MCP服务”等现代中间件时,复杂的配置环境更需

weixin_34037173的博客 426

Pig 重写加载函数和存储函数UDF

pig自带的pigstorage不能指定行分隔符,所以自己重写了一个简单的UDF类,可以指定列和行的分隔符,之前研究过的简单的, http://blog.csdn.net/ruishenh/article/details/12048067 但是弊端大,所以这次重写一下。 操作步骤打好包上传到服务器, grunt&gt; register /home/pig/pig-0.11.0/udf...

幸运小侯子 217

apache pig 读取日志处理,取不固定列最后一段数据

pig 脚本 --加载注册所需的 jar 包和方法 REGISTER /usr/hdp/current/pig-client/piggybank.jar; set phoenix.schema.isNamespaceMappingEnabled true; REGISTER /usr/hdp/current/phoenix-client/phoenix-client.jar; -- so...

weixin_43038063的博客 228

使用 Pig 进行数据分析

本文,我们将以一个具体案例说明,如何通过Pig——这一便捷的框架,进行数据的处理与分析工作。 (1) 上传待分析文件到 hdfs:比如我们要处理的用户上网日志信息,下载地址,上网日志数据(hadoop用);[root@hadoop0 ~]# hadoop fs -put /HTTP_20130313143750.dat /wlan该上网日志信息的字段,类型及含义如下:0、reportTime、lon

2134

apache访问日志access.log的解析以及如何将其导入mysql

首先,我们对apache访问日志进行一个解读, 220.181.108.92 - - [22/Aug/2013:23:59:59 +0800] "GET /min/f=/media/js/jquery-1.7.2.media/js/global_interaction.js&amp;201308221836 HTTP/1.1" 200 70550 "http://adfdfs.com.cn107...

系统运维 2297

Pig加载配置的四种方式

Pig加载配置的四种方式      由于要在开发机器上源码调试Pig,同时也要在单机上通过PIG_HOME/bin/下的pig脚本去执行Pig,以及在内网集群,生产环境上运行Pig,所以不同的配置环境会导致一些问题,比如Lzo压缩.有时明显你机器上安装了lzo,你CLASS_PATH中也加载hadoop这些配置,但还是不行.所以花了点时间,看了下Pig这方面的源码,终于搞明白.这里分享下.

Jack Zhu 2783

pig自定义load udf

假设文件test4.txt有这么两行数据: 1980080113312121212018 1985080113313131313023 规则是前8位为年月日,中间11位为手机号码,后3位表示的是年龄。 我们可以自定义一个加载udf来加载这个文件 package com.besttone.pig.udf.load; import java.io.IOException; im

xiao_jun_0820的专栏 1929

pig对应sql的基本命令

1.从文件导入数据 1)Mysql (Mysql需要先创建表). CREATE TABLE TMP_TABLE(USER VARCHAR(32),AGEINT,IS_MALE BOOLEAN); CREATE TABLE TMP_TABLE_2(AGE INT,OPTIONSVARCHAR(50)); -- 用于Join LOAD DATA LOCAL INFILE '/tmp/...

weixin_30556161的博客 204
上一篇: sqoop1.4.4命令
下一篇: Pig Latin基础2 函数清单
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值