分布安装图hmaster和hjobtracker是有联系的这里画错了。谅解
简介
SecondaryNameNode(snn)就是NameNode(nn)的热备进程。其实不是。ssn是HDFS架构中的一个组成部分,但是经常由于名字而被人误解它真正的用途,其实它真正的用途,是用来保存namenode中对HDFSmetadata的信息的备份,并减少namenode重启的时间。对于hadoop进程中,要配置好并正确的使用snn,还是需要做一些工作的。hadoop的默认配置中让snn进程默认运行在了namenode的那台机器上,但是这样的话,如果这台机器出错,宕机,对恢复HDFS文件系统是很大的灾难,更好的方式是:将snn的进程配置在另外一台机器上运行。
目标:
secondarynamenode部署在10.10.0.2上,应该可以使用10.10.0.2:50090访问到。。namenode为50070
jobtracker部署在10.10.0.3上,应该可以使用10.10.0.3:50030访问到
这里在vmware里复制虚拟机会出现一个情况。ipconfig -a看不到eth0网卡
ifconfig eth1 10.10.0.1 netmask 255.255.255.0随便给个ip。方便在crt上操作
用crt 进入/etc/udev/rules.d文件夹中 rm -rf 70-persistent-net.rules --rm -rf强制删除文件
ifconfig -a看到eth1的mac地址复制下来。替换到/etc/sysconfig/network-scripts/ifcfg-eth0中HWADDR中。为什么看不到eth0就是因为eth0的mac地址是被复制的那台机器的。
保存 reboot -h now重启
开机看到eth0 。
主机修改: vi /etc/sysconfig/network 修改hostname=xxx重启就可以了
同理生成公钥这里应该为hadoop用户生成公钥。
这里的hmaster和hjotracker都在生成 然后
scp authorized_keys hslave1:/home/hadoop/.ssh/
scp authorized_keys hslave2:/home/hadoop/.ssh/
scp authorized_keys hslave3:/home/hadoop/.ssh/
如何ping 通主机名
vi /etc/hosts
127.0.0.1 localhost--这个最好配置一下
10.10.0.1 hmaster
10.10.0.2 hsecondarynamenode
10.10.0.3 hjobtracker
10.10.0.101 hslave1
10.10.0.102 hslave2
10.10.0.103 hslave3
这里先配置一个hmaster这里包含jobtracker,namenode,namesecondarynamenode等4节点集群部署好。在部署6节点集群
vi masters 为hmaster这个指定secondarynamenode的主机。这里先放在hmaster上。所以配置成hmaster
配置conf下的slaves文件为hslave1,hslave2,hslave3三个主机名。其它的配置和伪分布式一样。这里是错的。因为前面的伪分布式core-site.xml我配置的是hdfs://localhost:9000。因为配置的是localhost所以导致以后一系统的错误。这里将会解决
在主节点上:bin/start-all.sh 启动hadoop。查看主节点。没有问题起了namenode,secondarynamenode,jobtracker节点
.
查看hslave1节点也是没有问题的。已经了datanoe和tasktracker但是有问题的。只是我没有发现
现在把namenode、secondarynamenode、jobtracker分开为各自一台主机
加上dfs.secondary.http.address
hsecondarynode:50090把secondarynamenode的节点指向hsecondarynode主机上去
修改masters 将主机名指向hsecondarynode节点。
并且在hsecondarynode上修改
加上dfs.http.address
hmaster:50070指向hmaster主机
fs.checkpoint.period
3600 单位为秒 就是一小时secondarynamenode会对namenode备份
fs.checkpoint.size
10485760 10485760/1024/1024 为10MB就是10MB大小secondarynamenode会对namenode备份
单独起bin/start-dfs.sh 单独起hdfs查看进程没有问题
在hsecondarynode也没有问题
在从节点上看也没有问题
namenode的可以访问到
secondarynamenode访问不到
说明配置有问题
查看logs日志显示服务器在连自己主机说明core-site.xml有问题
这里localhost没有改掉
应该为hmaster:9000
修改完成。从主节点scp core-site.xml hsecondarynode:/hadoop/hadoop-1.2.1/conf/core-site.xm 复制到secondarynamenode主机和hslave1、hslave2、hslave3上
重启
bin/stop-dfs.sh
bin/start-dfs.sh
显示可以在hsecondarynode上访问到50090说明secondarynamenode已经分离namenode
修改mapred-site.xml修改mapred-site.xml 修改成hjobtracker:9001
scp到各个节点上。
然后在hjobtracker服务器上启动start-mapred.sh
查看日志jobtracker.log。这回学乖了。一定要看日志。显示没有问题
在从节点查看日志
成功访问hjobtracker:50030查看到jobtracker并且看到node为3说明配置没有问题
到此hadoop6节点配置完成