我应该把程序放在hdfs上吗?

col17t5w  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(313)

我应该把程序放在hdfs上还是放在本地?我说的是一个二进制文件,它是:
由spark submit发起
每日执行
在rdd/dataframes上执行spark map reduce函数
这是一个jar
重量20个月
处理大量数据,此数据位于hdfs上
我认为这是个坏主意,因为在hdfs上分发可执行文件可能会减慢执行速度。我认为对于大于64mo(hadoop块大小)的文件来说,这甚至是最糟糕的。但是,我没有找到关于这个的资源。另外,我不知道内存管理的后果(是否为每个保存jar副本的节点复制java堆?)

yx2lnoni

yx2lnoni1#

是的,这正是Yarn共享缓存背后的概念。
这样做的主要原因是如果有大量资源与作业绑定,而将它们作为本地资源提交会浪费网络带宽。
请参阅幻灯片以更详细地了解性能影响:
幻灯片分享:hadoop summit 2015:应用程序资源的安全公共缓存
Yarn共享缓存
yarn-1492 jar的真正共享缓存(jobjar/libjar)

相关问题