java.net.UnknownHostException

目录

报错信息

报错分析

UnknownHostException 分析

尝试解决

域名

报错可能

网络请求:

数据库连接:

Socket通信:

总结:


报错信息

java.net.UnknownHostException

Caused by: java.net.UnknownHostException:
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.thrift.transport.TSocket.open(TSocket.java:221)
	... 83 more
)
	at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:529)
	at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:247)
	at org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.<init>(SessionHiveMetaStoreClient.java:70)
	... 80 more

报错分析

UnknownHostException 分析

UnknownHostException 是Java编程中常见的一个网络异常,通常在试图通过域名查找并连接到一个主机时抛出。这个异常的主要原因有以下几点:

DNS解析失败: 当Java程序尝试将一个域名转换为IP地址(即执行DNS解析过程)时,如果DNS服务器无法找到与该域名对应的IP地址,则会抛出此异常。这可能是由于:
①域名拼写错误或格式不正确。
②DNS服务器本身的问题,如宕机、配置错误或缓存过期等。
③网络问题导致DNS查询请求无法到达DNS服务器。

本地hosts文件配置问题: 在某些情况下,操作系统会先查看本地的hosts文件来解析域名。
如果hosts文件中没有对特定域名的映射,或者映射的IP地址不正确,也会导致此异常。

网络连接中断或受限: 网络连接存在问题。
例如防火墙阻止了DNS查询请求,或者网络连接完全断开,都会使得DNS解析无法完成。

目标主机不存在或不可达:
所要访问的主机已下线、迁移或尚未启动服务,因此DNS系统中找不到对应的记录。

临时DNS解析延迟
DNS更改传播到全球所有DNS服务器需要时间,新注册的域名或最近修改的DNS记录可能在短时间内不能被所有地方正确解析。

尝试解决

域名

Windows位置:C:\Windows\System32\drivers\etc\hosts

Linux位置:/etc/hosts

添加你自己节点名字,和节点IP

示例:

10.2.60.221	bigdata1
10.2.60.223	bigdata2
10.2.60.222	bigdata3

报错可能

网络请求:

当你尝试使用HttpURLConnection、HttpClient等工具通过域名发起HTTP/HTTPS请求时,如果DNS无法解析目标域名的IP地址,则会抛出此异常。

数据库连接:

在JDBC中,如果你提供的数据库URL是一个域名而非IP地址,并且该域名无法被DNS解析,那么在建立数据库连接时也会抛出此异常。

Socket通信:

在直接使用Socket进行TCP/IP通信时,如果需要通过域名创建Socket连接,而域名未解析成功,同样会触发这个异常

总结:

只要是用域名代替IP来进行工作的,都有可能出现被DNS解析不了从而报错的场景

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值