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: 1
    
    Now 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: 1
    
    Now 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: 1
    
    Now 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

喜报|迪捷软件入选工信部“2023年信息技术应用创新解决方案”

为进一步推进信创生态建设,激发产业自主创新活力,高效促进供需协同发展,加强区域联动和资源整合,国家工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)联合相关单位,遴选了一批可复…

系统工程师面试问题,腾讯安卓开发面试

阿里面试需注意 1、面试前要做好充分的准备,一方面要尽可能多的搜集资料,对用人单位的历史、现状、规模、业务、产品、服务等方面要有所了解,掌握用人单位对人才的需求与使用情况;另一方面,要对照自己的实际情况&…

深入理解nginx的https alpn机制

目录 1. 概述2. alpn协议的简要理解2.1 ssl的握手过程2.2 通过抓包看一下alpn的细节3. nginx源码分析3.1 给ssl上下文设置alpn回调3.2 连接初始化3.3 处理alpn协议回调3.4 握手完成,启用http协议4.4 总结阅读姊妹篇:深入理解nginx的https alpn机制 1. 概述 应用层协议协商(…

LabVIEW非接触式电阻抗层析成像系统

LabVIEW非接触式电阻抗层析成像系统 非接触式电阻抗层析成像(NEIT)技术以其无辐射、非接触、响应速度快的特点,为实时监测提供了新的解决方案。基于LabVIEW的电阻抗层析成像系统,实现了数据的在线采集及实时成像,提高…

javaweb学习(day05-TomCat)

一、介绍 1 官方文档 地址: https://tomcat.apache.org/tomcat-8.0-doc/ 2 WEB 开发介绍 2.1 WEB 在英语中 web 表示网/网络资源(页面,图片,css,js)意思,它用于表示 WEB 服务器(主机)供浏览器访问的资源 2.2 Web 资源 WEB 服务器 ( 主机 ) 上供外界访问的 …

CAPL编程学习笔记--关于on 事件的详细解释

CAPL编程是比较有特色的一种面向通讯的编程语言。 1:on XXX类型(即事件类型) 维克多的官方文档对CAPL的描述是一门类C语言,说白了它也是用C写出来的。我们看on(注意都是小写)事件的代码结构 on * { }&…

Docker技术概论(2):Docker环境的搭建

Docker技术概论(2) Docker环境的搭建 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blo…

【Javascript编程实操03】1、根据数字显示对应的星期2、输入月份,显示当月的天数

前言 1、根据数字显示对应的星期 代码: 实现效果: 2、输入月份,显示当月的天数 原理: 代码: 实现效果: 总结 前言 本次主要是针对Javascript阶段的switch的实操练习,共有2个实操。 1、…

BioTech - 大分子药物设计 概述

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/136302202 大分子药物设计领域主要包括3个方面,即大环类药物设计、蛋白质与多肽类药物设计、核酸药物设计等,具体如下&…

磁盘分区配置开机自动挂载

客户提供的服务器 有1TB的磁盘需要手动挂载 首先查看一下磁盘设备 lsblk 可以看到vdb是新添加的磁盘 然后使用fdisk /dev/vdb 进行磁盘分区 新添加的磁盘只需要分一个区默认全部回车即可 然后使用lsblk查看一下磁盘设备 做好磁盘分区后需要做文件系统格式化 mkfs.ext4 /dev/vd…

SINAMICS V90 PN 指导手册 第5章 调试说明、调试 Jog、EPOS、速度调试

前几章介绍了V90 PN 系统的产品功能、技术数据、安装以及连接,从本章开始,重点介绍V90 PN的应用指导,本章介绍的主要内容是调试,包括调试说明、Jog模式下调试、基本定位器模式下(EPOS)调试以及速度模式(S)下调试。 调试说明 悬挂…

Window部署Jaeger

参考:windows安装使用jaeger链路追踪_windows安装jaeger-CSDN博客 下载:Releases jaegertracing/jaeger GitHub Jaeger – Download Jaeger 目录 1、安装nssm 2、安装运行 elasticsearch 3、安装运行 3.1部署JaegerAgent 3.2部署JaegerCollec…

Opencv实战(5)平滑处理与常见函数

平滑处理 Opencv实战: Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 文章目录 平滑处理1.均值滤波2.方框滤波3.高斯滤波4.中值滤波5.双边滤波 常见函数(1).createTrackbar()(2).SetMouseCallback() 图像的平滑处理是…

备战蓝桥杯---线段树基础1

引入:RMQ问题: 什么是RMQ? 显然,我们无法用前缀维护,因此,我们需要用到线段树的知识: 什么是线段树? 线段树是用一种树状结构存储一个连续区间信息的数据结构 下面我们用图解释用…

ARM简介

ARM:ARM是Advanced RISC Machine的缩写,意为高级精简指令集计算机。 英国ARM公司,2016年被软银创始人孙正义斥资320亿美元收购了。现在是软银旗下的芯片设计公司,总部位于英国剑桥,专注于设计芯片,卖芯片生…

两台电脑异地怎么共享文件?

在现代社会中,无论是个人用户还是企事业单位,都经常面临着跨地域的文件共享需求。由于各种限制和条件的限制,如网络环境、设备限制等,可能导致文件共享变得非常困难。本文将介绍一款名为【天联】的组网产品,通过它可以…

非阻塞实现高效键盘扫描功能(STM32F4XX)

目录 概述 1 原理分析 1.1 技术背景 1.2 系统硬件 1.3 STM32 IO(输入模式)寄存器分析 1.3.1 输入IO的功能描述 1.3.2 输入配置 1.3.3 GPIO 寄存器(输入模式相关) 1.3.3.1 GPIO 端口模式寄存器 1.3.3.2 GPIO 端口上拉/下拉…

数字后端——DEF文件格式

文章目录 MACRO的不同orientationDEF中在macro orientation定义前需要留空格 MACRO的不同orientation DEF中在macro orientation定义前需要留空格 像下图中这种方向和分号之间没有空格的情况,就是有问题的格式。

构建一个基于Node.js的文件存储服务

随着现代web应用程序变得越来越复杂和功能强大,文件存储服务成为了许多应用的重要组成部分。在本篇博客中,我们将探讨如何构建一个基于Node.js的文件存储服务,让您可以轻松地上传、下载和管理文件。我们将利用Node.js的强大功能和模块来构建这…

苍穹外卖知识点总结(一)

简介 技术选型 展示项目中使用到的技术框架和中间件。 用户层:node.js Vue.js ElementUI 微信小程序 apache echarts 网关层:nginx 应用层:Spring Boot Spring MVC Spring Task httpclie…