我应该使用hadoop吗?

dphi5xsq  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(418)

就目前的情况来看,这个问题并不适合我们的问答形式。我们希望答案能得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或广泛讨论。如果您觉得这个问题可以改进,并可能重新打开,请访问帮助中心寻求指导。
8年前关门了。
我有一个批处理作业,它检索大量相互独立的web服务。从一个rest响应中检索到的数据与另一个rest响应中的数据没有任何依赖关系,也不会与另一个rest响应中的数据一起使用,除非在所有rest响应都完成处理时计算一些轻量级的stats。
目前,我将有效负载集分布在11个段中,每个段在单独的java线程中运行。完成最后一个线程后,将计算最终的统计信息。根据每个rest请求是否有与先前检索到的数据相关的新数据,整个批处理可能需要4到25分钟的时间。
批处理的大小相对适中,而且上面提到的时间窗口也不错,因为数据大约每小时更新一次,所以如果我每30分钟在cron上运行一次作业,实际上就消除了跳过时间序列的机会。不过,我正在考虑增加批量。
我是hadoop的新手,我想知道这个用例场景是否是mapreduce实现的一个好例子。一般来说,你是如何决定什么时候使用多线程应用程序而不是升级到hadoop的?
谢谢

gdx19jrr

gdx19jrr1#

mapreduce用于特定任务:计算聚合函数(如sum、max、count)。你的任务适合这个班吗?然后,由于您的工作量没有那么大,请查看mapreduce的内存实现。hadoop将所有数据写入磁盘。

kse8i1jr

kse8i1jr2#

我想说的是,网页爬行,拆分成要处理的网站列表确实是hadoop的情况。在那里,它并没有实际用作mapreduce,而是用作可伸缩的分布式调度器。
你给出的数字(11段)听起来像边界情况。如果你要说100,答案是肯定的
同时,如果除了每个片段中的数据处理之外,您还有一些有意义的结果聚合,那么使用hadoopmapreduce将是另一个优势。

相关问题