我是否将程序放在HDFS上或将它们保存在本地? 我说的是二进制文件:
我认为这是一个坏主意,因为在HDFS上分发可执行文件可能会降低执行速度。我认为对于大于64 Mo(Hadoop块大小)的文件来说甚至会更糟。但是,我没有找到关于此的资源。另外,我不知道内存管理的后果(是否为每个拥有JAR副本的节点复制了java堆?)
答案 0 :(得分:1)
是的,这正是YARN共享缓存背后的概念。
执行此操作的主要原因是,如果您将大量资源绑定到作业,并将其作为本地资源提交,则会浪费网络带宽。
请参阅Slideshare以更详细地了解性能影响: