Пользовательский интерфейс apache spark master не работает

Привет всем, у меня есть простой кластер из 2 узлов, 1 ведущий и 1 подчиненный (hadoop и spark). Все работало нормально, но по какой-то причине теперь, когда я запускаю мастер-искру, я не могу подключиться к главному веб-интерфейсу (порт 8081, который я указал явно в файле spark-env.sh).

Spark Command: /usr/lib/jvm/java-8-oracle/bin/java -cp /usr/local/hive/lib/*:/usr/local/spark/conf/:/usr/local/spark/assembly/target/scala-2.11/jars/*:/usr/local/hadoop/etc/hadoop/ -Xmx1g org.apache.spark.deploy.master.Master --host ip-172-31-18-164 --port 7077 --webui-port 8081
========================================
16/07/23 00:47:55 INFO master.Master: Started daemon with process name: 2733@ip-172-31-18-164
16/07/23 00:47:55 INFO util.SignalUtils: Registered signal handler for TERM
16/07/23 00:47:55 INFO util.SignalUtils: Registered signal handler for HUP
16/07/23 00:47:55 INFO util.SignalUtils: Registered signal handler for INT
16/07/23 00:47:55 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/07/23 00:47:56 INFO spark.SecurityManager: Changing view acls to: ubuntu
16/07/23 00:47:56 INFO spark.SecurityManager: Changing modify acls to: ubuntu
16/07/23 00:47:56 INFO spark.SecurityManager: Changing view acls groups to: 
16/07/23 00:47:56 INFO spark.SecurityManager: Changing modify acls groups to: 
16/07/23 00:47:56 INFO spark.SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users  with view permissions: Set(ubuntu); groups with view permissions: Set(); users  with modify permissions: Set(ubuntu); groups with modify permissions: Set()
16/07/23 00:47:56 INFO util.Utils: Successfully started service 'sparkMaster' on port 7077.
16/07/23 00:47:56 INFO master.Master: Starting Spark master at spark://ip-172-31-18-164:7077
16/07/23 00:47:56 INFO master.Master: Running Spark version 2.1.0-SNAPSHOT
16/07/23 00:47:56 INFO util.log: Logging initialized @1447ms
16/07/23 00:47:56 INFO server.Server: jetty-9.2.z-SNAPSHOT
16/07/23 00:47:56 INFO handler.ContextHandler: Started o.s.j.s.ServletContextHandler@3da770b4{/app,null,AVAILABLE}
16/07/23 00:47:56 INFO handler.ContextHandler: Started o.s.j.s.ServletContextHandler@772f90b9{/app/json,null,AVAILABLE}
16/07/23 00:47:56 INFO handler.ContextHandler: Started o.s.j.s.ServletContextHandler@4a2abead{/,null,AVAILABLE}
16/07/23 00:47:56 INFO handler.ContextHandler: Started o.s.j.s.ServletContextHandler@34b29d61{/json,null,AVAILABLE}
16/07/23 00:47:56 INFO handler.ContextHandler: Started o.s.j.s.ServletContextHandler@32166993{/static,null,AVAILABLE}
16/07/23 00:47:56 INFO handler.ContextHandler: Started o.s.j.s.ServletContextHandler@39b78d30{/app/kill,null,AVAILABLE}
16/07/23 00:47:56 INFO handler.ContextHandler: Started o.s.j.s.ServletContextHandler@2677937d{/driver/kill,null,AVAILABLE}
16/07/23 00:47:56 INFO server.ServerConnector: Started ServerConnector@382a571a{HTTP/1.1}{0.0.0.0:8081}
16/07/23 00:47:56 INFO server.Server: Started @1558ms
16/07/23 00:47:56 INFO util.Utils: Successfully started service 'MasterUI' on port 8081.
16/07/23 00:47:56 INFO ui.MasterWebUI: Bound MasterWebUI to 0.0.0.0, and started at http://172.31.18.164:8081
16/07/23 00:47:56 INFO server.Server: jetty-9.2.z-SNAPSHOT
16/07/23 00:47:56 INFO handler.ContextHandler: Started o.s.j.s.ServletContextHandler@694e9b2b{/,null,AVAILABLE}
16/07/23 00:47:56 INFO server.ServerConnector: Started ServerConnector@2f0d3a46{HTTP/1.1}{ip-172-31-18-164:6066}
16/07/23 00:47:56 INFO server.Server: Started @1587ms
16/07/23 00:47:56 INFO util.Utils: Successfully started service on port 6066.
16/07/23 00:47:56 INFO rest.StandaloneRestServer: Started REST server for submitting applications on port 6066
16/07/23 00:47:56 INFO handler.ContextHandler: Started o.s.j.s.ServletContextHandler@73d0aa13{/metrics/master/json,null,AVAILABLE}
16/07/23 00:47:56 INFO handler.ContextHandler: Started o.s.j.s.ServletContextHandler@359a6ac9{/metrics/applications/json,null,AVAILABLE}
16/07/23 00:47:56 INFO master.Master: I have been elected leader! New state: ALIVE
16/07/23 00:47:57 WARN server.HttpChannel: /
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z
    at org.spark_project.jetty.servlets.gzip.GzipHandler.handle(GzipHandler.java:484)
    at org.spark_project.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
    at org.spark_project.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.spark_project.jetty.server.Server.handle(Server.java:499)
    at org.spark_project.jetty.server.HttpChannel.handle(HttpChannel.java:311)
    at org.spark_project.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
    at org.spark_project.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
    at org.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
    at org.spark_project.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
    at java.lang.Thread.run(Thread.java:745)
16/07/23 00:47:57 WARN thread.QueuedThreadPool: 
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()I
    at org.spark_project.jetty.server.handler.ErrorHandler.handle(ErrorHandler.java:112)
    at org.spark_project.jetty.server.Response.sendError(Response.java:597)
    at org.spark_project.jetty.server.HttpChannel.handleException(HttpChannel.java:487)
    at org.spark_project.jetty.server.HttpConnection$HttpChannelOverHttp.handleException(HttpConnection.java:594)
    at org.spark_project.jetty.server.HttpChannel.handle(HttpChannel.java:387)
    at org.spark_project.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
    at org.spark_project.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
    at org.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
    at org.spark_project.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
    at java.lang.Thread.run(Thread.java:745)
16/07/23 00:47:57 WARN thread.QueuedThreadPool: Unexpected thread death: org.spark_project.jetty.util.thread.QueuedThreadPool$3@15c8cd8 in MasterUI{STARTED,8<=8<=200,i=5,q=0}
16/07/23 00:47:58 INFO master.Master: Registering worker 172.31.7.238:60863 with 2 cores, 6.0 GB RAM

person Neil    schedule 23.07.2016    source источник


Ответы (2)


Для тех, кто забрел сюда из будущего и не выносит таких эзотерических сбоев во время выполнения, вот решение для проекта Scala на основе sbt.

В моем случае, наряду с spark-core и spark-hive, у меня была зависимость от hadoop-aws, чтобы правильно настроить обнаружение учетных данных. hadoop-aws (или что-то, от чего это зависит) хочет javax.servlet 2.x, а spark-core любит 3.0. Помещение всего, что упоминает servlet в факел, исправляет это:

libraryDependencies ++= Seq(
...
  "org.apache.hadoop" % "hadoop-aws" % "2.8.1"
    exclude("javax.servlet",     "servlet-api")
    exclude("javax.servlet.jsp", "jsp-api")
    exclude("org.mortbay.jetty", "servlet-api"),
...
)
person Colin Woodbury    schedule 09.08.2017
comment
Спасибо, я столкнулся с той же проблемой, и это очень помогает. Имо, бесполезно исключать org.mortbay.jetty, так как это затененная зависимость. - person Yann Moisan; 22.06.2018

Ну, ваша трассировка стека содержит ошибку.

> 16/07/23 00:47:57 WARN server.HttpChannel: /
> java.lang.NoSuchMethodError:
> javax.servlet.http.HttpServletRequest.isAsyncStarted()Z
>     at org.spark_project.jetty.servlets.gzip.GzipHandler.handle(GzipHandler.java:484)
>     at org.spark_project.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
>     at org.spark_project.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
>     at org.spark_project.jetty.server.Server.handle(Server.java:499)
>     at org.spark_project.jetty.server.HttpChannel.handle(HttpChannel.java:311)
>     at org.spark_project.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
>     at org.spark_project.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
>     at org.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
>     at org.spark_project.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
>     at java.lang.Thread.run(Thread.java:745)

Быстрый поиск этой ошибки в Google возвращает несколько вопросов об этой ошибке, т.е. 1 SO 2 Какая версия сервлета находится в вашем пути к классам? У вас должно быть как минимум 3.0, так как тогда был добавлен isAsyncStarted().

person silvanheller    schedule 23.07.2016
comment
да, я понял, что я делал * в моем SPARK_CLASSPATH в Hive Lib, чтобы получить mysql.jar. Но затем он вводил другую версию сервлета. Теперь я явно вызывал файл mysql.jar. - person Neil; 23.07.2016