我的spark作业中出现错误,它们的错误通常与下面显示的错误类似。集群中的一个节点有大约256GB的内存和大约8个内核,我还将执行器内存指定为4GB和额外的4GB开销。对于shuffle,我已经将内存分数指定为0.5,通过所有这些,我想表明这似乎不是内存问题。然而,我不知道可能是什么问题,这是在一个或另一个阶段出现的,我多次重新审视我的工作,这是多个方面出现的。您可以假设我们有大约200多个节点的基础设施,配置合理。
由于阶段失败而中止作业:阶段2.0中的任务0失败了12次,最近一次失败:阶段2.0(TID 27,lgpbd1107.sgp.ladr.com)中的丢失任务0.11:java.io.FileNotFoundException:/tmp/hadop-mapr/nm local-dir/usercache/names/appcache/application_1485048538020_113554/35770946714556414269_lock(没有这样的文件或目录)
我不知道它的问题是与应用程序还是基础设施有关。有人能帮忙吗。
这是由于tmpwatch实用程序的缘故,该实用程序每天在CentOS系统上运行,以清理最近未访问的/tmp/files
。NodeManager
服务在启动作业时不会重新创建顶级hadoop.tmp.dir
(默认为/tmp/hadoop-${user.name}
)。
现在您有两个选项:
选项-1:
转到/etc/cron.daily/tmp-watch
并将此目录排除在每日清理之外。/tmp/hadoop-mapr/nm-local-dir/filecache
选项-2: 转到
core-site.xml并添加/更改
hadoop.tmp.dir
属性的值--默认值为/tmp/hadoop-${user.name}
或
yarn-site.xml并添加/更改
yarn.nodemanager.local-dirs
属性的值--默认为${hadoop.tmp.dir}/nm-local-dir