Привет, мир в zeppelin не удалось

Я только что установил apache zeppelin (построен из последнего источника из git repo) и успешно увидел, что он запущен и запущен в порту 10008. Я создал новую записную книжку с одной строкой кода

val a = "Hello World!"

И запустите этот абзац и увидим следующую ошибку

java.net.ConnectException: соединение отклонено java.net.PlainSocketImpl.socketConnect(собственный метод) в java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) в java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) в java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) на java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) в java.net.Socket.connect(Socket.java:589) в org.apache.thrift.transport.TSocket.open(TSocket.java:182) at org.apache.zeppelin.interpreter.remote.ClientFactory.create(ClientFactory.java:51) в org.apache.zeppelin.interpreter.remote.ClientFactory.create(ClientFactory.java:37) в org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:60) в org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:861) в org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435) в org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363) в org.apache.zeppelin.interpreter.remote.RemoteInterpreterProcess.getClient(RemoteInterpreterProcess.java:139) в org.apache.zeppelin.interpreter.remote.RemoteInterpreter.init(RemoteInterpreter.java:137) в org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:257) в org.apache.zeppelin.interpreter.LazyOpenInterpreter.getFormType(LazyOpenInterpreter.java:104) в org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:197) at org.apache.zeppelin.scheduler.Job.run(Job.java:170) at org.apache.zeppelin.scheduler.RemoteScheduler $JobRunner.run(RemoteScheduler.java:304) в java.util.concurrent.Executors $RunnableAdapter.call(Executors.java:511) в java.util.concurrent.FutureTask.run(FutureTask.java:266) в java.util.concurrent.ScheduledThreadPoolExecutor $ScheduledFutureTask.access $201 (ScheduledThreadPoolExecutor.java:180) в java.util.concurrent.ScheduledThreadPoolExecutor $ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:617) в java.lang.Thread.run(Thread.java:745

Любая подсказка?

Мой бэкенд - это искра 1.5, и я проверял веб-интерфейс интерпретатора, что цеппелин указывает на правильную версию искры и подгоняет искра. Дом.

Ответ 1

Ошибка может быть вызвана также ошибкой, когда Zeppelin пытается создать интерпретатор.

Zeppelin запускает интерпретатор в другом процессе и пытается подключиться к протоколу Thrift Protocol

В моем случае я эту ошибку при попытке назначить 5GB для искрового драйвера в spark-defaults.conf Он разрешается при комментировании этой строки (или назначении 4g или меньше).

#spark.driver.memory              5g

Вы могли бы взглянуть на эту JIRA ZEPPELIN-305

ИЗМЕНИТЬ

Эта ошибка может быть вызвана любой причиной, которая препятствует запуску процесса интерпретатора Spark. Недавно я получил его при попытке добавить параметры JMX в ZEPPELIN_JAVA_OPTS, которые заставляют процесс интерпретатора использовать тот же порт JMX, что и процесс Zeppelin. Предоставление ошибки "Порт уже используется"

Пожалуйста, проверьте журналы Zeppelin (по умолчанию они находятся в ZEPPELIN_DIR/logs/, чтобы узнать, что происходит, когда Zeppelin пытается запустить Spark Interpreter

Ответ 2

У меня была эта проблема, когда $SPARK_HOME был установлен неправильно

Ответ 3

Этот вопрос открыт уже год, не уверен, что решение проблемы было реализовано. Недавно я столкнулся с аналогичной ошибкой, используя Yarn-Spark на Amazon EMR. Когда я отлаживал это, я понял следующее и предлагал людям попробовать, если они окажутся в подобной обуви (решение основано на EMR, но должно быть похоже на другие предложения)

1. kill -9 `ps -ef | grep zeppelin | grep -v grep | awk '{print $2}'`( *will make sure zombie processes are taken care of*)
2. kill -9 `ps -ef | grep hadoop-yarn-resourcemanager | grep -v grep | awk '{print $2}'`
3. sudo /sbin/restart hadoop-yarn-resourcemanager
4. At times, simply starting the resource-manager does not start the name-node `sudo start hadoop-hdfs-namenode`
5. sudo /usr/lib/zeppelin/bin/zeppelin-daemon.sh start 
6. Use telnet to make sure that the default ports are open for required service.

В endo то же самое, нужно быть уверенным, что zeppelin работает правильно с действующим SparkContext. Надеюсь, это было полезно

Ответ 4

Столбец ошибок, подобный [1] ниже, может означать много разных вещей. Сервер Zeppelin не мог подключиться к локальному интерпретатору, потому что он не запускался и не умирал. Кажется, ошибка Zeppelin, поскольку он не может поймать, когда interpreter.sh выходит, не создавая процесс интерпретации Zeppelin, отправил https://issues.apache.org/jira/browse/ZEPPELIN-1984, чтобы отслеживать это.

Во всех наших случаях с различными корневыми причинами реальная ошибка была только открываемой если вы добавите

LOG="/tmp/interpreter.sh-$$.log"
date >> $LOG
set -x
exec >> $LOG
exec 2>&1

до $ZEPPELIN_HOME/bin/interpreter.sh, поэтому файл /tmp/interpreter.sh-*.log покажет вам фактическую проблему.

[1]

ОШИБКА [2017-01-18 16: 54: 38,533] ({pool-2-thread-2} NotebookServer.java [afterStatusChange]: 1645) - Ошибка org.apache.zeppelin.interpreter.InterpreterException: org.apache.zeppelin.interpreter.InterpreterException: org.apache.thrift.transport.TTransportException: java.net.ConnectException: соединение отклонено         на org.apache.zeppelin.interpreter.remote.RemoteInterpreter.init(RemoteInterpreter.java:232)         на org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:400)         at org.apache.zeppelin.interpreter.LazyOpenInterpreter.getFormType(LazyOpenInterpreter.java:105)         в org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:316)         at org.apache.zeppelin.scheduler.Job.run(Job.java:176)         at org.apache.zeppelin.scheduler.RemoteScheduler $JobRunner.run(RemoteScheduler.java:329)         в java.util.concurrent.Executors $RunnableAdapter.call(Executors.java:471)         в java.util.concurrent.FutureTask.run(FutureTask.java:262)

Изменить. Другой способ показать истинную основную причину - изменить log4j, чтобы увидеть результат процесса искрового интерпретатора, как намекнул Джефф в ZEPPELIN-1984. Измените ZEPPELIN_HOME/conf/log4j.properies следующим образом:

log4j.rootLogger = INFO, dailyfile

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%d] ({%t} %F[%M]:%L) - %m%n

log4j.appender.dailyfile.DatePattern=.yyyy-MM-dd
log4j.appender.dailyfile.Threshold = DEBUG
log4j.appender.dailyfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyfile.File = ${zeppelin.log.file}
log4j.appender.dailyfile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyfile.layout.ConversionPattern=%5p [%d] ({%t} %F[%M]:%L) - %m%n

log4j.logger.org.apache.zeppelin.interpreter.InterpreterFactory=DEBUG
log4j.logger.org.apache.zeppelin.notebook.Paragraph=DEBUG
log4j.logger.org.apache.zeppelin.scheduler=DEBUG
log4j.logger.org.apache.zeppelin.livy=DEBUG
log4j.logger.org.apache.zeppelin.flink=DEBUG
log4j.logger.org.apache.zeppelin.spark=DEBUG
log4j.logger.org.apache.zeppelin.python=DEBUG
log4j.logger.org.apache.zeppelin.interpreter.util=DEBUG
log4j.logger.org.apache.zeppelin.interpreter.remote=DEBUG
log4j.logger.org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer=DEBUG

и перезапустите Zeppelin. Примечание: это может привести к чрезмерному протоколированию. Мой оригинальный совет по добавлению нескольких строк в interpreter.sh не требует перезапуска Zeppelin.

Также создан запрос на pull для (частично) устранения этой проблемы: https://github.com/apache/zeppelin/pull/1921

Обновление 1/24/2017. https://issues.apache.org/jira/browse/ZEPPELIN-1984 зафиксирован в главном файле и будет включен в выпуск Zeppelin 0.8. Два важных исправления входят в состав ZEPPELIN-1984:

  • вы не получили бы "отказ в подключении", когда процесс-переводчик не может запускаться;
  • Zeppelin будет показывать основную причину (в выводе параграфа), что является основной причиной.

Ответ 5

Я заметил, что URL-адрес, указывающий на искру, неверен. Однажды я исправил его, он отлично работает. В любом случае, спасибо.

Ответ 6

Была ли такая же проблема, когда $YARN_QUEUE был установлен неверно

Ответ 7

В моем случае (project-root)/node_modules/zeppelin/spark-2.0.2-bin-hadoop2.7 не был установлен по какой-то неизвестной причине. rm -rf node_modules; npm cache clear; npm i зафиксировал его.

Ответ 8

Я исправил эту ошибку с изменением строки пряжи искровой моды на пряжу-клиенту, поскольку он установлен в zepplin/conf/defalt.sh

Ответ 9

Я получил точно такую ​​же ошибку, когда пытался запустить Zeppelin с помощью Spark в том же контейнере докеров на микро-экземпляре в Amazon ECS.

Источник ошибки отображается в журнале вывода% ZEPPELIN_HOME%/logs/*. out, и он говорил, что Zeppelin не смог запустить интерпретатор Spark из-за низкой памяти. Поэтому я переместил изображение Docker в экземпляр с большей памятью.

Ответ 10

В моем случае у меня есть три node в моем кластере. Хотя в трех из них была установлена ​​искра, zeppelin был установлен только на одном из них.

Итак, в меню переводчика zeppelin → Spark → Edit → Properties → Master

изменение этого параметра из пряжи-клиента в локальный [*] исправил мою проблему.