Apache Работники Spark не подключаются - PullRequest
0 голосов
/ 16 января 2020

Я создал кластер Apache Spark, работающий на 3 виртуальных машинах (VMWare ESXi), где я запускаю 1 мастер-экземпляр и 3 рабочих экземпляра. Один рабочий экземпляр находится на том же компьютере, что и основной экземпляр. Когда я запускаю любой код (Python3 через Jupyter Notebooks для querieng Elasticsearch с использованием библиотеки Elasti c -had oop), все работает нормально.

Хотя, когда рабочий узел на главном компьютере отключен, и кластер должен выполнить код на двух других рабочих узлах, ничего не происходит. Когда я смотрю в админ-панели http://192.168.1.108:8080, я вижу, что мои работники подключены и мое приложение, которое запущено, но когда я просматриваю журналы приложений, я нахожу эту ошибку в stderr:

Spark Executor Command: "/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java" "-cp" "/usr/local/spark/conf/:/usr/local/spark/jars/*" "-Xmx1024M" "-Dspark.driver.port=38571" "org.apache.spark.executor.CoarseGrainedExecutorBackend" "--driver-url" "spark://CoarseGrainedScheduler@spark-master:38571" "--executor-id" "9" "--hostname" "192.168.1.109" "--cores" "4" "--app-id" "app-20200116005551-0003" "--worker-url" "spark://Worker@192.168.1.109:46659"
========================================

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
20/01/16 00:56:17 INFO CoarseGrainedExecutorBackend: Started daemon with process name: 5893@spark-worker-01
20/01/16 00:56:17 INFO SignalUtils: Registered signal handler for TERM
20/01/16 00:56:17 INFO SignalUtils: Registered signal handler for HUP
20/01/16 00:56:17 INFO SignalUtils: Registered signal handler for INT
20/01/16 00:56:18 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
20/01/16 00:56:18 INFO SecurityManager: Changing view acls to: guillaume
20/01/16 00:56:18 INFO SecurityManager: Changing modify acls to: guillaume
20/01/16 00:56:18 INFO SecurityManager: Changing view acls groups to: 
20/01/16 00:56:18 INFO SecurityManager: Changing modify acls groups to: 
20/01/16 00:56:18 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users  with view permissions: Set(guillaume); groups with view permissions: Set(); users  with modify permissions: Set(guillaume); groups with modify permissions: Set()
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1713)
    at org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:64)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$.run(CoarseGrainedExecutorBackend.scala:188)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$.main(CoarseGrainedExecutorBackend.scala:281)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend.main(CoarseGrainedExecutorBackend.scala)
Caused by: org.apache.spark.SparkException: Exception thrown in awaitResult: 
    at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:226)
    at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75)
    at org.apache.spark.rpc.RpcEnv.setupEndpointRefByURI(RpcEnv.scala:101)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$$anonfun$run$1.apply$mcV$sp(CoarseGrainedExecutorBackend.scala:201)
    at org.apache.spark.deploy.SparkHadoopUtil$$anon$2.run(SparkHadoopUtil.scala:65)
    at org.apache.spark.deploy.SparkHadoopUtil$$anon$2.run(SparkHadoopUtil.scala:64)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
    ... 4 more
Caused by: java.io.IOException: Failed to connect to spark-master/192.168.1.108:38571
    at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:245)
    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)
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: spark-master/192.168.1.108:38571
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
    at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:323)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
    at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
    ... 1 more
Caused by: java.net.ConnectException: Connection refused
    ... 11 more

Как предлагали другие посты, я много чего перепробовал. Мой spark-env.sh файл содержит главный адрес для каждого узла (export SPARK_MASTER_HOST='192.168.1.108'), я могу задать от lnet до 192.168.1.108 7077, у меня не включены брандмауэры между этими машинами.

Единственное, что я ничего не могу сделать - запустить что-нибудь на 2-х рабочих узлах (192.168.1.109 и 192.168.1.110).

Я что-то не так делаю?

...