/zz/大数据量的算法

说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结。有任何问题,欢迎交流、指正。

出处:http://blog.csdn.net/v_JULY_v。

第一部分、十道海量数据处理面试题

1、海量日志数据,提取出某日访问百度次数最多的那个IP。

首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法, 比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大 的几个)及相应的频率。然后再在这1000个最大的IP中,找出那个频率最大的IP,即为所求。

继续阅读

perl 实现打印匹配模式行及上下行的操作

这个可能用的着,在看日志时候,比如搜索tomcat 错误日志的时候
1、perl One-liner实现

实现原理:把每一行保存在一个数组@b里,把匹配的行号保存在素组@a里,然后在END模块打印出来

2、perl脚本实现

保存为xx.pl 然后chmod u+x xx.pl
./xx.pl RE file

rex advent—— rex 批量部署sshd密码尝试攻击脚本

1、首先是防攻击脚本,原理是扫描/var/log/secure文件,发现一小时内尝试密码错误超过30次的ip,则
将该ip加入iptables黑名单drop掉。

2、将该脚本保存为block_ssh.sh
3、创建一个上传任务,把该文件上传到远程服务器,给予执行权限。加入crontab 每5分钟执行一次。

 

rex advent—— rex 任务执行情况,错误信息等

当批量远程执行任务时如何判断任务执行是否成功,以及错误信息呢?
最简单是方法是在设定执行完一个任务后输出服务器ip,然后根据输出信息来判断

继续阅读