我刚刚安装了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
有任何线索吗?
我的后端是Spark 1.5,我通过解释器的网络界面验证了zeppelin指向正确版本的spark并且适用了spark.home。
答案 0 :(得分:5)
当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时发生的情况
答案 1 :(得分:3)
// Definiciones de la información del prospecto.
var Prospect = function (uuid){
this.uuid = uuid;
var __init__ = function (self)
{
$.ajax({
type : "POST",
dataType: "json",
data : {"confirm" : true },
"context": self,
"async" : false,
url : dev()+'/crmutilidades/get_inscription_data/'+self.uuid+'/'+module_sugar_grp1,
success : function _success_get_inscription_data(response)
{
this.inscription = response.data;
this.data = response.data.prospect;
this.paid = response.data.inscrito !== 'undefined' ? response.data.inscrito : false;
}
});
}
__init__(this);
}//#END Prospect
未正确设置时出现此问题
答案 2 :(得分:1)
下面的[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的一部分:
答案 3 :(得分:0)
我注意到指向火花的网址不正确。有一次,我纠正了它,它工作正常。不管怎样,谢谢。
答案 4 :(得分:0)
当$ YARN_QUEUE设置不正确时出现同样的问题
答案 5 :(得分:0)
这个问题现已开放一年,不确定问题的解决方案是否已实现。最近,我在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正常运行。希望这很有用
答案 6 :(得分:0)
就我而言,由于某些未知原因,未安装(project-root)/node_modules/zeppelin/spark-2.0.2-bin-hadoop2.7
。 rm -rf node_modules; npm cache clear; npm i
修正了它。
答案 7 :(得分:0)
我修复了这个错误,将spark-modle yarn-cluster更改为yarn-client,因为它在zepplin / conf / defalt.sh中进行了
答案 8 :(得分:0)
当尝试在Amazon ECS中的微实例上的相同docker容器中使用Spark运行Zeppelin时,我得到完全相同的错误。
错误源在%ZEPPELIN_HOME%/ logs / * .out的输出日志中可见,并且它说Zeppelin由于内存不足而无法启动Spark解释器。所以我将Docker镜像移动到具有更多内存的实例。
答案 9 :(得分:0)
就我而言,我的群集中有三个节点。虽然安装了其中三个火花,但只在其中一个上安装了zeppelin。
所以在zeppelin Interpreter菜单中 - > Spark - >编辑 - >属性 - >主
将该参数从 yarn-client 更改为本地[*] 修复了我的问题。
答案 10 :(得分:0)
Zeppelin将在本地主机上运行自定义Spark应用程序,有时(如果您有多个网络,例如VPN),则它不能使用127.0.0.1
:
public static String findAvailableHostAddress() throws UnknownHostException, SocketException {
InetAddress address = InetAddress.getLocalHost();
if (address.isLoopbackAddress()) {
for (NetworkInterface networkInterface : Collections
.list(NetworkInterface.getNetworkInterfaces())) {
if (!networkInterface.isLoopback()) {
for (InterfaceAddress interfaceAddress : networkInterface.getInterfaceAddresses()) {
InetAddress a = interfaceAddress.getAddress();
if (a instanceof Inet4Address) {
return a.getHostAddress();
}
}
}
}
}
return address.getHostAddress();
}
您可以看到Spark解释程序正在运行并且正在“怪异” IP上监听:
ps aux | grep spark
zep/bin/interpreter.sh -d zep/interpreter/spark -c 10.100.37.2 -p 50778 -r : -l /zep/local-repo/spark -g spark
但是,Zeppelin UI尝试连接到本地主机,它将解析127.0.0.1
,因此解析为Connection refused
。
ZEPPELIN_LOCAL_IP
来修复