A Talend Spark Stream Job configured with Yarn cluster mode and Kerberos enabled is encountering issues and failing to execute, presenting the following errors:
YarnClusterScheduler- Lost executor 3 on me-worker1.xxx.co.id: Unable to create executor due to Unable to register with external shuffle server due to : java.lang.IllegalStateException: Expected SaslMessage, received something else (maybe your client does not have SASL enabled?)
The external shuffle service within YARN is configured to mandate SASL authentication; however, the Spark executor is either improperly configured to use SASL or is transmitting an incompatible message.
Common causes includes:
The absence or inaccuracy of SASL configuration in either spark-defaults.conf or YARN's configuration file (yarn-site.xml).
A version discrepancy between Spark and YARN, where the shuffle service necessitates a particular SASL protocol unsupported by the Spark client.
Improper security configurations, including the omission of Kerberos credentials or incorrect settings for spark.authenticate and associated properties.
This error results in the executor's failure to register with the shuffle service, prompting the YarnClusterScheduler to mark it as lost.
Resolution
Ensure that the external shuffle service is enabled, and that the SASL settings are in accordance with YARN's configurations: