现在的位置: 首页 > 综合 > 正文

Hadoop自定义读取文件

2013年09月18日 ⁄ 综合 ⁄ 共 2309字 ⁄ 字号 评论关闭

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

 

 

抱歉!评论已关闭.