WSL2 中,hive beeline 没法使用jdbc:hive2://localhost:10000 访问的问题

首先是大部分人通常碰到这个问题的缘由:hive没有启动,若是再三确认了这一点以后,仍旧没法链接,能够接着往下看。
 
问题是这样的:
  在对127.0.0.1绑定存在端口冲突时,hive可以启动,可是没法经过localhost访问服务,只能使用0.0.0.0:10000来访问。
 
发现此问题时个人hive-site.xml 配置:
 
缘由是:WSL2没法真正绑定到127.0.0.1 ,在配置中任何对127.0.0.1 的绑定都会转向绑定0.0.0.0 
 

除开Spark(多是其netty的绑定有些特殊,考虑到WSL2 使用hyper-V虚拟机“寄生”在windows中,因此多是API走不走内核态调用的缘由,暂不深究)。windows

因此在WSL2中,不存在ip绑定到127.0.0.1的操做。 浏览器

 

 

那么,理论上绑定127.0.0.1 不走网口,只能经过localhost访问;可是0.0.0.0是走网口的,因此能够经过对自身ip访问到。curl

可是又有个奇怪的点。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)。
 
相关文章
相关标签/搜索