不得不说LZ在最开始搭建hadoop的时候,由于VM中的网段配置和本地IP地址没有配置好,
所以一直都在使用 VM的共享文件夹的功能,
以至于集群搭建好之后,只有namenode主机可以实现共享的功能,
所以导入导出文件都是使用scp 命令来实现的,十分的麻烦。
这次搭建hadoop, 如果使用SSH来与集群中的各个节点进行直接通信的话,
会使得 导入导出 安装包,基于hadoop框架编写的程序,在于实体机与VM之间传输变得十分容易。
首先,以namenode为例来介绍一下,如何实现VM 的Linux 与实体机进行SSH通信的。
LZ使用的是学校的校园网络,IP是万年不变的,还与自己校园卡上的名称一一对应,
与LZ在家中使用的宽带连接的动态IP分配有很多的不同之处,所以配置起来也可能会有一定的特殊性。
1.首先要通过VM的,Virtual NetWork Editor来对 VM的网段进行设置一下,
这个工具可以创建多个虚拟的网络适配器,我们在这里面选择已经存在的VMnet0
VMnet0 的各个配置是这样的:
在这里之所以要对VMnet0进行设置,是因为LZ在创建基于VM的Linux的时候,选择的网络适配器
就是VMnet0,选择哪个适配器可以在VM->Settings->Network Adapter 里面查看到。
当然在虚拟机处于 running 状态或是 Suspend 状态的时候只能够查看,
只有在Shutdown的之后,才能够对VM 中的各个配置进行修改操作。
2.打开实体机的 命令提示符 窗口,输入 ifconfig 来查看实体机的IP地址。
LZ 主机IP地址假设为 125.66.66.46
以为想实现通过SSH 可以连接到 hadoop集群中的每一个结点,
所以,最好不要将 namenode的 IP地址设置为与实体机完全一致,
所以最好不要选用Host的方式,以免 每个node 的IP都和主机一致,
到时候通信起来会相当的混乱。
3.网络适配器和VM的网段选择一致以后,下面要对VM中的Linux主机IP地址进行修改了:
要持久的修改 Linux IP ,是要通过 修改文件来实现的:
vi /etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0 IPADDR=125.66.66.66 #IP Address set NETMASK=255.255.255.0 #Mask set NETWORK=125.66.66.66 #可以没有这个,网络地址 BROADCAST=125.66.66.66 # broadcast adderss set 可以不要 GATEWAY=125.66.66.1 #Gateway address BOOTPROTO = static #IP 地址是静态的方式被引导的 ; 而不是被自动分配的
在所有的网络配置完成之后,
都需要重新启动一下网络服务才好
service network restart
关闭防火墙
service iptables stop
为了以防万一,再重新启动一下SSH服务;
顺便再看一下 22 号端口是否开启
cd /etc/init.d/ ./sshd restart
netstat -antl | grep 22
然后,可以先分别在 Linux 和 实体机两个 命令台上 分别 ping 一下对方
Ping 通过之后, 可以使用SSH进行联通一下了:
选择 Connect 之后,在输入密码的话,就可以实现登陆到Linux上面了。
然后,我们使用SSH的文件传输功能将,hadoop-0.20 的安装包传入到,Linux的文件夹下面吧,
选择你想要的文件,点击Add,选择好要传入到Linux下面的文件路径即可。
接下来,同样的方式,使得实体机可以与datanode们,可以通过ssh通信之后,
把hadoop-0.20 版本的压缩包 ,通过ssh文件传输功能,传到对应的路径下,
进行解压缩、配置路径、修改配置文档、修改ssh密钥等操作,就可以很快搭建好一个hadoop的集群了。
这些内容在后续的文章中在详细介绍。
其实,最主要的思路就是,将Virtual Network Editor 中的网段 使其中的 某个VMnet*选择为 Bridge 类型的,
并且是自动获取IP,然后在创建虚拟机选择网络适配器的时候,选择先前设置好的VMnet* ,并且也选择Bridge类型的,
使得Linux 中 记录IP地址 的配置文件 中的IPADDR 与主机的IP 在前三个字段保持一致,由于集群的特殊性,不能让实体机与VM的IP一致,或是选用Host 类型的网段选择。
随后,关闭防火墙,重新刷新一下网络、SSH。互相 Ping一下,就可以了。