WSL 上的齐柏林飞艇。 java.io.IOException:无法启动解释器进程

Posted

技术标签:

【中文标题】WSL 上的齐柏林飞艇。 java.io.IOException:无法启动解释器进程【英文标题】:Zeppelin on WSL. java.io.IOException: Fail to launch interpreter process 【发布时间】:2021-04-19 17:47:01 【问题描述】:

我是 Zeppelin 的新手,想在我的 Windows10Pro/WSL 机器上安装它。 这些安装脚本使用https://github.com/x4ax/lxss-install-zeppelin。

因为已经三年了,所以我不得不稍微修改一下,所以我有:

Ubuntu 20.04,bash zeppelin-0.9.0-bin-all hadoop-3.3.0 spark-3.0.1-bin-hadoop2.7 我将 python3 链接到 python

一切都安装好了,使用提供的脚本成功测试了 hadoop 和 spark。最后,我设法看到了“Welcome to Zeppelin!”着陆页。

首先,我转到提供的教程 python 注释“1.IPython Basic”并仅使用 %md 运行第一个单元格。我收到错误消息”: "

org.apache.zeppelin.interpreter.InterpreterException: java.io.IOException: 无法启动解释器进程: 空值 在 org.apache.zeppelin.interpreter.remote.RemoteInterpreter.open(RemoteInterpreter.java:129) 在 org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:271) 在 org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:444) 在 org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:72) 在 org.apache.zeppelin.scheduler.Job.run(Job.java:172) 在 org.apache.zeppelin.scheduler.AbstractScheduler.runJob(AbstractScheduler.java:132) 在 org.apache.zeppelin.scheduler.RemoteScheduler$JobRunner.run(RemoteScheduler.java:182) 在 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:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) 原因:java.io.IOException:无法启动解释器进程: 空值 在 org.apache.zeppelin.interpreter.remote.RemoteInterpreterManagedProcess.start(RemoteInterpreterManagedProcess.java:126) 在 org.apache.zeppelin.interpreter.ManagedInterpreterGroup.getOrCreateInterpreterProcess(ManagedInterpreterGroup.java:68) 在 org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getOrCreateInterpreterProcess(RemoteInterpreter.java:104) 在 org.apache.zeppelin.interpreter.remote.RemoteInterpreter.internal_create(RemoteInterpreter.java:154) 在 org.apache.zeppelin.interpreter.remote.RemoteInterpreter.open(RemoteInterpreter.java:126) ... 13 更多

来自 md-shared.log 的信息

INFO [2021-01-14 18:54:46,610] (RemoteInterpreterServer-Thread RemoteInterpreterServer.java[run]:193) - 在 169.254.120.3:52579 启动 ThriftServer INFO [2021-01-14 18:54:47,785] (RegisterThread RemoteInterpreterServer.java[run]:609) - 注册解释器进程 错误 [2021-01-14 18:54:47,790] (RegisterThread RemoteInterpreterServer.java[run]:613) - 注册解释器时出错:RegisterInfo(host:169.254.120.3, port:52579,interpreterGroupId:md-shared_process) , 原因: java.lang.RuntimeException: java.io.IOException: org.apache.zeppelin.shaded.org.apache.thrift.transport.TTransportException: java.net.SocketException: Network is unreachable (connect failed)

表示网络有问题

寻找解决方案的步骤:

    从日志中我看到这样的命令,由 RemoteInterpreter java-object 运行:

/usr/local/zeppelin/bin/interpreter.sh -d /usr/local/zeppelin/interpreter/md -c 169.254.120.3 -p 52579 -r : -i md-shared_process -l /usr/local/ zeppelin/local-repo/md -g md

它安静地运行。

    zeppelin-daemon.sh 启动/停止运行正常。 “状态”也显示正确的状态。所以,重启也无济于事。

    重新安装 zeppelin 和 wsl 没有帮助。

    我还在防火墙关闭时测试了问题。

我很困惑。

【问题讨论】:

【参考方案1】:

通过查看Hello world in zeppelin failed,我设法通过修复 conf/zeppelin-env.sh

来运行 md 解释器
ZEPPELIN_LOCAL_IP=127.0.0.1

我看到了一些陈述(我无法确认!):

Microsoft WSL 阻止随机寻址或 WSL 仅在 localhost 确实是本地时才侦听它。

PS。现在,我很难运行 python 解释器,但这是另一个问题。 (此外,它可以链接到我使用 python3 或类似 shell 设置的 python 别名)。

【讨论】:

以上是关于WSL 上的齐柏林飞艇。 java.io.IOException:无法启动解释器进程的主要内容,如果未能解决你的问题,请参考以下文章

齐柏林飞艇超越超集

Scala 中如何解析导入的名称? (火花/齐柏林飞艇)

java下载服务器上的文件到客户端

在 Ubuntu 14.04 上以 Yarn-Client 模式在 Spark 上的 Zeppelin 中加载外部依赖项

tmk射气球

java io IOException Unable to establish loopback connection