Подключите Sparklyr 0.8.4 к разъему Remote Spark 2.2.1

Я пытаюсь подключиться из R к удаленному искровому кластеру. Искровой кластер построен на debian jessie, и версия R, которую я могу установить, - не более 3.3, но мне нужно 3.4, чтобы иметь возможность запускать FactoMineR. Поэтому я установил R на другой компьютер и попытался подключить кластер с помощью sparklyr 0.8.4.

> sc <- spark_connect(master = "spark://spark-cluster-m:7077", spark_home = "/usr/lib/spark/", version = "2.2.1")
Error in start_shell(master = master, spark_home = spark_home, spark_version = version,  : 
  SPARK_HOME directory '/usr/lib/spark/' not found

Spark не установлен на локальном компьютере, но на Spark-cluster-m это:

jc@spark-cluster-m:/usr/lib/spark$ ls
bin  conf  data  examples  external  jars  LICENSE  licenses  NOTICE  python  R  README.md  RELEASE  sbin  work  yarn

Я что-то упустил? Кластер искры находится в облаке Google (тестовая учетная запись), как и виртуальная машина с R. Как я могу проверить, что искра порта может быть подключена?

Спасибо за подсказки

@ user16 ... Вы правы, эта проблема вроде бы решена, но мой путь еще не закончен. Я установил ту же версию Spark (2.2.1 с hadoop> 2.7)

Вот мое новое сообщение об ошибке:

    Error in force(code) : 
      Failed during initialize_connection: java.lang.IllegalArgumentException: requirement failed: Can only call getServletHandlers on a running MetricsSystem
            at scala.Predef$.require(Predef.scala:224)
            at org.apache.spark.metrics.MetricsSystem.getServletHandlers(MetricsSystem.scala:91)
            at org.apache.spark.SparkContext.<init>(SparkContext.scala:524)
            at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2516)
            at org.apache.spark.SparkContext.getOrCreate(SparkContext.scala)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:498)
            at sparklyr.Invoke.invoke(invoke.scala:137)
            at sparklyr.StreamHandler.handleMethodCall(stream.scala:123)
            at sparklyr.StreamHandler.read(stream.scala:66)
            at sparklyr.BackendHandler.channelRead0(handler.scala:51)
            at sparklyr.BackendHandler.channelRead0(handler.scala:4)
            at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)
            at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)
            at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)
            at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)
            at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
            at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)
            at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)
            at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)
            at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)
            at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
            at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:643)
            at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:566)
            at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480)
            at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442)
            at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
            at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
            at java.lang.Thread.run(Thread.java:748)

        Log: /tmp/RtmpTUh0z6/file5d231368db0_spark.log


    ---- Output Log ----
            at io.netty.channel.nio.NioEventLoop.processS
            at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480)
            at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442)
            at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
            at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
            ... 1 more
    18/07/21 18:24:59 INFO StandaloneAppClient$ClientEndpoint: Connecting to master spark://spark-cluster-m:7077...
    18/07/21 18:24:59 WARN StandaloneAppClient$ClientEndpoint: Failed to connect to master spark-cluster-m:7077
    org.apache.spark.SparkException: Exception thrown in awaitResult: 
            at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:205)
            at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75)
            at org.apache.spark.rpc.RpcEnv.setupEndpointRefByURI(RpcEnv.scala:100)
            at org.apache.spark.rpc.RpcEnv.setupEndpointRef(RpcEnv.scala:108)
            at org.apache.spark.deploy.client.StandaloneAppClient$ClientEndpoint$$anonfun$tryRegisterAllMasters$1$$anon$1.run(StandaloneAppClient.scala:106)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
            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: java.io.IOException: Failed to connect to spark-cluster-m/10.142.0.3:7077
            at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:232)
            at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:182)
            at org.apache.spark.rpc.netty.NettyRpcEnv.createClient(NettyRpcEnv.scala:197)
            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)
            ... 4 more
    Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: spark-cluster-m/10.142.0.3:7077
            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:257)
            at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:291)
            at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:631)
            at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:566)
            at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480)
            at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442)
            at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
            at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
            ... 1 more
    18/07/21 18:25:19 ERROR StandaloneSchedulerBackend: Application has been killed. Reason: All masters are unresponsive! Giving up.
    18/07/21 18:25:19 WARN StandaloneSchedulerBackend: Application ID is not initialized yet.
    18/07/21 18:25:19 INFO Utils: Successfully started service 'org.apache.spark.network.netty.NettyBlockTransferService' on port 46811.
    18/07/21 18:25:19 INFO NettyBlockTransferService: Server created on 10.142.0.5:46811
    18/07/21 18:25:19 INFO BlockManager: Using org.apache.spark.storage.RandomBlockReplicationPolicy for block replication policy
    18/07/21 18:25:19 INFO BlockManagerMaster: Registering BlockManager BlockManagerId(driver, 10.142.0.5, 46811, None)
    18/07/21 18:25:19 INFO BlockManagerMasterEndpoint: Registering block manager 10.142.0.5:46811 with 366.3 MB RAM, BlockManagerId(driver, 10.142.0.5, 46811, None)
    18/07/21 18:25:19 INFO BlockManagerMaster: Registered BlockManager BlockManagerId(driver, 10.142.0.5, 46811, None)
    18/07/21 18:25:19 INFO BlockManager: Initialized BlockManager: BlockManagerId(driver, 10.142.0.5, 46811, None)
    18/07/21 18:25:19 INFO SparkUI: Stopped Spark web UI at http://10.142.0.5:4040
    18/07/21 18:25:19 INFO StandaloneSchedulerBackend: Shutting down all executors
    18/07/21 18:25:19 INFO CoarseGrainedSchedulerBackend$DriverEndpoint: Asking each executor to shut down
    18/07/21 18:25:19 WARN StandaloneAppClient$ClientEndpoint: Drop Unregist

Я вижу, он может разрешить имя (=> 10.142.0.3) Кроме того, кажется, что это хороший порт, как будто я использую порт 7000, у меня есть ошибка:

18/07/21 18:32:54 ERROR TransportResponseHandler: Still have 1 requests outstanding when connection from spark-cluster-m/10.142.0.3:7000 is closed
18/07/21 18:32:54 WARN StandaloneAppClient$ClientEndpoint: Could not connect to spark-cluster-m:7000: java.io.IOException: Connection reset by peer
18/07/21 18:32:54 WARN StandaloneAppClient$ClientEndpoint: Failed to connect to master spark-cluster-m:7000

Но я не могу понять, что это значит.

Вы говорите, что моя конфигурация "особенная". Если есть лучший (и простой) подход, я был бы рад его использовать.

Вот как я проходил свои тесты: Я создал кластер google dataproc с помощью Spark (2.2.1) Я добавил Кассандру на каждый узел

На данном этапе все работает нормально.

Затем мне нужно установить FactoMineR, поскольку я хочу попробовать HMFA. Говорят, что он работает с R> 3.0.0, так что вроде все в порядке, но это зависит от nlme, который не может быть установлен на R <3.4.0 (а в backports debian jessie это 3.3).

Так что я могу сделать ? Я должен признать, что я не очень в восторге от перезапуска полной установки кластера Spark / Cassandra с нуля ...

Здесь есть хорошее пошаговое руководство по установке R Studio на Dataproc: cloud.google.com/solutions/…. Может быть, это поможет вам понять, в чем ваш подход отличается?

Vince Gonzalez 23.08.2018 20:15

Похоже, несовпадение версии Spark. Можете ли вы проверить, так ли это (radanalytics.io/howdoi/recognize-version-clash)? Также рекомендуется: - Обновить главный URL - Обновить зависимости POM / Gradle / Jar, чтобы вы использовали ту же версию, что и кластер (ckl-it.de/…)

MonicaPC 08.03.2019 00:45
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
564
0

Другие вопросы по теме