god*_*ane 6 hadoop kerberos hdfs hadoop-yarn apache-spark
我有一个配置了 Kerberos 的 Hadoop 3.0 集群。一切正常,YARN 也已启动。
现在想在上面加上Spark,充分利用Hadoop和安全性。为此,我使用了Spark 2.3的二进制分发版并修改了以下内容。
在spark-env.sh:
YARN_CONF_DIR,设置到我的Hadoop配置文件的文件夹core-site.xml,hdfs-site.xml以及yarn-site.xml所处的位置。
在spark-defaults.conf:
spark.master yarn
spark.submit.deployMode cluster
spark.authenticate true
spark.yarn.principal mysparkprincipal
spark.yarn.keytab mykeytabfile
Run Code Online (Sandbox Code Playgroud)
如果我在使用 YARN 时理解正确,密钥会自动生成,我不需要手动设置spark.authenticate.secret.
我遇到的问题是工人抱怨钥匙:
java.lang.IllegalArgumentException: A secret key must be specified via the spark.authenticate.secret config
Run Code Online (Sandbox Code Playgroud)
我在日志中也没有任何迹象表明 Spark 正在使用 YARN 或尝试对我的 hdfs 卷执行任何操作。这几乎就像 Hadoop 配置文件被完全忽略一样。我已经阅读了有关 Spark 的 YARN 和安全性的文档,但对我来说不是很清楚。
我的问题是:
spark.yarn.access.hadoopFileSystems如果我只使用设置的服务器,是否需要设置YARN_CONF_DIRLOCAL_DIRS最好设置为HDFS,如果是,什么是语法HADOOP_CONF_DIR和YARN_CONF_DIR吗?编辑/添加:
查看源代码后,异常来自未为 Spark 启用的 SASL,所以我不明白。
我的 Hadoop 启用了 SSL(数据机密性),并且由于我为 Spark 提供了我的服务器配置,如果 Hadoop 的配置启用了它,那么它可能需要 Spark 的 SSL。
到目前为止,我真的对一切都感到困惑。
spark.yarn.appMasterEnv. 但哪一个?他们都?spark.hadoop.*属性替换 XML 文件,但是 Spark 知道我的 YARN 集群在哪里所需的属性是什么?spark.authenticate.enableSaslEncryption为 false 似乎没有效果,因为异常仍然是关于SparkSaslClient例外是:
java.lang.IllegalArgumentException: A secret key must be specified via the spark.authenticate.secret config
at org.apache.spark.SecurityManager$$anonfun$getSecretKey$4.apply(SecurityManager.scala:510)
at org.apache.spark.SecurityManager$$anonfun$getSecretKey$4.apply(SecurityManager.scala:510)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.SecurityManager.getSecretKey(SecurityManager.scala:509)
at org.apache.spark.SecurityManager.getSecretKey(SecurityManager.scala:551)
at org.apache.spark.network.sasl.SparkSaslClient$ClientCallbackHandler.handle(SparkSaslClient.java:137)
at com.sun.security.sasl.digest.DigestMD5Client.processChallenge(DigestMD5Client.java:337)
at com.sun.security.sasl.digest.DigestMD5Client.evaluateChallenge(DigestMD5Client.java:220)
at org.apache.spark.network.sasl.SparkSaslClient.response(SparkSaslClient.java:98)
at org.apache.spark.network.sasl.SaslClientBootstrap.doBootstrap(SaslClientBootstrap.java:71)
at org.apache.spark.network.crypto.AuthClientBootstrap.doSaslAuth(AuthClientBootstrap.java:115)
at org.apache.spark.network.crypto.AuthClientBootstrap.doBootstrap(AuthClientBootstrap.java:74)
at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:257)
at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:187)
at org.apache.spark.rpc.netty.NettyRpcEnv.createClient(NettyRpcEnv.scala:198)
at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:194)
at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:190)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2637 次 |
| 最近记录: |