文件内容:
1363157985066 【时间戳】
13726230503 【手机号,有相同的】 第二个
00-FD-07-A4-72-B8:CMCC【运营商】
120.196.100.82 【IP】
i02.c.aliimg.com 【网址,有的没有这项】
视频网站【网站类别,有的没有】
24 【上传数据包个数】
27 【下载数据包个数】
2481 【上行流量费】 倒数第三个
24681 【下行流量】 倒数第二个
200 【状态码】
分析:
map端做什么?
1获取数据
2切割数据--要三个字段【手机号 上行流量 下行流量】
3context(手机号,flowBean(封装 上行流量 下行流量 自动流量))
问题:自己定义的对象要进行网络传输---要进行序列化
【自定义bean对象实现序列化接口Writable】
自定义bean对象要想序列化传输,必须实现序列化接口,需要注意以下7项
【1】必须实现Writable接口
【2】反序列化时,需要反射调用空构造函数,所以必须有空参构造
public FlowBean()
{
super();
}
【3】重写序列化方法
public void write(DataOutput out)//通过输出流把属性序列化
{
out.writeLong(upFlow);
out.writeLong(downFlow);
out.writeLong(sumFlow);
}
【4】重写反序列化方法
public void readFields(DataInput in)//通过输入流反序列化出属性
{
upFlow=in.readLong();
downFlow=in.readLong();
sumFlow=in.readLong();
}
【5】注意反序列化的顺序和序列化的顺序要完全一致
【6】要想把结果显示在文件中,需要重写toString(),可用"\t"隔开,方便后续使用
【7】如果需要将自定义的bean放在key中传输,则还需要实现comparable接口。
因为mapreduce框架中的shuffle过程一定会对key进行排序
public int comapreTo(FlowBean o)
{
//倒序排序,从小到大
return this.sumFlow>o.getSumFlow() ? -1 : 1;
}
OutputFormat数据输出
OutputFormat接口实现类
OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat
接口,几种常见的OutputFormat
【1】文本输出TextOutputFormat
默认的输出格式是TextOutputFormat,它把每条记录写为文本行,它的键和值可以是任意类型,
因为TextOutputFormat调用toString()方法把它们转换为字符串。
【2】自定义OutputFormat
为了实现控制最终文件的输出路径,可以自定义OutputFormat
要在一个mapreduce程序中根据数据的不同,输出两类结果到不同目录,之类灵活的输出需求可以
通过自定义outpoutformat来实现
1自定义OutputFormat步骤
(1)自定义一个类继承FileOutputFormat
(2)改写recordwriter,具体改写输出数据的方法write()
分析数据:
1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120.196.100.82 i02.c.aliimg.com 24 27 2481 24681 200
1363157995052 13826544101 5C-0E-8B-C7-F1-E0:CMCC 120.197.40.4 4 0 264 0 200
1363157991076 13926435656 20-10-7A-28-CC-0A:CMCC 120.196.100.99 2 4 132 1512 200
1363154400022 13926251106 5C-0E-8B-8B-B1-50:CMCC 120.197.40.4 4 0 240 0 200
1363157993044 18211575961 94-71-AC-CD-E6-18:CMCC-EASY 120.196.100.99 iface.qiyi.com 视频网站 15 12 1527 2106 200
1363157995074 84138413 5C-0E-8B-8C-E8-20:7DaysInn 120.197.40.4 122.72.52.12 20 16 4116 1432 200
1363157993055 13560439658 C4-17-FE-BA-DE-D9:CMCC 120.196.100.99 18 15 1116 954 200
1363157995033 15920133257 5C-0E-8B-C7-BA-20:CMCC 120.197.40.4 sug.so.360.cn 信息安全 20 20 3156 2936 200
1363157983019 13719199419 68-A1-B7-03-07-B1:CMCC-EASY 120.196.100.82 4 0 240 0 200
1363157984041 13660577991 5C-0E-8B-92-5C-20:CMCC-EASY 120.197.40.4 s19.cnzz.com 站点统计 24 9 6960 690 200
1363157973098 15013685858 5C-0E-8B-C7-F7-90:CMCC 120.197.40.4 rank.ie.sogou.com 搜索引擎 28 27 3659 3538 200
1363157986029 15989002119 E8-99-C4-4E-93-E0:CMCC-EASY 120.196.100.99 www.umeng.com 站点统计 3 3 1938 180 200
1363157992093 13560439658 C4-17-FE-BA-DE-D9:CMCC 120.196.100.99 15 9 918 4938 200
1363157986041 13480253104 5C-0E-8B-C7-FC-80:CMCC-EASY