java - WSL 上的齐柏林飞艇。java.io.IOException:无法启动解释器进程
问题描述
我是 Zeppelin 的新手,想将它安装在我的 Windows10Pro/WSL 机器上。这些安装脚本使用https://github.com/x4ax/lxss-install-zeppelin。
由于它已经三年了,我不得不对其进行一些修改,所以我有:
- Ubuntu 20.04,重击
- zeppelin-0.9.0-bin-all
- hadoop-3.3.0
- spark-3.0.1-bin-hadoop2.7
- 我将python3链接到python
一切都已安装,使用提供的脚本成功测试了 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:网络无法访问(连接失败)
这意味着存在一些网络问题
寻找解决方案的步骤:
- 从日志中我看到这样的命令,它由 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 没有帮助。
我还在防火墙关闭时测试了问题。
我很困惑。
解决方案
通过在这里查看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 别名)。
推荐阅读
- sql - SQL Insert Statement causing error in Oracle
- javascript - Electron 项目中的 Mocha 测试。为什么需要 Babel?
- javascript - Pass html element value to laravel Blade IF
- c - How do I go about mapping a pid_t to a struct?
- ansible - How to run tasks for roles I would select with limit?
- python - How can I pass the result from a python decorator to my class?
- python - Python 循环仅返回满足条件的第一个组(提供数据、代码、图片和示例)
- c - Tax outputting 0
- android - React Native problem: WebView has been removed from React Native
- next.js - Security of secrets added to next.config.js