赞
踩
首先,在hadoop工作就像是一个社团帮派,master是老大,而slave1、slave2等就是master的小弟。但是,slave并没有像我们那么聪明一眼就能分辨出自己的老大,它们是以ip地址作为辨别的。那么,它们是一个社团就需要把它们集合到一起,这时就需要把它们的ip地址写到一个叫/etc/hosts的文件里,然后还要把主机名也写上进行映射,这样就可以用主机名进行任务分发或文件传输以及其他工作了。
输入“hostname”命令,即可查看主机名,不过以下是默认的主机名,如果在集群里使用这个默认名字会不方便管理,所以我们要修改名字。
执行以下命令进入配置文件,在末尾添加如下图IP地址+需要修改的主机名+别名(别名可以选填),其中用空格把这三部分连接。
vi /etc/hosts
这是hadoop集群的ip与主机名映射,则集群的每个slave都必须拥有这份映射“社团成员目录”方可识别社团的所有社团成员。还有就是,只是单纯改各主机名的话,就只写我们那台的IP和需要改的主机名即可了。
保存重启机器使配置文件生效后,执行以下命令进行将master上的/home/test文件拷贝到slave1上的/root目录:
scp /home/test root@slave1:/root
格式:scp 本地文件 目标虚拟机用户名@目标虚拟机主机名:目标路径
如果是拷贝的目录:scp -r 本地目录 目标虚拟机用户名@目标虚拟机主机名:目标路径
在这里传输文件时需要填写密码,往后可以实现免密登录等操作。
这样做的原因可能是LAN不像WAN那样有专门的DNS,需要通过先查找本地hosts文件,然后再确定目标主机IP。但这样做对后续是否产生不利但影响呢?如果集群中增加一台Slave,是不是要在集群中其他机器里添加这条记录?答案是肯定的,集群中增加一台Slave就要在每个节点机器上添加记录,假如是一个“大社团”就很不方便管理了。解决办法还是有的,就是通过bind9配置DNS服务器替代hosts的IP映射,需要的伙伴可以查找相关文献资料。
若有不足之处望留言!
——————END———————
Programmer:柘月十七
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。