Molet

Hadoop部署常用的小脚本

Molet 运维技术 2022-11-20 484浏览 0

最近抛弃非ssh连接的Hadoop集群部署方式了,还是回到了用ssh key 验证的方式上了。这里面就有些麻烦,每台机器都要上传公钥。恰恰我又是个很懒的人,所以写几个小脚本完成,只要在一台机器上面就可以做公钥的分发了。

Hadoop部署常用的小脚本

首先是生成ssh key脚本:

#!/bin/sh
ssh-keygen-trsa-P''-f~/.ssh/id_rsa
cp~/.ssh/id_rsa.pub~/.ssh/authorized_keys

ssh-keygen一般来说需要输入passphrase,但是一般都是三个回车过去了,我懒的输入,加上-P ”就不用了。

然后是添加公钥到从节点的脚本:

#!/bin/sh
read-p"输入远端服务器IP:"ip
ssh-copy-id-oStrictHostKeyChecking=no-i~/.ssh/id_rsa.pubroot@$ip
sshroot@$ip'sed-i"s/^#RSAAuthentication\yes/RSAAuthentication\yes/g"/etc/ssh/sshd_config'
sshroot@$ip'sed-i"s/^#PubkeyAuthentication\yes/PubkeyAuthenticationyes/g"/etc/ssh/sshd_config'
sshroot@$ip'sed-i"s/^#PermitRootLogin\yes/PermitRootLogin\yes/g"/etc/ssh/sshd_config'
sshroot@$ip'servicesshdrestart'
hostname=`sshroot@${ip}'hostname'`
echo"添加主机名和IP到本地/etc/hosts文件中"
echo"$ip$hostname">>/etc/hosts
echo"远端主机主机名称为$hostname,请查看/etc/hosts确保该主机名和IP添加到主机列表文件中"
echo"主机公钥复制完成"

然后是第三个脚本读取主机列表然后把/etc/hosts复制到所有主机上:

#!/bin/sh
cat/etc/hosts|whilereadLINE
do
ip=`echo$LINE|awk'{print$1}'|grep-v"::"|grep-v"127.0.0.1"`
echo"Copying/etc/hoststo${ip}"
scp-oStrictHostKeyChecking=no/etc/hostsroot@${ip}:/etc/
done

继续浏览有关 Hadoop 的文章
发表评论