准备工作:hadoop2.3 64/32
win7+vmare+3 centos
jdk 7
1、配置centos nat联网方式
设置虚拟机的网络适配器 为nat(Network Address Translation,网络地址转换)
NAT方式只要主机Host能够上网,小小设置一下,VMware也能上网
NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
VM软件安装好后,就有10个网络连接类型可供选择。分别是:VMnet0、VMnet1、VMnet2、VMnet3、VMnet4、VMnet5、VMnet6、VMnet7、VMnet8、VMnet9。
VM虚拟机常用的三种网络连接方式默认:桥接(bridge)用的是VMnet0,NAT用的是VMnet8,host-only用的是VMnet1。
桥接:就是把虚拟机通过VMnet0桥接到主机的本地连接。
虚拟机是通过VMnet0与外界联系,现在的虚拟机就相当于和主机一样是物理网络中的一台电脑,说的通俗的就是现在虚拟机就相当于和你主机同在一个网络的另一台真实的电脑。所以要想使用桥接使虚拟机上网,前提必须你的主机处在局域网中,也就是你的主机上网得有路由器,这时才能用桥接使虚拟机上网。至于虚拟机的IP设置方式和你主机一样,用不用设置IP要看你的路由器是否开启了DHCP和DNS,主机不用虚拟机也不用,主机要设置那么虚拟机也要设置。对于那些使用拨号上网方式并且没用路由器的就不要用桥接。
NAT:就是网络地址转换,通过VMnet8连接作为网关使虚拟机经过主机上网。
虚拟机是通过VMnet8与外界联系,说的通俗的就是在你的主机和虚拟机之间加了一个路由器,虚拟机通过这个路由器上网。NAT方式就不用考虑那么多,只要你主机能上网虚拟机就能上网,所以一般没有特殊要求推荐用NAT方式。
host-only:就是虚拟机和主机在一个私有网络中。
这时虚拟机只能和主机通讯,默认它是不能上网的。(当然不是绝对的,要想上网不过要进行另外的设置)
以上只是简单的介绍了VM虚拟机常用的三种网络连接方式,一般用NAT方式虚拟机就很容易上网的,所以一般没有特殊要求推荐用NAT方式。
打开控制面板的网络连接,现在是这样的(可以不管):
原因:VMware Network Adapter VMnet1和VMnet8 被防火墙认定为未识别的网络,阻隔,无法使用端口映射,虚拟机的80端口无法传入,数据包只能出不能入。且公用网络被限制不能修改为家庭或工作网络。
解决方法:
1,进入注册表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}],先导出做备份。
2,逐项查看其下的[项](0000,0001至00xx),看右边哪一项的[值]为:"DriverDesc"="VMware Virtual Ethernet Adapter for VMnet1"。
3,找到后,新建一个“DWORD”值(32位),名称为“*NdisDeviceType”(*号是必须的),数据值改为“1”。(一定要32位)
4,同理再找 VMnet8 ,再重复第2~3步,添加值。
完成后重启windows即可。
联网测试:
[s**2@s**2 Desktop]$ ping www.baidu.com
ping: unknown host www.baidu.com
恢复默认设置:
点击是,等待安装完成,重启vm
联网测试;
查看自己的ip:
[s**2@s**2 Desktop]$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:7D:53:91
inet addr:192.168.159.128 Bcast:192.168.159.255 Mask:255.255.255.0
不设置inet就是默认的128,设置为自己想固定的ip地址
参看:http://icyleaf.com/2013/09/network-configuration-in-centos/
以管理员 su登陆 ,执行:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
或者: vim -r /etc/sysconfig/network-scripts/ifcfg-eth0"
修改内容如下:
DEVICE="eth0"
BOOTPROTO="static"
DNS1="192.168.159.2"
GATEWAY="192.168.159.2"
IPADDR="192.168.159.132"
HWADDR="00:0C:29:7D:53:91"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="0118dce9-bdf0-4103-9baf-16b1269027dd"
ip就该为132的了
出现主机能ping网,VM不能ping网的原因:
VM的网关和主机ip不一致,解决方法:
打开虚拟机 -->编辑-->虚拟网络编辑器
发现这里的网关并不是上面设置的192.168.1.1而是192.168.159.2
去修改vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改:
DNS1="192.168.159.2"
GATEWAY="192.168.159.2"
service network restart
联网测试;
2、ssh免密码验证
下载hadoop:
http://www.apache.org/dyn/closer.cgi/hadoop/common/
选择了最新版的2.6.0.tar.gz
为三台虚拟机安装jdk(百度:在linux下安装jdk)
参看:http://jingyan.baidu.com/article/d621e8dae805272865913fa7.html
注:以前安装过hadoop0.20,先删除用户和用户文件(百度:linux下删除用户、linux下删除目录)
[s**1@s**1 Desktop]$ su
Password:
[root@s**1 Desktop]# userdel -r grid
-r连同grid的目录文件一块删除;
对其他2个节点进行相同操作,即可;
1.配置hosts文件(对各主机名的解析称ip地址)
cd /etc
vi hosts
192.168.159.131 s**1
192.168.159.132 s**2
192.168.159.133 s**3
测试下
2.建立hadoop账号(使用root有安全隐患)
[root@s**1 Desktop]# useradd hadoop
[root@s**1 Desktop]# passwd hadoop
Changing password for user hadoop.
New password:
BAD PASSWORD: it does not contain enough DIFFERENT characters
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
1***2*
3.创建ssh公钥
以账户hadoop登陆
[hadoop@s**1 Desktop]$ cd
[hadoop@s**1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): /home/hadoop/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
bb:53:a7:cb:07:55:19:33:c1:e3:97:dd:5c:5b:7e:89 hadoop@s**1.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| .=+ |
| =oo|
| o.+O|
| .E.+B|
| S . ..|
| .o . |
| .. + |
| .o. . |
| ..oo |
+-----------------+
[hadoop@s**1 ~]$ cd .ssh
[hadoop@s**1 .ssh]$ cp id_rsa.pub authorized_keys
查看一下authorized_keys内容
[hadoop@s**1 .ssh]$ cat authorized_keys
4,在其他两个节点中配置hosts文件、创建hadoop用户和ssh文件,最后将三个ssh文件合并成为一个authorized_keys文件,放在三个节点中,即完成节点间各自拥有其他节点的公钥。
[hadoop@s**1 Desktop]$ cd
[hadoop@s**1 ~]$ cd .ssh
[hadoop@s**1 .ssh]$ vi authorized_keys
测试:
[hadoop@s**1 Desktop]$ ssh hadoop@s**2
The authenticity of host 's**2 (192.168.159.132)' can't be established.
RSA key fingerprint is ce:6f:57:64:18:f1:ea:e4:b4:1a:db:cb:ec:8f:e4:22.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 's**2,192.168.159.132' (RSA) to the list of known hosts.
[hadoop@s**1 Desktop]$ ssh hadoop@s**2
Last login: Mon Mar 16 21:36:49 2015 from s**1
[hadoop@s**2 ~]$
表明ssh信任添加成功;
对每个节点进行测试.