阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用expect命令实现远程管理集群和一键安装Hadoop集群

219次阅读
没有评论

共计 1684 个字符,预计需要花费 5 分钟才能阅读完成。

expect 命令通过预测远程终端将要显示的提示字符串,自动输入密码或其他用户指定的字符串,实现自动化安装。有关 expect 命令的使用方法请见:

shell 脚本学习之 expect 命令  http://www.linuxidc.com/Linux/2014-02/96262.htm

有关实现 Hadoop 集群一键安装的步骤,首先写好需要分发到集群每台机器上运行的脚本,然后保证你的管理结点已安装 tcl、expect、JDK、Hadoop 安装包、hosts 文件、profile 文件、authorized_keys。

将集群的机器列表写到一个文件中,其中要包括 IP 地址、域名、root 用户密码、Hadoop 管理账户名、Hadoop 管理账户密码。

将需要运行的 shell 脚本 scp 到需要安装 Hadoop 的机器上,过程中需要使用 expect。之后再使用 ssh 执行远程机器上的 shell 脚本。所有的 expect 语句都写在一个 exp 文件中,通过给每个命令 set 一个 type 来区分执行的是哪个命令。

安装配置 Hadoop 集群的步骤这里就不细讲,主要说一下如何使用 expect 命令实现自动化安装。例如在集群的每台机器上新建一个用户,你可以这么做:

在管理结点上有脚本 run.sh

#!/bin/bash
host_ip=192.168.71.202
pwd_root=iflytek
pwd_jcsong=iflytek
echo “Start create user jcosng…”
expect ./login.exp $host_ip root $pwd_root jcsong $pwd_jcsong

脚本 login.exp

#!/usr/bin/expect -f
set timeout 300
set ip_addr [lindex $argv 0]
set user [lindex $argv 1]
set passwd [lindex $argv 2]
set newuser [lindex $argv 3]
set newpwd [lindex $argv 4]
spawn ssh “$user@$ip_addr” bash “/home/adduser.sh $newuser”
expect “Enter new UNIX password:”
send  “$newpwd\r”
sleep 1
expect “Retype new UNIX password:”
send  “$newpwd\r”
sleep 1
for {set i 0} {$i<5} {incr i} {
        expect “:”
        send “\r”
        sleep 1
}

puts “\r”
send “\r”
expect “n]”
send  “Y\r”

为了演示的方便,这里的所有参数大部分都是直接写到脚本里的,其实这些参数应该从一个集群列表中读取。在安装之前首先要 scp 安装脚本到集群的每台机器中去,其他步骤也大致如此。

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计1684字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中