大数据文件分析提取
一个用户访问日志,里边记录了IP登录信息,信息内容有登录时间和IP地址。现在要统计 (1) 每一天登录次数最多的1000个IP。以登录次数为序,从高到低排序 (2) 每一周登录次数最多的1000个IP。以登录次数为序,从高到低排序 每一天大概有10亿条IP信息记录。可以用什么样的数据结构?应该不是排序的问题,因为本书数据量太大,快速排序需要有具体的拆分方案!
望各位前辈指点,感激不尽!
------解决方案--------------------用map<ip,count>
然后排序
------解决方案--------------------宇量级还是插入到数据库在SQL吧
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------找出来,肯定要流的形式读文件啊。
读出一行后,取得ip,存入map的key中,value开始为0,如果第二次找到此ip,就把以前的value加1,代码如:
Java code
if(map.containsKey(ip)) map.put(ip,map.get(ip)+1);
else map.put(ip,0);
------解决方案--------------------
那楼主了解一下RandomAccessFile
------解决方案--------------------
------解决方案--------------------
hadoop,mapreduce!
我也刚开始学习
------解决方案--------------------
10亿条记录不算多,看了你的描述,如果重复的IP不多(百万以下)则就用普通地HashMap一边读文件一边做统计。