Файловый сервер драйвера Spark возвращает 401 несанкционированный

#file #http #apache-spark #server #authorization

#файл #http #apache-spark #сервер #авторизация

Вопрос:

Используя Spark 1.6.1, драйвер запускает файловый сервер http на случайном порту, к которому рабочие должны получить доступ для извлечения jar. В моей настройке рабочие получают 401 несанкционированный с файлового сервера при попытке извлечения jar. Есть идеи о том, как авторизация настроена на этом файловом сервере в драйвере?

Код драйвера находится в Scala, использующем SparkConf для установки jars следующим образом:

 val conf = new SparkConf()
.setAppName("myApp")
.setMaster(masterUrl)
.set("spark.task.maxFailures", "1")
.set("spark.executor.memory", sparkExecutorMemory)     
.set("spark.metrics.conf.driver.sink.jmx.class", "org.apache.spark.metrics.sink.JmxSink")
.set("spark.authenticate", "true")
.set("spark.authenticate.secret", secret)
.setJars(jarsInClasspath)

val sc: SparkContext = SparkContext.getOrCreate(conf)
sc.parallelize(myCollection).map (myFunc).collect
  

spark.authenticate настроен на всех трех: главном, драйвере и подчиненных устройствах с одним и тем же секретом

На рабочем я вижу эти две ошибки:

 Fetching http://11.163.0.285:51712/jars/libSetPluginTypes.jar with timestamp 1476207005509

java.net.ProtocolException: Server redirected too many  times (20)
  

и через некоторое время это:

 java.net.ConnectException: Cannot assign requested address
  

Просмотр tcpdump в драйвере:

 <title>Error 401 Unauthorized</title>
</head>
<body>
<h2>HTTP ERROR: 401</h2>
<p>Problem accessing /jars/libSetPluginTypes.jar. Reason:
<pre>    Unauthorized</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
  

Пожалуйста, обратите внимание, что все это работает, если я вручную помещаю jar в classpath подчиненного устройства, а не выполняю setJars на стороне драйвера.

Любая помощь будет оценена. Спасибо!