我有Ubuntu14.04,在我的机器上有4个cpus (nproc get 4返回)。在安装和执行火花独立 (本地)之后,我可以自己定义不同数量的奴隶。例如,我想有4个奴隶(工人)。在执行了这么多奴隶之后,我有了下一个独立屏幕:

如果我已经有了4个内核(我认为一个核心是一个cpu),那么我怎么可能拥有总数为16 (橙色字段)和内存11 GB的core 16?如果我有四个奴隶而不是一个奴隶,什么是前卫呢?也许,如果我在本地执行它,我就没有(它也会慢一点),但是如果我有hadoop集群,应该如何共享内核,以及如何提高程序执行的速度?还有一些额外的问题,如果我启动某个应用程序(scala、python或java),第一个应用程序正在运行,另一个2或3应该处于等待模式。是否可以并行运行所有应用程序?
发布于 2015-08-15 13:20:53
你在这里误解了几件事:
独立
这确实是而不是的意思是“本地的”。独立模式是应用程序主模块Spark,它可以被成纱或梅索斯所取代。您可以使用任意数量的节点。实际上,您只能在给定数目的X线程上本地运行,例如,通过运行./bin/spark-shell --master local[X]命令。
核/内存
这些数字反映了集群中的资源总量。在这里,如果我们计算,你有4 * 4 cpus = 16 cpus,和4 * 2.7 GB ~= 11 GB的内存。
资源管理
如果我有hadoop集群,应该如何共享内核?
Hadoop集群不同于星系团簇。有几种方法可以将两者结合在一起,但在大多数情况下,与Spark结合使用的Hadoop部分是HDFS,这是一种分布式文件系统。
根据您在Spark中使用的应用程序主程序,核心将被不同地管理:
调度
Hadoop和Spark使用了一种名为http://www.cs.berkeley.edu/~matei/papers/2010/eurosys_delay_scheduling.pdf的技术,它基本上依赖于应用程序可以决定拒绝员工的邀请的原则,将其任务之一放置在其中一个,并希望它以后能从数据局部性方面得到更好的报价。
如何提高程序执行的速度?
这是一个复杂的问题,如果没有基础设施、输入数据和应用程序的知识,就无法回答这个问题。以下是一些会影响您的性能的参数:
是否可以并行运行所有应用程序?
默认情况下,独立主程序对其应用程序使用FIFO调度程序,但您可以在应用程序中设置公平调度程序。有关更多细节,请参见调度文件。
https://stackoverflow.com/questions/31536071
复制相似问题