我在 shell 驱动程序脚本中的 spark-submit 之前调用 kinit keytab。问题是,它自己工作,但是当我通过 Oozie 调用 shell 驱动程序脚本时,我得到了这个错误:
Stdoutput py4j.protocol.Py4JJavaError: An error occurred while calling
o49.saveAsTextFile.
Stdoutput : org.apache.hadoop.ipc.RemoteException(java.io.IOException):
Delegation Token can be issued only with kerberos or web authentication
问题大概就在这里
file.coalesce(1,True).saveAsTextFile(FQDNofHadoop+output)
编辑:在我的脚本中是: kinit -k -t /home/me/me.keytab me@DOMAIN.HAD
编辑:工作解决方案:
我用了
spark-submit --principal 'me@DOMAIN.HAD' \ --keytab '/home/me/me.keytab' \
并且在 oozie 中执行 pyspark 脚本没有错误(甚至写入配置单元表等)。Log4j 记录器不起作用(它可以使用独立脚本),但至少 print() (标准输出到纱线日志中)是的......
谢谢