有时候,当你向Spark或Hive提交作业时,可能会遇到如下的错误:
提交作业使用的用户是example-user-1
,但是Yarn返回的错误信息是:该用户不存在。类似的问题大多发生在启动了Kerberos的Hadoop集群上,或者集群集成了Windows AD或OpenLDAP后。本文,我们把这个问题梳理清楚并给出解决方法。
ContainerExecutor:DefaultContainerExecutor 和 LinuxContainerExecutor
要了解这个问题的根源,需要先了解一下Yarn的ContainerExecutor。我们知道,在Yarn中,作业会被分布到若干个Yarn的Container中去执行,Yarn对于启动和管理Container进行了抽象,设计了ContainerExecutor这个抽象基类 ,并提供了两种不同的实现(可以认为是两种策略或管理方式) ,分别是:DefaultContainerExecutor (DCE) 和