最近公司在弄大数据的采集,有时间的话把自己的心得体会写下,算作初步认识,等以后见解更深的时候,再看这篇文章应该别有一番风味。
公司采用:
flume –》fdfs (元数据存储)
–》elasticsearch (索引式存储)
–》kafka –》 storm –》 mysql 或 mongodb (数据流分析与存储)
其实我当时对storm的作用很不明白,因为flume理论上可以直接写 mysql的,中间这些步骤的用途是什么?是不是太累赘了。后来一想是基于大数据的,如果mysql能处理下来的话,何必需要hdfs。其实mysql存储的是处理后的数据,譬如5s的pv统计,别人有个更好的storm的作用图一看便知:
可以发现在storm的处理后的数据超精简了,而保留在hdfs的数据还是有必要的,因为storm的处理的是已知情况,可能需要再挖掘的话,可以通过mapreduce再分析,或者做批量处理(非实时),我们就是这么做的。
其实,有一些公司不是这么做的,譬如网易:
http://www.infoq.com/cn/news/2014/04/netease-spark-practice
用的是hdfs(存储)+ Spark + Hive (后面2个做实时处理)
其实就是 Impala + Shark 代替了 kafka –》 storm –》 mysql 或 mongodb ,2者的好坏,从处理的思路上就不一样,以后可以好好测试下。