Hadoop自定义读取文件

本文介绍了如何在Hadoop MapReduce中自定义RecordReader类,以处理由换行符分隔的多行记录,例如日志分析场景。通过MyRecordReader类的实现,可以将连续的多行合并为一条记录,从而正确解析特定格式的数据。
摘要由CSDN通过智能技术生成

今天从网上看到点数据,很适合用MapReduce来分析一下。一条记录的格式如下:

 

[**] [1:538:15] NETBIOS SMB IPC$ unicode share access [**]
[Classification: Generic Protocol Command Decode] [Priority: 3]
09/04-17:53:56.363811 168.150.177.165:1051 -> 168.150.177.166:139
TCP TTL:128 TOS:0x0 ID:4000 IpLen:20 DgmLen:138 DF
***AP*** Seq: 0x2E589B8  Ack: 0x642D47F9  Win: 0x4241  TcpLen: 20

 

[**] [1:1917:6] SCAN UPnP service discover attempt [**]
[Classification: Detection of a Network Scan] [Priority: 3]
09/04-17:53:56.385573 168.150.177.164:1032 -> 239.255.255.250:1900
UDP TTL:1 TOS:0x0 ID:80 IpLen:20 DgmLen:161
Len: 133

 

大家可以看到要处理上面的记录,肯定不能用系统默认的TextInputFormat.class

所以要自己写一个读取类,从上面的格式可以看出。每一条记录由换行符分割,其余的行为一条记录(包括多行)。闲话少说,直接上代码:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值