11-Linux部署集群准备

Linux部署集群准备

介绍

在前面,我们所学习安装的软件,都是以单机模式运行的。

后续,我们将要学习大数据相关的软件部署,所以后续我们所安装的软件服务,大多数都是以集群化(多台服务器共同工作)模式运行的。

所以,在当前小节,我们需要完成集群化环境的前置准备,包括创建多台虚拟机,配置主机名映射,SSH免密登录等等。

部署

配置多台Linux虚拟机

安装集群化软件,首要条件就是要有多台Linux服务器可用。

我们可以使用VMware提供的克隆功能,将我们的虚拟机额外克隆出3台来使用。

  1. 首先,关机当前CentOS系统虚拟机(可以使用root用户执行init 0来快速关机)

  2. 新建文件夹

    image-20240228102551339

    文件夹起名为:虚拟机集群

  3. 克隆

    image-20240228102747490

    image-20240228102822158

    image-20240228102850924

    image-20240228102908952

    image-20240228103037435

    image-20240228103102163

    image-20240228103118055

    image-20240228103157760

    image-20240228103219384

  4. 同样的操作克隆出:node2和node3

    image-20240228103733798

  5. 开启node1,修改主机名为node1,并修改固定IP为:192.168.149.131

    # 修改主机名
    hostnamectl set-hostname node1# 修改IP地址
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    IPADDR="192.168.149.131"# 重启网卡
    systemctl stop network
    systemctl start network
    # 或者直接
    systemctl restart network
    
  6. 同样的操作启动node2和node3,

    修改node2主机名为node2,设置IP为192.168.149.132

    修改node2主机名为node3,设置IP为192.168.149.133

  7. 配置Xshell,配置连接到node1、node2、node3的连接

    为了简单起见,建议配置root用户登录

    image-20240228121145636

准备主机名映射

  1. 在Windows系统中修改hosts文件,填入如下内容:

    如果使用MacOS系统,请:

    1. sudo su -,切换到root
    2. 修改/etc/hosts文件
    192.168.149.131 node1
    192.168.149.132 node2
    192.168.149.133 node3
    
  2. 在3台Linux的/etc/hosts文件中,填入如下内容(3台都要添加

    192.168.149.131 node1
    192.168.149.132 node2
    192.168.149.133 node3
    

配置SSH免密登录

简介

SSH服务是一种用于远程登录的安全认证协议。

使用Xshell远程连接到Linux,就是使用的SSH服务。

SSH服务支持:

  1. 通过账户+密码的认证方式来做用户认证
  2. 通过账户+秘钥文件的方式做用户认证

SSH可以让我们通过SSH命令,远程的登陆到其它的主机上,比如:

在node1执行:ssh root@node2,将以root用户登录node2服务器,输入密码即可成功登陆

或者ssh node2,将以当前用户直接登陆到node2服务器。

SSH免密配置

后续安装的集群化软件,多数需要远程登录以及远程执行命令,我们可以简单起见,配置三台Linux服务器之间的免密码互相SSH登陆

  1. 在每一台机器都执行:ssh-keygen -t rsa -b 4096,一路回车到底即可

    示例输出

    [root@node1 ~]# ssh-keygen -t rsa -b 4096
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:aLNaRbRGpAagFBjBeX6K1y3ceZRnHZrvik6h20Wsuj0 root@node1
    The key's randomart image is:
    +---[RSA 4096]----+
    |==+..  .+        |
    |o+ . . + .   .   |
    |. o   o + . + .  |
    |   . o + o.= .   |
    |  . = * S.oo.    |
    | . o = B..+  .   |
    |  .   +..o ..    |
    |     o  *Eo  .   |
    |    .  +o=...    |
    +----[SHA256]-----+
    [root@node1 ~]# 
  2. 在每一台机器都执行:

    ssh-copy-id node1
    ssh-copy-id node2
    ssh-copy-id node3
    

    示例输出

    [root@node1 ~]# ssh-copy-id node1
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    The authenticity of host 'node1 (192.168.149.131)' can't be established.
    ECDSA key fingerprint is SHA256:UJULWpe9PpdjrmEBO/1SQMmmfkvmuDBVZ2QCGz+8Il0.
    ECDSA key fingerprint is MD5:82:4f:8d:bd:f5:ca:8d:ba:99:dd:65:08:2a:a5:50:92.
    Are you sure you want to continue connecting (yes/no)? 
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    The authenticity of host 'node1 (192.168.149.131)' can't be established.
    ECDSA key fingerprint is SHA256:UJULWpe9PpdjrmEBO/1SQMmmfkvmuDBVZ2QCGz+8Il0.
    ECDSA key fingerprint is MD5:82:4f:8d:bd:f5:ca:8d:ba:99:dd:65:08:2a:a5:50:92.
    Are you sure you want to continue connecting (yes/no)? /usr/bin/ssh-copy-id: ERROR: Host key verification failed.[root@node1 ~]# ssh-copy-id node1
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    The authenticity of host 'node1 (192.168.149.131)' can't be established.
    ECDSA key fingerprint is SHA256:UJULWpe9PpdjrmEBO/1SQMmmfkvmuDBVZ2QCGz+8Il0.
    ECDSA key fingerprint is MD5:82:4f:8d:bd:f5:ca:8d:ba:99:dd:65:08:2a:a5:50:92.
    Are you sure you want to continue connecting (yes/no)? yes
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@node1's password: 
    Permission denied, please try again.
    root@node1's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'node1'"
    and check to make sure that only the key(s) you wanted were added.[root@node1 ~]# ssh-copy-id node2
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@node2's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'node2'"
    and check to make sure that only the key(s) you wanted were added.[root@node1 ~]# ssh-copy-id node3
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    The authenticity of host 'node3 (192.168.149.133)' can't be established.
    ECDSA key fingerprint is SHA256:UJULWpe9PpdjrmEBO/1SQMmmfkvmuDBVZ2QCGz+8Il0.
    ECDSA key fingerprint is MD5:82:4f:8d:bd:f5:ca:8d:ba:99:dd:65:08:2a:a5:50:92.
    Are you sure you want to continue connecting (yes/no)? yes
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@node3's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'node3'"
    and check to make sure that only the key(s) you wanted were added.
  3. 执行完毕后,node1、node2、node3之间将完成root用户之间的免密互通

    [root@node1 ~]# ssh node3
    Last login: Wed Feb 28 12:10:09 2024 from 192.168.149.1
    [root@node3 ~]# exit
    登出
    Connection to node3 closed.
    [root@node1 ~]# ssh node2
    Last login: Wed Feb 28 12:18:11 2024 from node1
    [root@node2 ~]# exit
    登出
    Connection to node2 closed.
    [root@node1 ~]# 
    

配置JDK环境

后续的大数据集群软件,多数是需要Java运行环境的,所以我们为每一台机器都配置JDK环境。

image-20240228124155045

JDK配置参阅:Tomcat安装部署环节。

参考文章

06-Linux部署Tomcat:http://t.csdnimg.cn/VmRq6

关闭防火墙和SELinux

集群化软件之间需要通过端口互相通讯,为了避免出现网络不通的问题,我们可以简单的在集群内部关闭防火墙。

在每一台机器都执行

systemctl stop firewalld
systemctl disable firewalld

image-20240228124118527

Linux有一个安全模块:SELinux,用以限制用户和程序的相关权限,来确保系统的安全稳定。

SELinux的配置同防火墙一样,非常复杂,课程中不多涉及,后续视情况可以出一章SELinux的配置课程。

在当前,我们只需要关闭SELinux功能,避免导致后面的软件运行出现问题即可,

在每一台机器都执行

vim /etc/sysconfig/selinux# 将第7行,SELINUX=enforcing 改为
SELINUX=disabled
# 保存退出后,重启虚拟机即可,千万要注意disabled单词不要写错,不然无法启动系统

image-20240228124339196

添加快照

为了避免后续出现问题,在完成上述设置后关机(只有关机后的快照才能被克隆,不关机设置的快照只能还原),为每一台虚拟机都制作快照,留待使用。

image-20240228125205656

补充命令 - scp

后续的安装部署操作,我们将会频繁的在多台服务器之间相互传输数据。

为了更加方面的互相传输,我们补充一个命令:scp

scp命令是cp命令的升级版,即:ssh cp,通过SSH协议完成文件的复制。

其主要的功能就是:在不同的Linux服务器之间,通过SSH协议互相传输文件。

只要知晓服务器的账户和密码(或密钥),即可通过SCP互传文件。

语法:

scp [-r] 参数1 参数2
- -r选项用于复制文件夹使用,如果复制文件夹,必须使用-r
- 参数1:本机路径 或 远程目标路径
- 参数2:远程目标路径 或 本机路径

示例

  • 将本机上的jdk文件夹, 以root的身份复制到node2的/export/server/内,同SSH登陆一样,账户名可以省略(使用本机当前的同名账户登陆)
scp -r /export/server/jdk root@node2:/export/server/
  • 将远程node2的jdk文件夹,复制到本机的/export/server/
scp -r node2:/export/server/jdk /export/server/
  • scp命令的高级用法
cd /export/server
# 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下
scp -r jdk node2:`pwd`/# 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下
scp -r jdk node2:$PWD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/711522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习实战1】泰坦尼克号:灾难中的机器学习(一)数据预处理

🌸博主主页:釉色清风🌸文章专栏:机器学习实战🌸今日语录:不要一直责怪过去的自己,她曾经站在雾里也很迷茫。 🌼实战项目简介 本次项目是kaggle上的一个入门比赛 :Titani…

锚索测力计数据处理与分析:MCU自动测量单元的应用

锚索测力计作为一种重要的工程监测工具,在桥梁、大坝、隧道等结构物的健康监测中发挥着日益重要的作用。如何高效、准确地处理和分析,锚索测力计所获取的数据成为了工程师们面临的重要问题。近年来,随着微控制器(MCU)技术的快速发展&#xff…

51-n皇后(回溯算法)

题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一…

前端开发项目必备神器之node工具整理

前言: 在我们开发项目中,node是我们必备的工具,在为了适应各种不同的开发需求的同时,node也有很多好用的插件提供给我们,这里整理个人的使用分享给大家! 一、node相关 1、node官方网站,可以安装…

模拟算法题练习(二)(DNA序列修正、无尽的石头)

(一、DNA序列修正) 问题描述 在生物学中,DNA序列的相似性常被用来研究物种间的亲缘关系。现在我们有两条 DNA序列,每条序列由 A、C、G、T 四种字符组成,长度相同。但是现在我们记录的 DNA序列存在错误,为了…

ubuntu基础操作(1)-个人笔记

搜狗输入法Linux官网-首页搜狗输入法for linux—支持全拼、简拼、模糊音、云输入、皮肤、中英混输https://pinyin.sogou.com/linux 1.关闭sudo密码: 终端(ctrl alt t)输入 sudo visudo 打开visudo 找到 %sudo ALL(ALL:ALL) ALL 这一行…

羊大师分享,羊奶奶有哪些对健康有益的喝法?

羊大师分享,羊奶奶有哪些对健康有益的喝法? 羊奶奶有多种对健康有益的喝法,以下是一些建议: 直接饮用:将羊奶直接煮沸后饮用,可以保留羊奶中的营养成分,为身体提供全面的滋养。羊奶的丰富蛋白质…

代码随想录算法训练营第二十八天补|93.复原IP地址 ● 78.子集 ● 90.子集II

组合问题:集合内元素的组合,不同集合内元素的组合 分割问题:本质还是组合问题,注意一下如何分割字符串 回溯模板伪代码 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素&#xf…

【六袆 - MySQL】MySQL 5.5及更高版本中,InnoDB是新表的默认存储引擎;

InnoDB 这是一个MySQL组件,结合了高性能和事务处理能力,以确保可靠性、健壮性和并发访问。它体现了ACID设计哲学。它作为一个存储引擎存在,处理使用ENGINEINNODB子句创建的或修改的表。请参阅第14章“InnoDB存储引擎”以获取有关架构细节和管…

【解决】虚幻导入FBX模型不是一个整体

问题: 现在有一个汽车的fbx模型,导入虚幻引擎,导入后变成了很多汽车零件模型。 解决: 把“合并网格体”勾选上,解决问题。

Unity 佳能SDK 及数据获取

1. 填写信息跟官方申请SDK,大概1-2个工作日会邮件回复你 佳能(中国)- 佳定制(佳能影像产品),SDK,EDSDK,CCAPI,软件开发包下载 2. 将SDK这两个文件放到 Unity Plugins文件夹 3. 把CameraControl 下面只要是绿色的 .cs 文件都复制到Unity 中

ElasticSearch搜索引擎使用指南

一、ES数据基础类型 1、数据类型 字符串 主要包括: text和keyword两种类型,keyword代表精确值不会参与分词,text类型的字符串会参与分词处理 数值 包括: long, integer, short, byte, double, float 布尔值 boolean 时间 date 数组 数组类型不…

基于ssm学生公寓管理系统的设计与开发论文

学生公寓管理系统的设计与实现 摘要 如今,科学技术的力量越来越强大,通过结合较为成熟的计算机技术,促进了学校、医疗、商城等许多行业领域的发展。为了顺应时代的变化,各行业结合互联网、人工智能等技术,纷纷开展了…

P1160 队列安排题解

题目 一个学校里老师要将班上N个同学排成一列,同学被编号为1∼N,他采取如下的方法: 先将1号同学安排进队列,这时队列中只有他一个人; 2∼N号同学依次入列,编号为i的同学入列方式为:老师指定编…

下载huggingface数据集到本地并读取.arrow文件遇到的问题

文章目录 1. 524MB中文维基百科语料(需要下载的数据集)2. 下载 hugging face 网站上的数据集3. 读取 .arrow 文件报错代码4. 纠正后代码 1. 524MB中文维基百科语料(需要下载的数据集) 2. 下载 hugging face 网站上的数据集 要将H…

MATLAB环境下一种新颖的类脉冲信号的高分辨率时频分析方法

一般情况下,机械振动信号或地震信号是非平稳的。而传统傅立叶变换只能应用于平稳信号分析,故不适用于非平稳信号。所以,我们需要采用时频分析方法。时频分析方法能达到同时在时间域和频率域对信号进行分析的目的,得到信号在不同时…

Python爬取网站视频资源

思路: 在界面找到视频对应的html元素位置,观察发现视频的url为https://www.pearvideo.com/video_视频的id,而这个id在html中的href中,所以第一步需要通过xpath捕获到所需要的id 在https://www.pearvideo.com/video_id的页面&…

线程池学习

github看到一个项目(GitHub - markparticle/WebServer: C Linux WebServer服务器),内部使用的一个线程池看着不错,拿来学习一下。 /** Author : mark* Date : 2020-06-15* copyleft Apache 2.0*/ #ifndef THREADPO…

Windows系统搭建VisualSVN并结合内网穿透实现远程访问本地服务

文章目录 前言1. VisualSVN安装与配置2. VisualSVN Server管理界面配置3. 安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4. 固定公网地址访问 前言 SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统…

Spring 事务常见错误(上)

通过上一章的学习,我们了解了 Spring Data 操作数据库的一些常见问题。这一章我们聊一聊数据库操作中的一个非常重要的话题——事务管理。 Spring 事务管理包含两种配置方式,第一种是使用 XML 进行模糊匹配,绑定事务管理;第二种是…