2012-09-07

半个月前,我准备接手一件事情:

现在某项目有一套类似于google analytics的东西,前端js就不说了,它会发起一个http请求给nginx,然后统计人员用python脚本去分析nginx的access log。整个系统用一台机器就搞定了。

然后我打算把它做的更好一点,用自己写的一个http server代替nginx,然后它会主动吐日志给一个message queue,这个message queue是分布式的,另一端接hadoop,用map-reduce并行的从queue载入数据。

现在这个http server刚刚写完部署上去了,各种问题。首先,我的程序没有root权限,所以在8080端口监听的。我让OP把80端口转过来,于是他就给装了一个nginx。我说iptables不行吗?他说这样不好。 我估计是因为这个nginx有什么监控和过滤功能。结果就是,我从socket拿不到client ip了。不仅如此,http header中也没找到x-forward-for之类的字段。各种扯皮啊……来回查。折腾了1天多了,下周继续去看。有些事情看着明明是一个非常简单的小事,但是实际做的时候,工期远远超过预期。唉…… 今天刚实现了对比“If-Modified-Since”和文件的最后修改时间而在适当的条件下返回304的功能。我现在只能处理GET请求,而且只能返回304或者200、404。

剩下主要就是在hadoop中怎么存、怎么写统计脚本的问题。我准备学下pig,恰好发现twitter做了一些关于protocol buffers on hadoop的工作https://github.com/kevinweil/elephant-bird 我觉得对我会很有用。

linkedin kafka的官方文档太少了,我自己写了一些,准备下个月做成pdf放出来。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥