0、节点List文件(文件名nodes,不将master列在其中,不然下面的scp脚本会出问题的,详见二-2)
vi nodes node01 node02 node03 node04
1、ssh免密登录批处理(需要同级目录下的nodes文件)
#!/bin/bash PASSWORD=hadoop auto_ssh_copy_id() { expect -c "set timeout -1; spawn ssh-copy-id $1; expect { *(yes/no)* {send -- yes\r;exp_continue;} *assword:* {send -- $2\r;exp_continue;} eof {exit 0;} }"; } cat nodes | while read host do { auto_ssh_copy_id $host $PASSWORD }&wait done
2、scp批处理(需要同级目录下的nodes文件),即下文命令中的scp.sh
nodes文件中不能包含master,不然就是master scp到master,scp目录的时候会反复在目录下创建目录再拷贝,直至路径太长而创建失败,然后才scp到node01等
#!/bin/bash cat nodes | while read host do { scp -r $1 $host:$2 }&wait done
3、ssh批处理(需要同级目录下的nodes文件),即下文命令中的ssh.sh
#!/bin/bash cat nodes | while read host do { ssh $host $1 }&wait done