由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 海量ip计数的另一种解法
相关主题
请教一道题贡献一次电面题
贡献个teableau的昂赛面经书上关于search和sorting的部分 应该不用全看吧?
问个经典问题的improvement问个事,这样的面试题难么?
Google实习第三次电话面试总结你们leetcode都刷到啥程度才敢去面FLG
leetcode: Remove Duplicates from Sorted Array请教一道FB面试题
面经请教一道题目
Amazon电面经关于Inplace排序栈元素的解法?
海量数据找中数似乎没啥好办法。这个题目的比较好的方法是什么?
相关话题的讨论汇总
话题: sort话题: awk话题: ip话题: sed话题: 海量
进入JobHunting版参与讨论
1 (共1页)
b*****u
发帖数: 648
1
最近面的一家web公司,最后一轮CTO老头。
问了一个经典题,从一个很大的日志文件中找出出现次数最多的ip。
我当时给的是“秒杀99%海量数据”帖里的标准解法,hash+merge
老头嘿嘿一笑,然后问我,你估计你把这一坨东西coding出来,要花多久?一小时?一
天?一个月?
我当然知道不妙,但是也只能顺着他说那就一天吧。
他说,现在让你用一行代码解决这个问题,怎么搞。
跪了。
后来他写了他的办法: 不用hash,直接把日志等分成几个小文件,然后用awk/sed对每
个文件进行类似于SQL里groupby的操作,最后加总取最大值,总共一行bash命令搞定 (
具体的命令我也忘了)。 严格来说并不便于scale,但是便于coding, batch和customize
学术讨论和生产实践的差别。
L*******t
发帖数: 782
2
这个和那个找电话号码的考grep命令的类似。

(

【在 b*****u 的大作中提到】
: 最近面的一家web公司,最后一轮CTO老头。
: 问了一个经典题,从一个很大的日志文件中找出出现次数最多的ip。
: 我当时给的是“秒杀99%海量数据”帖里的标准解法,hash+merge
: 老头嘿嘿一笑,然后问我,你估计你把这一坨东西coding出来,要花多久?一小时?一
: 天?一个月?
: 我当然知道不妙,但是也只能顺着他说那就一天吧。
: 他说,现在让你用一行代码解决这个问题,怎么搞。
: 跪了。
: 后来他写了他的办法: 不用hash,直接把日志等分成几个小文件,然后用awk/sed对每
: 个文件进行类似于SQL里groupby的操作,最后加总取最大值,总共一行bash命令搞定 (

n**m
发帖数: 122
3
赞另类解法 不过只适用于小文件吧
对大文件来说 命令虽短 执行时间不短
如果真是超大文件海量ip 还是map reduce coding方便吧
code就是一个简单的word count翻版 熟悉的话几分钟搞定
当然前提是得有那么多机器和现成的环境可用

(

【在 b*****u 的大作中提到】
: 最近面的一家web公司,最后一轮CTO老头。
: 问了一个经典题,从一个很大的日志文件中找出出现次数最多的ip。
: 我当时给的是“秒杀99%海量数据”帖里的标准解法,hash+merge
: 老头嘿嘿一笑,然后问我,你估计你把这一坨东西coding出来,要花多久?一小时?一
: 天?一个月?
: 我当然知道不妙,但是也只能顺着他说那就一天吧。
: 他说,现在让你用一行代码解决这个问题,怎么搞。
: 跪了。
: 后来他写了他的办法: 不用hash,直接把日志等分成几个小文件,然后用awk/sed对每
: 个文件进行类似于SQL里groupby的操作,最后加总取最大值,总共一行bash命令搞定 (

A**u
发帖数: 2458
4
sort | uniq -c | sort -r | head -1

(

【在 b*****u 的大作中提到】
: 最近面的一家web公司,最后一轮CTO老头。
: 问了一个经典题,从一个很大的日志文件中找出出现次数最多的ip。
: 我当时给的是“秒杀99%海量数据”帖里的标准解法,hash+merge
: 老头嘿嘿一笑,然后问我,你估计你把这一坨东西coding出来,要花多久?一小时?一
: 天?一个月?
: 我当然知道不妙,但是也只能顺着他说那就一天吧。
: 他说,现在让你用一行代码解决这个问题,怎么搞。
: 跪了。
: 后来他写了他的办法: 不用hash,直接把日志等分成几个小文件,然后用awk/sed对每
: 个文件进行类似于SQL里groupby的操作,最后加总取最大值,总共一行bash命令搞定 (

j********x
发帖数: 2330
5
话说能用awk / sed能处理的不算“很大”吧
另外所谓“秒杀99%海量数据”的标准解法不过是某网友的一家之言吧
另外能透露一下该公司的背景么?

(

【在 b*****u 的大作中提到】
: 最近面的一家web公司,最后一轮CTO老头。
: 问了一个经典题,从一个很大的日志文件中找出出现次数最多的ip。
: 我当时给的是“秒杀99%海量数据”帖里的标准解法,hash+merge
: 老头嘿嘿一笑,然后问我,你估计你把这一坨东西coding出来,要花多久?一小时?一
: 天?一个月?
: 我当然知道不妙,但是也只能顺着他说那就一天吧。
: 他说,现在让你用一行代码解决这个问题,怎么搞。
: 跪了。
: 后来他写了他的办法: 不用hash,直接把日志等分成几个小文件,然后用awk/sed对每
: 个文件进行类似于SQL里groupby的操作,最后加总取最大值,总共一行bash命令搞定 (

f*******t
发帖数: 7549
6
大概是这样吧
sed "s/^.*ip=//g" | awk -F' ' 'print {$1}' | sort -r | uniq -c | sort -n -r
-k 1
S********o
发帖数: 4
7
临时的解决问题或数据需求和正规的解决问题不应是一个方法,要是自己顺便统计用的
,也没有人正规的搞那么复杂。
btw:
awk没有必要吧, 第一个sort不必-r吧

r

【在 f*******t 的大作中提到】
: 大概是这样吧
: sed "s/^.*ip=//g" | awk -F' ' 'print {$1}' | sort -r | uniq -c | sort -n -r
: -k 1

y*******g
发帖数: 6599
8
真很大的话hash merge也不行啊
可能的确要map reduce了

【在 n**m 的大作中提到】
: 赞另类解法 不过只适用于小文件吧
: 对大文件来说 命令虽短 执行时间不短
: 如果真是超大文件海量ip 还是map reduce coding方便吧
: code就是一个简单的word count翻版 熟悉的话几分钟搞定
: 当然前提是得有那么多机器和现成的环境可用
:
: (

f*******t
发帖数: 7549
9
sed是删除ip前的内容,awk是删除IP后面的内容
第一个sort确实不需要-r。命令是随便写的,有没有用还要经过实践验证

【在 S********o 的大作中提到】
: 临时的解决问题或数据需求和正规的解决问题不应是一个方法,要是自己顺便统计用的
: ,也没有人正规的搞那么复杂。
: btw:
: awk没有必要吧, 第一个sort不必-r吧
:
: r

x*********n
发帖数: 28013
10
我发现这个很经典啊。
我以前作业好像就是awk出来的。
c********t
发帖数: 5706
11
hash到multiple machine , find each top 10, then merge result. 不就是map
reduce吗?

【在 y*******g 的大作中提到】
: 真很大的话hash merge也不行啊
: 可能的确要map reduce了

1 (共1页)
进入JobHunting版参与讨论
相关主题
这个题目的比较好的方法是什么?leetcode: Remove Duplicates from Sorted Array
求一下这题解法。面经
海量数据处理的题目Amazon电面经
关于K个sorted数组中第n大数的问题海量数据找中数似乎没啥好办法。
请教一道题贡献一次电面题
贡献个teableau的昂赛面经书上关于search和sorting的部分 应该不用全看吧?
问个经典问题的improvement问个事,这样的面试题难么?
Google实习第三次电话面试总结你们leetcode都刷到啥程度才敢去面FLG
相关话题的讨论汇总
话题: sort话题: awk话题: ip话题: sed话题: 海量