这是一个可行的mapreduce用例,甚至可以执行吗?

1tuwyuhd  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(343)

我对hadoop,mapreduce,bigdata是个新手,我正在尝试评估它在一个特定用例中的可行性,这个用例对我所从事的项目来说非常有趣。但是我不确定我想要完成的是a)可能的还是b)mapreduce模型推荐的。
我们基本上拥有大量的小部件(已知的数据结构)和定价模型(编码在jar文件中),我们希望能够执行小部件和定价模型的每个组合,以确定模型排列中的定价结果。定价模型本身将检查每个小部件,并根据模型中的决策树确定定价。
在我看来,从商品基础设施的并行处理Angular 来看,这是有意义的,但从技术Angular 来看,我不知道是否有可能在mr jobs中执行外部模型,从实际Angular 看,我是否试图将用例强制引入技术。
因此,问题就变得有可能了;以这种方式实施有意义吗;如果没有,还有哪些选项/模式更适合这种情况?
编辑的数量和品种将随着时间的推移而增长。为了便于讨论,假设我们目前有1 TB的小部件和10 TB的定价模型。然后,我们将期望对多个TB和100个定价模型进行研究,并且随着小部件的更改和/或添加以及新的定价模型类别的引入,排列的执行将频繁发生。

fykwrbwg

fykwrbwg1#

您当然需要一个可伸缩的、可并行化的解决方案,而hadoop可以做到这一点。你只需要稍微调整一下你的解决方案,这样它就会适合hadoop的世界。
首先,您需要让模型和小部件实现公共接口(这里非常抽象地说),这样您就可以将任意模型应用到任意小部件,而不必知道任何关于实际实现或表示的信息。
其次,您必须能够通过id引用模型和小部件。这将允许您构建包含模型id和小部件id的对象(可写),从而在小部件和模型的交叉乘积中表示一个“单元”。您可以将这些示例分布在多个服务器上,这样就可以将模型的应用程序分布到多个服务器上的小部件上。这些对象(称之为modelappy类)将保存特定模型的结果到widget应用程序,并且可以使用hadoop以通常的方式进行处理,以便在最佳应用程序上重新发布。
第三,这是一个棘手的部分,您需要计算模型到小部件的实际叉积。你说模型的数量(因此模型id)最多会有几百个。这意味着您可以将id列表加载到Map器的内存中,并将该列表Map到小部件id。对mapper的map()方法的每次调用都会传入一个小部件id,并为每个模型写出一个modelapply示例。
我暂时不谈了。

相关问题