WSL2 中,hive无法通过localhost;127.0.0.1 方式访问的原因

发现此问题时我的hive-site.xml 配置: WSL2 中,hive无法通过localhost;127.0.0.1 方式访问的原因     绑定为0.0.0.0 localhost 仍无法连接,但是绑定为localhost , 可以通过0.0.0.0 连接。   原因是:WSL2无法真正绑定到127.0.0.1 ,在配置中任何对127.0.0.1 的绑定都会转向绑定0.0.0.0,   WSL2 中,hive无法通过localhost;127.0.0.1 方式访问的原因

 

 除开Spark(可能是其netty的绑定有些特殊,考虑到WSL2 使用hyper-V虚拟机“寄生”在windows中,所以可能是API走不走内核态调用的原因,暂不深究)。所以在WSL2中,不存在ip绑定到127.0.0.1的操作。 

 WSL2 中,hive无法通过localhost;127.0.0.1 方式访问的原因

 

 那么,理论上绑定127.0.0.1 不走网口,只能通过localhost访问;但是0.0.0.0是走网口的,所以可以通过对自身ip访问到。

但是又有个奇怪的点。curl 和浏览器的方式始终可以。   这边给出一个结论:转向绑定0.0.0.0之后,如果通过tcp/ip 进行访问,则需要访问0.0.0.0,不能使用localhost。   但http则不行,需要localhost,究其原因,当使用http服务时,0.0.0.0被指向不可达IP(在server端监听时,0.0.0.0表示所有可达IP,在客户端也即浏览器,所有可达IP==没有指定确切IP)。   WSL2 中,hive无法通过localhost;127.0.0.1 方式访问的原因
上一篇:【DB笔试面试355】在Oracle数据库中,什么是索引组织表?


下一篇:VSCode + WSL 2 + Ruby环境搭建详解