You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启动Spark Shell时遭遇java.net.UnknownHostException错误求助

解决Spark Shell启动时的UnknownHostException: jupyter错误

问题场景

我按照教程安装Spark后,执行spark-shell时抛出了java.net.UnknownHostException: jupyter: jupyter: Name or service not known的错误,虽然最后Spark Shell还是正常启动(能执行1+1得到结果),但我困惑为什么Spark会去查找jupyter这个主机名——毕竟只是启动本地Shell而已。

附上我的配置信息:

.bashrc配置

export PATH=/home/noel/pycharm/jre/bin:$PATH
export HADOOP_HOME=/home/xxx/hadoop_275
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$LD_LIBRARY_PATH
export SPARK_HOME=/home/xxx/spark/spark22_hadoop27
export PATH=$SPARK_HOME/bin:$PATH

/etc/hosts文件内容

127.0.0.1	localhost
#127.0.1.1	deep-learning
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

问题原因

Spark启动时会尝试获取当前机器的主机名并解析对应IP地址,从命令行提示符n@jupyter:~$能看出,你的机器当前主机名就是jupyter,但/etc/hosts文件里并没有把jupyter映射到本地IP(比如127.0.0.1或内网IP),导致Java的InetAddress.getLocalHost()方法找不到解析记录,所以抛出了这个错误。

虽然Shell能启动,但这个错误会影响后续Spark的网络相关功能(比如分布式任务的节点通信),建议修复。

解决方法

修改/etc/hosts文件,将主机名jupyter映射到本地IP即可:

  1. 用sudo权限打开/etc/hosts文件:
sudo nano /etc/hosts
  1. 在现有本地IP行后添加jupyter,或者单独新增一行:
# 方式一:在localhost行后追加
127.0.0.1	localhost jupyter

# 方式二:单独新增一行(Debian/Ubuntu系统常用)
127.0.1.1	jupyter
  1. 保存并退出编辑器,重新启动Spark Shell,错误就会消失。

如果想确认当前主机名,可执行命令:

hostname

输出应该就是jupyter,和命令行提示符一致。


内容的提问来源于stack exchange,提问作者tensor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:27:15