最近用VMware搭建了三个节点的Hadoop集群。下面这张图对其中的一些原理进行了总结:
需要注意的有以下几个点:
(1)VMware Network Adapter VMnet是Windows宿主机中的虚拟网卡,当我们创建好虚拟机之后,在Windows宿主机的网卡页面就出现了一个VMware Network Adapter VMnet。这个网卡是虚拟网卡,只用于Windows宿主机和虚拟机之间的通信。如果我们把VMware Network Adapter VMnet禁用掉,则Windows宿主机和虚拟机之间无法ping通。但是把VMware Network Adapter VMnet禁用掉并不影响虚拟机通过NAT的方式来访问互联网。
(2)VMnet8是VMware提供的一个虚拟交换机,VMware会帮我们自动创建VMnet8,除此之外,VMware还会帮我们自动创建一个虚拟NAT服务器和虚拟DHCP服务器。虚拟NAT服务器来进行虚拟机和主机网卡(真实网卡)之间的NAT转化,虚拟DHCP服务器用来进行动态IP地址分配。而VMnet8作为虚拟交换机,一个端口会和VMware Network Adapter VMnet8进行连接,一个端口会和虚拟NAT服务器连接,一个端口会和虚拟DHCP服务器连接,剩下的端口会和虚拟机连接。
(3)为什么VMnet8 的网关是192.168.10.2 ,而宿主机中的VMware Network Adapter VMnet8 的IP 地址是192.168.10.1?
- 虚拟网卡VMware Network Adapter VMnet8是宿主机和虚拟机进行通信的网卡,把宿主机上的虚拟网卡VMware Network Adapter VMnet8禁用了之后,虚拟机还是能够上网的,但宿主机ping不通虚拟主机了。这证明了NAT模式上网和宿主机内的虚拟网卡VMware Network Adapter VMnet8是没有关系的,VMware Network Adapter VMnet8只是用来让宿主机和虚拟机进行通信。
- VMnet8相当于内网的网卡,宿主机的真实网卡相当于外网的网卡。内网的数据经过内网转发的外网,是通过VM下的一个NAT服务来完成的。在我们的系统中,这个NAT服务就是C:\Windows\System32\vmnat.exe进程来完成这个操作的。
(4)为什么虚拟机的网关设置为192.168.10.2 ? 正常情况下,网关的最后一位应该设置为1。但是因为这里的网关是虚拟子网络的网关,所以将网关的最后一位设置为2。