您的位置:首页 > 运维架构 > Shell

在linux下使用shell脚本自动化完成hadoop集群搭建

2017-03-08 00:00 841 查看
学习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

完成
谢谢观看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux Hadoop