hadoop集群环境安装过程及centos上网的解决办法
原文地址:http://www.cnblogs.com/HeroBeast/p/4962730.html
目标:做高可用,创建2个NameNode,做高可用,一个NameNode挂掉,另一个能够启动;一个运行Yarn,3台DataNode,3台Zookeeper集群,做高可用。
当kill掉hadoop01时候,dadoop02能够顶上来
在hadoop2中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步active namenode的状态,以便能够在它失败时快速进行切换。
这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态
资源下载:
hadoop2.7.1:
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz
zookeeper-3.4.6
http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
jdk1.7.0_67,centos镜像,hadoop00.vmdk
1,安装虚拟机,我的版本是最新12
2,安装centos,有桌面版和小窗口版两种
3,让centos上网
4,克隆出六台centos系统,分别叫hadoop01--hadoop06
5,让6台机器都能上网:ping www.baidu.com
6,时间同步,ntp
7,6台机器的ip是静态的,主机名称是统一的,防火墙是关闭的,ipv6也是关闭的
8,安装jdk
9,ssh免密码设置登陆(hadoop01到hadoop01————hadoop6免密码登陆(测试ssh hadoop02)和hadoop02免密码登陆hadoop01)
10,安装zookeeper,4,5,6三台机器启动之后效果是一个状态是leader,另外两个是follower,并且关闭leader之后会有另外一个变成leader
11,hadoop安装(依赖jdk环境),which hadoop 显示hadoop的位置
12,hadoop的配置, 配置(6个)
hadoop-env.sh,core-site.xml,hdfs-site.xml,slaves,mapred-site.xml(里面有一个mapred-site.xml.example,重命名为mapred-site.xml),yarn-site.xml,
13,启动zookeeper服务
14,hadoop01启动journalnode
15,在hadoop01格式化hadoop01
16,格式化zk
17,启动hdfs
18,启动yarn
19,在windows下面配置hadoop主机名
20,测试:http://hadoop01:50070/
当kill主name节点时候下一个会变成active状态
遇到的问题:
1,centos系统忘记root密码的解决办法:
2,centos联网问题(上不了网,不能同步时间)
设置静态ip的方法:
http://jingyan.baidu.com/article/90808022dc25a1fd91c80fa5.html
“虚拟机”-“设置”,网络适配器选为NAT
“编辑”-“虚拟网络编辑器”选中VMnet8,点选NAT(与虚拟机共享主机IP地址),把DHCP勾上(那两个框都勾上)。
点击“应用”。
开启宿主机(windows7)中的VMware DHCP Service 和VMware NAT Service服务。写个脚本省事儿。
net start "VMware DHCP Service"
net start "VMware NAT Service"
pause
再写个Linux脚本,:
service NetworkManager stop
service network restart
service NetworkManager start
弹出界面 eth0: 错误:激活连接失败:Device not managed by Network
解决方案:
1、#Remove Network Manager from startup Services.
chkconfig NetworkManager off
2、#Add Default Net Manager
chkconfig network on
3、#Stop NetworkManager first
service NetworkManager stop
4、#and then start Default Manager
service network start
5、#restart network
service network restart
device eth0 does not seem to be present, delaying initialization:解决方案
1、
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0的配置文件里保存了以前的MAC地址,就把这一行删除掉在重启网卡
2、
/etc/udev/rules.d/70-persistent-net.rules 删除后重启机器
因为这个文件绑定了网卡和mac地址,所以换了网卡以后MAC地址变了,所以不能正常启动,也可以直接编辑这个配置文件把里面的网卡和mac地址修改乘对应的,不过这样多麻烦,直接删除重启,它会自动生成个。
ifconfig-eth0配置:
DEVICE=etho
BOOTPROTO=dhcp
ONBOOT=yes
NM_CONTROLLED=yes
1
DEVICE=eth0
TYPE=Etherne
tUUID=58d64342-6bca-4156-8d4b-3bb092190644
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:15:5D:01:44:11
IPADDR=192.168.1.103
PREFIX=24
GATEWAY=192.168.1.251
DNS1=202.96.128.86
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
改成:DEVICE=etho
BOOTPROTO=dhcp
ONBOOT=yes
NM_CONTROLLED=yes
2
/etc/udev/rules.d/70-persistent-net.rules 删除后重启机器
rm 70-persistent-net.rules
网卡mac地址:
00:0C:29:BA:5B:BE
除了uuid和ip,其他都一样
解释:
1、网卡对应的设备别名,如ifcfg-eth0的文件中它为eth02、网络类型:以太网
UUID含义是通用唯一识别码 (Universally Unique Identifier),在此可以忽略
3、ONBOOT=自动加载
NM_CONTROLLED及BOOTPROTO在此可以忽略
4、HWADDR=00:15:5D:01:44:11 网卡MAC地址(这个是我的,你别抄哦)
5、IPADDR=192.168.1.103 网络ip地址
6、PREFIX=24 子网掩码24位
7、GATEWAY=192.168.1.251 网关地址8、DNS1=10.203.104.41 主DNS地址
9、DNS1=10.203.104.41 备用DNS地址
克隆之后网络配置:
解决步骤:
第一步 删除文件70-persistent-net.rules
rm -f /etc/udev/rules.d/70-persistent-net.rule
第二步 修改ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth0
删除或者注释MAC地址的配置
第三步:重启服务器
reboot
这样就可以设置新的ip地址了,现在IP地址:192.168.8.102
我的eth0配置:
DEVICE=etho
IPADDR=192.168.8.101
HWADDR=00:0C:29:BA:5B:BE
NETMASK=255.255.255.0
GATEWAY=192.168.8.2
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
centos上网的解决办法:
ifconfig eth0:查看是否存在ip地址,
如果存在,第一步 删除文件70-persistent-net.rules
rm -f /etc/udev/rules.d/70-persistent-net.rule
第二步 修改ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth0
删除或者注释MAC地址的配置
第三步:重启服务器
reboot
这样就可以设置新的ip地址了
如果存在,还是上不了网:
service NetworkManager stop
service network restart
service NetworkManager start
查看 /etc/udev/rules.d/70-persistent-net.rule文件中对应的是不是eth0,在最后一行,
从vmware workstation中克隆(clone)了一个redhat6.0的虚拟机,启动之后发现网卡没有启动。于是重启一下network服务,发现提示错误信息“Device eth0 does not seem to be present, delaying initialization.”
解决办法:删除 /etc/udev/rules.d/70-persistent-net.rules 后重启机器。70-persistent-net.rules这个文件确定了网卡与MAC地址的绑定,clone之后网卡的MAC地址发生了变化,所以导致系统认为网络设备不存在。
经过这样的处理后eth0还不能正常启动,需要将 /etc/udev/rules.d/70-persistent-net.rules 文件最后的修改"eth1"为"eth0",然后将/etc/sysconfig/network-scripts/ifcfg-eth0中的MAC地址修改为 /etc/udev/rules.d/70-persistent-net.rules文件中所记录的地址,再重启机器,eth0可以正常启动了。