我有一些想法,但我不知道典型的解决方案,可以帮助我实现这一点。
我需要一个分布式环境,在这个环境中不仅共享内存,而且还共享处理,这意味着所有共享的处理器都像一个大处理器一样工作,计算我编写的代码。
我在数据网格和hadoop方面的知识有限,这能实现吗?
数据网格平台(我知道在该模型中只共享内存)或hadoop(其中代码在节点之间共享,但每个节点与其他节点分开处理代码,但处理hdfs上数据的子集)。
但是我需要一个解决方案,它不仅可以(像hadoop那样共享内存或代码),还可以把所有机器的处理能力作为一个大处理器和一个大内存?
2条答案
按热度按时间zbdgwd5y1#
您是否期望您只生成线程,然后它在某个地方执行,中间件奇迹般地平衡节点间的负载,将线程从一个节点移动到另一个节点?我想你不会直接找到这个的。标记的框架也没有透明的共享内存,这是有充分理由的。
当使用多个节点时,通常需要它们来提高处理能力,隐藏所有内容并假装自己在一台机器上会导致不必要的通信,降低速度。
相反,您可以始终使用这些框架提供的分发api来设计应用程序。例如,在infinispan中,查找map reduce或distributed executors api。
vhipe2zx2#
我需要一个分布式环境,在这个环境中不仅共享内存,而且还共享处理,这意味着所有共享的处理器都像一个大处理器一样工作,计算我编写的代码。
在单机上处理对您没有好处。如果处理分布在多台机器上,应用程序将扩展。如果您想看到一个大处理器计算的好处,您可以将大型物理机虚拟化为多个虚拟节点(使用vmware等技术)。
但是,跨大型集群中多个物理机的多个vm节点的分布式处理最适合于分布式应用程序。hadoop/spark最适合这些类型的应用程序,具体取决于批处理(hadoop)或实时处理需求(spark)。