当前位置: 首页> 文旅> 文化 > Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT

时间:2025/8/13 10:45:58来源:https://blog.csdn.net/w776341482/article/details/140076566 浏览次数:0次

章节内容

上一节完成:

  • HDFS集群XML的配置
  • MapReduce集群XML的配置
  • Yarn集群XML的配置
  • 统一权限
  • DNS统一配置

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。

注意,如果你和我一样,打算用公网部署,那一定要做好防火墙策略,避免不必要的麻烦!!!
请大家都以学习为目的,也请不要对我的服务进行嗅探或者攻击!!!

但是有一台公网服务器我还运行着别的服务,比如前几天发的:autodl-keeper 自己写的小工具,防止AutoDL机器过期的。还跑着别的Web服务,所以只能挤出一台 2C2G 的机器。那我的配置如下了:

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

在这里插入图片描述
请确保上一节内容已经配置完毕

Hosts 修改(必须!重要!坑多!)

这里是必须的,不然后续集群之间互通会很麻烦。配置不好的话集群之间会互相不认证。

vim /etc/hosts

由于云服务器会给你配置一些没用的东西,导致后续的集群通信有问题,你需要参考我的配置:
目前我在 h121 节点上,你需要把自己这台的域名映射到 0.0.0.0
比如你在h122节点上,你需要配置成0.0.0.0 h122.wzk.icu
此外,其他的你需要注意,尽量不要绑定127localhost,避免服务无法暴露,统一都到 0.0.0.0 !!!
下面的配置供你参考!

h121机器

0.0.0.0  h121.wzk.icu
101.35.209.96 h122.wzk.icu
124.223.26.81 h123.wzk.icu# The following lines are desirable for IPv6 capable hosts
# :::1  ip6-localhost   ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
#127.0.1.1      localhost
# 127.0.1.1     hecs-393573     hecs-393573
0.0.0.0 hecs-393573     hecs-393573

配置结果如下:
在这里插入图片描述

h122机器

0.0.0.0 h122.wzk.icu
114.115.221.144 h121.wzk.icu
124.223.26.81 h123.wzk.icu#127.0.1.1 localhost.localdomain VM-12-12-ubuntu
#127.0.0.1 localhost
0.0.0.0 localhost.localdomain VM-12-12-ubuntu#::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

配置结果如下:
在这里插入图片描述

h123机器

0.0.0.0 h123.wzk.icu
114.115.221.144 h121.wzk.icu
101.35.209.96 h122.wzk.icu0.0.0.0 localhost.localdomain VM-4-5-ubuntu
#127.0.0.1 localhost# ::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

在这里插入图片描述

开启ROOT

如果你的账户不是ROOT,那你需要过一下这章节。
如果你是ROOT,那请略过!!!

ROOT密码

sudo passwd root

输入密码,两次确认。

开启SSH

sudo vim /etc/ssh/sshd_config

编辑如下内容,请确保都有:

PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin yes

退出保存,重启SSH服务

sudo systemctl restart ssh

SSH Key

生成SSH秘钥

# 121机器上
ssh-keygen -t rsa -b 4096 -C "h121.wzk.icu"
# 122机器上
ssh-keygen -t rsa -b 4096 -C "h122.wzk.icu"
# 123机器上
ssh-keygen -t rsa -b 4096 -C "h123.wzk.icu"

一路回车就可以,什么都不需要设置。
在这里插入图片描述

免密登录

配置免密

需要在三台机器上,都执行一次如下的命令。

ssh-copy-id root@h121.wzk.icu
ssh-copy-id root@h122.wzk.icu
ssh-copy-id root@h123.wzk.icu

此时会要求你输入登录机器的密码,输入即可。

测试免密

ssh h122.wzk.icu

如果是可以正常登录,那表示你已经成功配置,恭喜你!
在这里插入图片描述

查看免密

所有免密的 Key 都会放在这里:

 ~/.ssh/authorized_keys

移除免密

对当中的内容编辑即可,删除对应的,免密就会失效。

vim  ~/.ssh/authorized_keys

分发脚本

安装工具

这里选择使用 rsync

sudo apt install rsync

编写脚本

/usr/local/bin 下的命令 可以全局执行

cd /usr/local/bin
sudo vim rsync-script

写入如下内容,你可能需要稍稍做一些修改,修改成你的,仅供参考:

#!/bin/bash
#1 获取命令输入参数的个数,如果个数为0,直接退出命令
paramnum=$#
if((paramnum==0));thenecho no params;exit;
fi
#2 根据传入参数获取文件名称
p1=$1
file_name=`basename $p1`
echo fname=$file_name
#3 获取输入参数的绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取用户名称
user=`whoami`
#5 循环执行rsync
for((host=121; host<124; host++)); doecho ------------------- h$host.wzk.icu --------------rsync -rvl $pdir/$file_name $user@h$host.wzk.icu:$pdir
done

执行权限

sudo chmod 777 rsync-script

在这里插入图片描述

测试脚本

写了一个文本文件,测试脚本是否正常。

1.txt
helloworld!

在这里插入图片描述
执行脚本:

rsync-script /opt/wzk

在这里插入图片描述

关键字:Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: