用 Apache Oozie 来运行应用程序

Apache Oozie 可以将启动 Spark 应用程序作为工作流的一部分。在安全集群中,启动的应用程序将需要相关的 tokens 来访问集群的服务。如果 Spark 使用 keytab 启动,这是自动的。但是,如果 Spark 在没有 keytab 的情况下启动,则设置安全性的责任必须移交给 Oozie

有关配置 Oozie 以获取安全集群和获取作业凭据的详细信息,请参阅 Oozie web site 上特定版本文档的 “Authentication” 部分。

对于 Spark 应用程序,必须设置 Oozie 工作流以使 Oozie 请求应用程序需要的所有 tokens,包括:

为了避免 Spark 尝试 - 然后失败 - 获取 HiveHBase 和远程 HDFS 令牌,必须将 Spark 配置收集这些服务 tokens 的选项设置为禁用。

Spark 配置必须包含以下行 : 

spark.yarn.security.tokens.hive.enabled   false
spark.yarn.security.tokens.hbase.enabled  false

必须取消设置配置选项 spark.yarn.access.namenodes