学习hadoop时,发现如果在linux下搭建集群,一个一个的去配置,会感觉很累。所以写了一个自动话搭建集群的shell脚本 我使用的文件: jdk-7u75-linux-x64.gz; hadoop.tar.gz; 以及一个解压hadoop后,需要配置的文件的tar包 1.tar
实现思路: 首先只配置主节点的环境变量和域名映射(/etc/profile和/etc/hosts) 然后看下面shell脚本:
#!/bin/bash
tar -zxvf /root/jdk-7u75-linux-x64.gz; #解压jdk-7u75-linux-x64.gz
tar -zxvf /root/hadoop.tar.gz; #解压 hadoop.tar.gz
mv /root/hadoop-2.6.4/ /root/hadoop/; #改名hadoop-2.6.4
mv /root/jdk1.7.0_75/ /root/jdk/; ##改名jdk1.7.0_75
tar -xvf /root/1.tar; #解压1.tar
cd /root/1;
mv -f * /root/hadoop/etc/hadoop/; #移动到1目录 将里面所有文件一动道/hadoop/etc/hadoop下
写完之后,写自动化脚本,实现功能:自动配置ssh免密码登陆,自动复制上面三个文件和主节点的配置文件以及上面写的shell脚本到不同的节点上,在各个节点运行上面的shell脚本。代码如下:
#!/bin/bash
SERVERS="mini0 mini1 mini2" #改成你自己写的主机映射名
give_key(){
expect <<!
spawn ssh-copy-id $1
expect "*yes/no*" {send "yes\r";exp_continue}
expect "*password*" {send "root123\r";exp_continue}
!
}
for server in $SERVERS
do
give_key $server
scp /root/1.tar root@$server:/root/
scp /root/hadoop.tar.gz root@$server:/root/
scp /root/jdk-7u75-linux-x64.gz root@$server:/root/
scp /etc/profile root@$server:/etc/profile
scp /root/peizhi.sh root@$server:/root/
scp /etc/hosts root@server:/etc/hosts
ssh root@$server sh /root/peizhi.sh
done
完成 谢谢观看