这个业务场景适不适合hadoop?

我到底是谁s 发布于 2015/02/04 13:52
阅读 391
收藏 0

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

大侠请帮忙。

需求是算出一年内所有时间段的数据。

365*365 if(开始时间>结束时间)

数据格式:

时间 用户名

2014-01-01,A

2014-01-02,A

2014-01-03,B


我的思路是,首先构造两个365天的时间集合

然后2个for循环,组成时间段,例如:2014-01-01 ~ 2015-01-01

然后调用mapreduce任务,把开始时间和结束时间传进去。

mapreduce:

第一个任务执行根据时间段,去除重复用户名。

第二个任务统计去除重复的行数,其实也就是聚合,输出结果。

最后任务执行完成,把所有文件再汇总。

这样解决的问题是:要创建大量的任务,大约:365*365*2。


请大侠帮忙,有没有其他解决方案


补充一下,hdfs文档里,存了大概6亿条数据,有没有大侠看看,hadoop是不是最好点解决方案,还有没有其他的解决方案,例如:spark/storm

加载中
0
我到底是谁s
我到底是谁s
求帮忙啊。
0
duchipore
duchipore
问题描述不是很清楚吧。什么叫“一年内所有时间段”?这个时间段间隔是多少?有没有一个时间段包含另一个时间段的情况,比如2014-2-12~2014-3-12包含2014-2-13~2014-2-14。
duchipore
duchipore
回复 @我到底是谁s : 而且,“需求是算出一年内所有时间段的数据。” 什么叫“算出...的数据?” 究竟是计算出一年中每一天的数据总个数还是其它情况?麻烦你问题描述清楚了吧。说实话,你这么描述问题,摆明不是问问题的态度。
duchipore
duchipore
回复 @我到底是谁s : 2点之间点时间线,???啥意思啊?更迷糊了。。。
我到底是谁s
我到底是谁s
时间段指的是,2点之间点时间线,不会包含,就是2014-01-01 0214-01-02 2014-01-03 .... 2015-01-01结束
0
月影又无痕
月影又无痕

才6亿数据,关系型数据库就可以搞定。没必要搞得这么复杂。

我到底是谁s
我到底是谁s
回复 @月影又无痕 : 呵呵。
月影又无痕
月影又无痕
回复 @我到底是谁s : 循环计算,与数据存储没有任何关系。你做一个多进程的程序,多个程序同时运行统计,就行了。 表分区,估计你没听过吧
我到底是谁s
我到底是谁s
回复 @月影又无痕 : 那您能告诉为,6亿数据,循环算1万次,时用什么关系性数据库搞定点吗?我试试。
月影又无痕
月影又无痕
回复 @我到底是谁s : 是你不会用而已。
月影又无痕
月影又无痕
回复 @我到底是谁s : 某网站,有2000万数据量,每天访问600万PV,你咋说?
下一页
0
掠水
掠水
你要算任意两个时间段的uv吧。用hbase存下
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部