首页 > 解决方案 > WSL 上的齐柏林飞艇。java.io.IOException:无法启动解释器进程

问题描述

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

由于它已经三年了,我不得不对其进行一些修改,所以我有:

一切都已安装,使用提供的脚本成功测试了 hadoop 和 spark。最后,我设法看到了“欢迎来到 Zeppelin! ”登陆页面。

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

org.apache.zeppelin.interpreter.InterpreterException:java.io.IOException:无法启动解释器进程:在 org.apache.zeppelin.interpreter.remote.RemoteInterpreter.open(RemoteInterpreter.java:129) 处为空.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:271) at org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:444) at 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) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java .util.并发。ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 原因:java.io.IOException:无法启动解释器进程:null at org.apache.zeppelin.interpreter.ManagedInterpreterGroup.getOrCreateInterpreterProcess(ManagedInterpreterGroup.java:68) 在 org.apache.zeppelin.interpreter.remote 的 org.apache.zeppelin.interpreter.remote.RemoteInterpreterManagedProcess.start(RemoteInterpreterManagedProcess.java:126)。 RemoteInterpreter.getOrCreateInterpreterProcess(RemoteInterpreter.java:104) 在 org.apache.zeppelin.interpreter.remote.RemoteInterpreter.internal_create(RemoteInterpreter.java:154) at 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 信息 [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 (主机:169.254.120.3,端口:52579,interpreterGroupId:md-shared_process),原因:{} java.lang.RuntimeException:java.io.IOException:org.apache.zeppelin.shaded.org.apache.thrift.transport。 TTransportException:java.net.SocketException:网络无法访问(连接失败)

这意味着存在一些网络问题

寻找解决方案的步骤:

  1. 从日志中我看到这样的命令,它由 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

它无声无息地运行。

  1. zeppelin-daemon.sh 启动/停止运行正常。“状态”也显示正确的状态。因此,重新启动没有帮助。

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

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

我很困惑。

标签: javapythoninterpreterapache-zeppelin

解决方案


通过在这里查看zeppelin 中的 Hello world failed我设法通过修复conf/zeppelin-env.sh来运行 md 解释器

ZEPPELIN_LOCAL_IP=127.0.0.1

我看到了一些声明(我无法证实它们!):

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

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


推荐阅读