大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建 原创
点一下关注吧!!!非常感谢!!持续更新!!!
目前已经更新到了:
- Hadoop(正在更新)
章节内容
上一节完成:
- HDFS集群XML的配置
- MapReduce集群XML的配置
- Yarn集群XML的配置
- 统一权限
- DNS统一配置
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。
注意,如果你和我一样,打算用公网部署,那一定要做好防火墙策略,避免不必要的麻烦!!!
请大家都以学习为目的,也请不要对我的服务进行嗅探或者攻击!!!
但是有一台公网服务器我还运行着别的服务,比如前几天发的:autodl-keeper 自己写的小工具,防止AutoDL机器过期的。还跑着别的Web服务,所以只能挤出一台 2C2G 的机器。那我的配置如下了:
- 2C4G 编号 h121
- 2C4G 编号 h122
- 2C2G 编号 h123
请确保上一节内容已经配置完毕
YARN 介绍
YRAN 是一个基于开源架构的容器化平台,主要用于现代企业中的大规模分布式应用部署与管理。该平台集成了多种服务,帮助用户在多云或混合云环境中进行应用的持续集成、交付和扩展。YRAN 提供了自动化的运维工具,通过微服务架构和容器化技术,提升了应用的可伸缩性和可靠性。
核心特点
- 容器管理:YRAN 支持 Docker 和 Kubernetes,能够快速部署和管理应用容器,自动调整资源。
- 自动化部署:通过 DevOps 工具链,YRAN 提供持续集成和持续交付 (CI/CD) 功能,简化了应用的部署和更新流程。
- 多云支持:YRAN 能够兼容多个云平台,包括 AWS、Azure、Google Cloud 等,方便企业灵活选择基础设施。
- 监控与安全:平台内置了强大的监控和告警功能,帮助用户实时掌握系统的运行状态,并且对数据和服务提供完善的安全保障。
- 可扩展性:YRAN 提供模块化设计,可以通过插件扩展功能,适应不同的企业需求。
YRAN 的目标是帮助企业优化 IT 基础架构,提升应用交付效率和运行稳定性。
可扩展性
YRAN 的可扩展性是其核心优势之一,允许企业根据业务需求灵活调整和扩展平台功能,确保系统能够应对不断变化的工作负载和复杂的业务场景。可扩展性体现在多个层面,包括架构、服务、资源以及开发流程。
架构层的可扩展性
YRAN 采用微服务架构,系统各个组件被分解成独立的服务,彼此之间通过 API 进行通信。这种松耦合的设计确保了单个服务的独立升级、扩展和维护,而不会影响其他服务。微服务架构的优势在于:
- 服务独立部署:不同服务可以根据需求水平进行独立的扩展或缩减,不必扩展整个系统。
- 技术栈多样性:不同的服务可以使用不同的编程语言、数据库或框架,实现了技术的灵活性。
- 动态扩展:系统可以根据流量自动水平扩展,新增服务实例以应对增加的工作负载。
资源层的可扩展性
YRAN 支持云原生的自动化资源管理,尤其在使用 Kubernetes 时,平台能够通过水平自动扩展 (HPA) 和垂直自动扩展来优化资源分配:
- 水平扩展 (Horizontal Scaling):通过增加更多的实例(如容器或节点),系统能够处理更多的请求或任务。Kubernetes 自动根据- 负载情况动态创建新的容器来应对流量高峰。
- 垂直扩展 (Vertical Scaling):根据需求调整单个容器或节点的 CPU 和内存资源,确保应用程序在高负载下有足够的计算能力。
Hosts 修改(必须!重要!坑多!)
这里是必须的,不然后续集群之间互通会很麻烦。配置不好的话集群之间会互相不认证。
vim /etc/hosts
由于云服务器会给你配置一些没用的东西,导致后续的集群通信有问题,你需要参考我的配置:
目前我在 h121
节点上,你需要把自己这台的域名映射到 0.0.0.0
。
比如你在h122
节点上,你需要配置成0.0.0.0 h122.wzk.icu
。
此外,其他的你需要注意,尽量不要
绑定127
、localhost
,避免服务无法暴露,统一都到 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.icu
0.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));then
echo 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++)); do
echo ------------------- 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
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)