Password cannot be null if SASL is enabled异常
问题
运行Spark的应用启用了ExternalShuffle,应用出现了Task任务丢失,原因是由于java.lang.NullPointerException: Password cannot be null if SASL is enabled异常,部分关键日志如下图所示:
回答
造成该现象的原因是NodeManager重启。使用ExternalShuffle的时候,Spark将借用NodeManager传输Shuffle数据,因此NodeManager的内存将成为瓶颈。
在当前版本的FusionInsight中,NodeManager的默认内存只有1G,在数据量比较大(1T以上)的Spark任务下,内存严重不足,消息响应缓慢,导致FusionInsight健康检查认为NodeManager进程退出,强制重启NodeManager,导致上述问题产生。
解决方式:
调整NodeManager的内存,数据量比较大(1T以上)的情况下,NodeManager的内存至少在4G以上。