Невозможно запустить искровой мастер в dse 4.5, а файл ведомых устройств отсутствует.

У меня кластер из 5 узлов в DSE 4.5 работает и работает. из 5 узлов 1 узел имеет hadoop_enabled и spark_enabled, но мастер spark не работает.

 ERROR [Thread-709] 2014-07-02 11:35:48,519 ExternalLogger.java (line 73) SparkMaster: Exception in thread "main" org.jboss.netty.channel.ChannelException: Failed to bind to: /54.xxx.xxx.xxx:7077

У кого-нибудь есть идеи по этому поводу?? Я также пытался экспортировать SPARK_LOCAL_IP, но это тоже не работает.

В документации DSE ошибочно упоминается, что файл конфигурации spark-env.sh находится в файле resources/spark/conf/spark-env.sh. фактический путь к каталогу конфигурации — /etc/dse/spark.

Рабы также отсутствуют в каталоге conf, а файлы RUN также отсутствуют в каталоге bin. Я получаю ошибку ниже $ DSE SPARK

 Welcome to
   ____              __
  / __/__  ___ _____/ /__
 _\ \/ _ \/ _ `/ __/  '_/
/___/ .__/\_,_/_/ /_/\_\   version 0.9.1
   /_/

 Using Scala version 2.10.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_51)
 Type in expressions to have them evaluated.
 Type :help for more information.
 Creating SparkContext...
 14/07/03 11:37:41 ERROR Remoting: Remoting error: [Startup failed] [
 akka.remote.RemoteTransportException: Startup failed
    at akka.remote.Remoting.akka$remote$Remoting$$notifyError(Remoting.scala:129)
    at akka.remote.Remoting.start(Remoting.scala:194)
    at akka.remote.RemoteActorRefProvider.init(RemoteActorRefProvider.scala:184)
    at akka.actor.ActorSystemImpl._start$lzycompute(ActorSystem.scala:579)
    at akka.actor.ActorSystemImpl._start(ActorSystem.scala:577)
    at akka.actor.ActorSystemImpl.start(ActorSystem.scala:588)
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:111)
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:104)
    at org.apache.spark.util.AkkaUtils$.createActorSystem(AkkaUtils.scala:96)
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:126)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:139)
    at shark.SharkContext.<init>(SharkContext.scala:42)
    at shark.SharkEnv$.initWithSharkContext(SharkEnv.scala:90)
    at com.datastax.bdp.spark.SparkILoop.createSparkContext(SparkILoop.scala:41)
    at $line3.$read$$iwC$$iwC.<init>(<console>:10)
    at $line3.$read$$iwC.<init>(<console>:32)
    at $line3.$read.<init>(<console>:34)
    at $line3.$read$.<init>(<console>:38)
    at $line3.$read$.<clinit>(<console>)
    at $line3.$eval$.<init>(<console>:7)
    at $line3.$eval$.<clinit>(<console>)
    at $line3.$eval.$print(<console>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:772)
    at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1040)
    at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:609)
    at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:640)
    at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:604)
    at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:793)
    at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:838)
    at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:750)
    at com.datastax.bdp.spark.SparkILoop$$anonfun$initializeSparkContext$1.apply(SparkILoop.scala:66)
    at com.datastax.bdp.spark.SparkILoop$$anonfun$initializeSparkContext$1.apply(SparkILoop.scala:66)
    at org.apache.spark.repl.SparkIMain.beQuietDuring(SparkIMain.scala:258)
    at com.datastax.bdp.spark.SparkILoop.initializeSparkContext(SparkILoop.scala:65)
    at com.datastax.bdp.spark.SparkILoop.initializeSpark(SparkILoop.scala:47)
    at org.apache.spark.repl.SparkILoop$$anonfun$process$1$$anonfun$apply$mcZ$sp$5.apply$mcV$sp(SparkILoop.scala:908)
    at org.apache.spark.repl.SparkILoopInit$class.runThunks(SparkILoopInit.scala:140)
    at org.apache.spark.repl.SparkILoop.runThunks(SparkILoop.scala:53)
    at org.apache.spark.repl.SparkILoopInit$class.postInitialization(SparkILoopInit.scala:102)
    at org.apache.spark.repl.SparkILoop.postInitialization(SparkILoop.scala:53)
    at org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply$mcZ$sp(SparkILoop.scala:925)
    at org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply(SparkILoop.scala:881)
    at org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply(SparkILoop.scala:881)
    at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
    at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:881)
    at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:973)
    at com.datastax.bdp.spark.SparkReplMain$.main(SparkReplMain.scala:22)
    at com.datastax.bdp.spark.SparkReplMain.main(SparkReplMain.scala)
 Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: /54.xx.xx.xx:0
    at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)
    at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:391)
    at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:388)
    at scala.util.Success$$anonfun$map$1.apply(Try.scala:206)
    at scala.util.Try$.apply(Try.scala:161)
    at scala.util.Success.map(Try.scala:206)
    at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235)
    at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:67)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:82)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59)
    at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72)
    at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:58)
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42)
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
 Caused by: java.net.BindException: Cannot assign requested address
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:444)
    at sun.nio.ch.Net.bind(Net.java:436)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.jboss.netty.channel.socket.nio.NioServerBoss$RegisterTask.run(NioServerBoss.java:193)
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:366)
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:290)
    at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
]
org.jboss.netty.channel.ChannelException: Failed to bind to: /54.xxx.xxx.xxx.xxx:0
    at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)
    at    akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:391)
    at   akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:388)
    at scala.util.Success$$anonfun$map$1.apply(Try.scala:206)
    at scala.util.Try$.apply(Try.scala:161)
    at scala.util.Success.map(Try.scala:206)
    at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235)
    at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:67)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:82)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59)
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59)
    at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72)
    at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:58)
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42)
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.net.BindException: Cannot assign requested address
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:444)
    at sun.nio.ch.Net.bind(Net.java:436)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.jboss.netty.channel.socket.nio.NioServerBoss$RegisterTask.run(NioServerBoss.java:193)
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:366)
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:290)
    at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

Type in expressions to have them evaluated.
Type :help for more information.

scala>

искра-env.sh

   export SPARK_HOME="/usr/share/dse/spark"
   export SPARK_MASTER_IP=54.xx.xx.xx (public IP)
   export SPARK_MASTER_PORT=7077
   export SPARK_MASTER_WEBUI_PORT=7080
   export SPARK_WORKER_WEBUI_PORT=7081
   export SPARK_WORKER_MEMORY="4g"
   export SPARK_MEM="2g"
   export SPARK_REPL_MEM="2g"
   export SPARK_CONF_DIR="/etc/dse/spark"
   export SPARK_TMP_DIR="$SPARK_HOME/tmp"
   export SPARK_LOG_DIR="$SPARK_HOME/logs"
   export SPARK_LOCAL_IP=54.xx.xx.xx (public IP)
   export SPARK_COMMON_OPTS="$SPARK_COMMON_OPTS -Dspark.kryoserializer.buffer.mb=10 "
   export SPARK_MASTER_OPTS=" -Dspark.deploy.defaultCores=1 -    Dspark.local.dir=$SPARK_TMP_DIR/master -Dlog4j.configuration=file://$SPARK_CONF_DIR/log4j- server.properties -Dspark.log.file=$SPARK_LOG_DIR/master.log "
   export SPARK_WORKER_OPTS=" -Dspark.local.dir=$SPARK_TMP_DIR/worker -Dlog4j.configuration=file://$SPARK_CONF_DIR/log4j-server.properties -Dspark.log.file=$SPARK_LOG_DIR/worker.log "
   export SPARK_EXECUTOR_OPTS=" -Djava.io.tmpdir=$SPARK_TMP_DIR/executor -Dlog4j.configuration=file://$SPARK_CONF_DIR/log4j-executor.properties "
   export SPARK_REPL_OPTS=" -Djava.io.tmpdir=$SPARK_TMP_DIR/repl/$USER "
   export SPARK_APP_OPTS=" -Djava.io.tmpdir=$SPARK_TMP_DIR/app/$USER "

   # Directory to run applications in, which will include both logs and scratch space  (default: SPARK_HOME/work).
   export SPARK_WORKER_DIR="$SPARK_HOME/work"

person user3632180    schedule 02.07.2014    source источник
comment
Просто чтобы было понятно: у вас есть 4 узла, на которых работает чистая Cassandra, и один узел, на котором смешаны Hadoop/Spark?   -  person Jacek L.    schedule 02.07.2014
comment
В кластере из 5 узлов 2 — это cassandra, 2 — solr и один — на hadoop/spark.   -  person user3632180    schedule 03.07.2014
comment
Является ли интерфейс, упомянутый в исключении, тем, к которому вы хотите его привязать? Может в master.log есть более подробная информация - можете проверить?   -  person Jacek L.    schedule 03.07.2014
comment
Spark Master использует широковещательный адрес в качестве интерфейса, к которому он привязан. Если вы хотите изменить его, вы можете изменить параметр listen_address в cassandra.yaml.   -  person Jacek L.    schedule 03.07.2014
comment
мой кластер находится на EC2, поэтому я оставил Listen_address пустым. Когда я даю широковещательный адрес, я получаю сообщение об ошибке Invalid yaml из-за широковещательного сообщения. Но IP-адрес 54.xx.xx.xx, который я упомянул, является правильным IP-адресом моего узла. но все же это не в состоянии связать. Я также проверил master.log. такое же сообщение об ошибке. SparkMaster: ошибка удаленного взаимодействия: [ошибка запуска].   -  person user3632180    schedule 03.07.2014
comment
Место, которое вы отметили, $DSE_HOME/resources/spark/conf/spark-env.sh — это место установки для установки архива, у вас есть установка пакета, поэтому вы не видите файлы в этом месте. [Расположение файла пакета] [1] Я предполагаю, что ваша проблема заключается в том, что брандмауэр (либо Ec2, либо локальный узел) в вашей группе узлов не позволяет привязать адрес. Видите ли вы какие-либо дополнительные ошибки в /var/log/cassandra/system.log? [1]: datastax.com/documentation/datastax_enterprise/4.5/   -  person RussS    schedule 03.07.2014
comment
Да, я могу найти расположение пакета, которое находится в /etc/dse/spark/spark-env.sh. Все необходимые порты открыты в группе безопасности. в журнале /var/log/cassandra/syatem и Master.log есть та же ошибка, которую я разместил в своем вопросе.   -  person user3632180    schedule 04.07.2014
comment
В этом сообщении журнала: org.jboss.netty.channel.ChannelException: не удалось выполнить привязку к: /54.xxx.xxx.xxx.xxx:0 — вы замаскировали реальный порт 0 или это был 0?   -  person Jacek L.    schedule 04.07.2014
comment
я не маскировал порт с помощью 0. На самом деле DSE SPARK выдает эту ошибку: org.jboss.netty.channel.ChannelException: Failed to bind to: /54.xx.xx.xx:0 Вызвано: java.net.BindException : Невозможно назначить запрошенный адрес и системный журнал и главный журнал err msg : Ошибка запуска Вызвано: org.jboss.netty.channel.ChannelException: Не удалось выполнить привязку к: /54.xx.xx.xx:7077 Вызвано: java.net .BindException: невозможно назначить запрошенный адрес   -  person user3632180    schedule 04.07.2014
comment
Тогда это довольно странно. Можно ли проверить, существует ли такая же проблема при запуске Spark Master вручную? Просто скачайте чистый Spark и попробуйте запустить spark-master.sh.   -  person Jacek L.    schedule 10.07.2014
comment
Я уже пытался вручную установить и настроить это, прежде чем делать это с DSE, у меня не возникло никаких проблем при выполнении искровой оболочки. Возможно, это проблема интеграции с dse spark или я что-то упускаю.   -  person user3632180    schedule 11.07.2014
comment
Я никогда не видел эту ошибку в DSE. Какую версию Java вы используете?   -  person Jacek L.    schedule 14.07.2014
comment
Я просмотрел код, и единственное, что я могу сказать, это то, что это проблема, связанная с безопасностью. DSE и его серверные компоненты запускаются от имени пользователя CASSANDRA. Можете ли вы проверить, имеет ли пользователь CASSANDRA достаточные привилегии для открытия портов?   -  person Jacek L.    schedule 14.07.2014
comment
Спасибо, Джек. Пробовали ли вы использовать SPARK Shell в DSE 4.5? Если да, поделитесь, пожалуйста, этапом настройки, может я что-то упускаю.   -  person user3632180    schedule 15.07.2014
comment
Никаких специальных настроек не использую. Я просто запускаю его, и он работает. Почему бы вам не создать тикет в службу поддержки?   -  person Jacek L.    schedule 15.07.2014
comment
Подскажите, пожалуйста, где и как это сделать?   -  person user3632180    schedule 16.07.2014
comment
Извините за поздний ответ - вы используете DSE для тестирования или купили его для производства? Кроме того, если у вас все еще есть эта проблема - можете ли вы проверить наиболее очевидную вещь - есть ли какой-либо другой процесс, который работает на порту 7077? Кроме того, вы пытались запустить Spark Master самостоятельно? Если да, правильно ли вы его остановили?   -  person Jacek L.    schedule 24.07.2014
comment
Спасибо за ответ Джек. Сейчас я на стадии разработки, после чего мы перенесем это в производство. Это может быть случай, когда я пытаюсь сделать только один узел для SPARK, а для SPARK может потребоваться настроить два узла, один для главного, а другой для рабочего. И явно установить сделать один узел главным узлом. ?? Я уверен, что мне чего-то не хватает только в конфигурации, но я не могу найти, где.   -  person user3632180    schedule 24.07.2014
comment
По сути, когда вы запускаете DSE в режиме Spark (я имею в виду dse cassandra -k, если вы используете установку из архива), он автоматически запускает два процесса — Spark Master и Spark Worker. Они оба работают на одной машине. Если вы запустите другие узлы в режиме Spark в том же центре обработки данных, они будут запускать только Spark Worker. Не должно быть конфликтов. Вы, вероятно, не должны ничего менять, кроме адресов прослушивания Cassandra (в cassandra.yaml файле).   -  person Jacek L.    schedule 28.07.2014
comment
В cassandra.yaml адрес прослушивания — 0.0.0.0. нужно ли его менять??   -  person user3632180    schedule 29.07.2014
comment
Рекомендуется изменить его на фактический интерфейс, который вы хотите слушать. Однако, похоже, что в данной конкретной ситуации это не так. Пожалуйста, посмотрите здесь datastax.com/documentation/cassandra/2.0/cassandra /install/ и убедитесь, что вы правильно настроили порт 7077.   -  person Jacek L.    schedule 31.07.2014


Ответы (1)


Посмотрите настроенный Akka Remote host:port для вашего SparkConf и любую связанную конфигурацию akka в файле reference.conf. Это похоже на конфликт запуска akka, связанный с удаленным akka и хостом: порт, который он ожидает использовать, но уже занят: то есть ChannelException. Что-то еще уже использует 54.xx.xx.xx:0, когда запускается Spark akka ActorSystem.

person Helena    schedule 28.07.2014
comment
Где я могу найти файл reference.conf? Как вы сказали, это может быть конфликт портов, это означает, что я получаю сообщение об ошибке, не позволяющее связать 54.xx.xx.xx:7077? но я сделал netstat -anp | grep 7077 и порт 7077 нигде не используется. Есть ли другой способ проверить порт погоды 54.xx.xx.xx:7077 или 54.xx.xx.xx:0, назначенный любому другому процессу. - person user3632180; 29.07.2014
comment
Система акторов akka создается внутри spark с использованием порта хоста из: spark.driver.host spark.driver.port По крайней мере, в Akka порт 0 передается Netty, которая использует 0 в качестве сигнала для использования динамического номера порта. У вас уже есть работающий узел? - person Helena; 30.07.2014
comment
Попробуйте добавить SPARK_LOCAL_IP=master в оба подчиненных устройства или проверьте свой spark-env.sh - person Helena; 30.07.2014
comment
Елена, я пытаюсь настроить автономный узел spark&hadoop. Пожалуйста, взгляните на мой файл spark-env.sh (обновил вопрос). Все правильно или мне нужно что-то изменить в нем? - person user3632180; 30.07.2014