问题 齐柏林飞艇的Hello世界失败了


我刚刚安装了apache zeppelin(从git repo的最新源代码构建)并成功地看到它在10008端口启动并运行。 我用一行代码创建了一本新的笔记本

val a = "Hello World!"

并运行此段并看到以下错误

java.net.ConnectException:拒绝连接   java.net.PlainSocketImpl.socketConnect(Native Method)at   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)at   java.net.Socket.connect(Socket.java:589)at   org.apache.thrift.transport.TSocket.open(TSocket.java:182)at 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)   在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)at   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,我通过解释器的网络界面验证,齐柏林飞艇指向正确的火花版本,并适应spark.home。


12880
2017-09-23 09:21


起源

你的火花在运转吗? - Reactormonk


答案:


当Zeppelin尝试创建解释器时,错误可能也会发生错误。

Zeppelin在不同的进程中启动解释器并尝试连接到使用Thrift协议

在我的情况下,我尝试在spark-defaults.conf中为spark驱动程序分配5GB时出现此错误 在评论此行时(或指定4g或更少)解决此问题

#spark.driver.memory              5g

你可以看看这个JIRA ZEPPELIN-305

编辑

此错误可能是由阻止Spark解释器进程启动的任何原因引起的。 最近,我在尝试将JMX选项添加到ZEPPELIN_JAVA_OPTS时得到了它,这导致解释器进程使用与Zeppelin进程相同的JMX端口。给“端口已经使用”错误

请检查Zeppelin日志(默认情况下,它们位于ZEPPELIN_DIR / logs /中,以查看Zeppelin尝试启动Spark Interpreter时发生的情况


5
2017-11-10 10:51





我有这个问题的时候 $SPARK_HOME 设置不正确


3
2018-03-17 19:47





像[1]这样的错误堆栈可能意味着很多不同的东西。 Zeppelin Server无法连接到本地解释器,因为它没有启动或死亡。它似乎是一个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)           at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:400)           在org.apache.zeppelin.interpreter.LazyOpenInterpreter.getFormType(LazyOpenInterpreter.java:105)           在org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:316)           在org.apache.zeppelin.scheduler.Job.run(Job.java:176)           在org.apache.zeppelin.scheduler.RemoteScheduler $ JobRunner.run(RemoteScheduler.java:329)           at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)           在java.util.concurrent.FutureTask.run(FutureTask.java:262)

编辑。另一种揭示真正根本原因的方法是改变log4j以查看spark解释器进程的输出,正如Jeff在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。

还创建了拉取请求(部分)修复此问题: https://github.com/apache/zeppelin/pull/1921

更新1/24/2017。 https://issues.apache.org/jira/browse/ZEPPELIN-1984 在master中固定,将在Zeppelin 0.8版本中被包含。两个重要的修复是ZEPPELIN-1984的一部分:

  • 你不会得到“连接拒绝”,因为一个interpter进程无法启动;
  • Zeppelin会显示根本原因(在段落输出中)的根本原因。

1
2018-01-20 01:39





我注意到指向火花的网址不正确。有一次,我纠正了它,它工作正常。不管怎么说,还是要谢谢你。


0
2017-09-25 12:15





$ YARN_QUEUE设置不正确时有同样的问题


0
2018-06-03 04:00





这个问题已经开放了一年,不确定问题的解决方案是否实现了。最近,我在Amazon EMR上使用Yarn-Spark遇到了类似的错误。当我调试它时,我意识到以下情况,并建议人们尝试如果他们发现自己穿着类似的鞋子(解决方案基于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相同的情况下,应该能够使用有效的SparkContext使zeppelin正常运行。希望这很有用


0
2017-10-05 08:04



这样您就可以在root用户下运行Zeppelin,这是一个巨大的安全问题。想象一下您的用户使用%sh然后以root用户身份运行任意命令。 - Alan Kis


就我而言, (project-root)/node_modules/zeppelin/spark-2.0.2-bin-hadoop2.7 没有安装,原因不明。 rm -rf node_modules; npm cache clear; npm i 修复。


0
2017-12-15 22:19





我修改了这个错误,将spark-modle yarn-cluster更改为yarn-client,因为它在zepplin / conf / defalt.sh中进行了修改


0
2017-09-08 09:27