欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hadoop自定义读取文件

程序员文章站 2022-03-06 12:04:45
...

今天从网上看到点数据,很适合用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行连接为一条记录。换行符作为一条记录的结束。