在CentOS中配置三个节点之间相互SSH免密登陆

在CentOS中配置三个节点(假设分别为node1、node2、node3)两两之间相互SSH免密登陆,可以按照以下步骤进行:

一、生成密钥对

  1. 在所有节点上生成密钥对
    在每个节点(node1、node2、node3)上执行以下命令来生成SSH密钥对。通常使用RSA算法,但也可以根据需要选择其他算法。
    ssh-keygen -t rsa
    
    按提示操作,通常可以一路回车选择默认选项。这将在~/.ssh/目录下生成私钥(id_rsa)和公钥(id_rsa.pub)。

二、分发公钥

  1. 将每个节点的公钥分发到其他节点
    使用ssh-copy-id命令或scp命令将每个节点的公钥复制到其他节点的~/.ssh/authorized_keys文件中。这样,每个节点都会存储所有节点的公钥,从而允许无密码登录。

    • 在node1上,将公钥复制到node2和node3:

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

      或者,如果使用scp(虽然这不是最直接的方法,但可以

### 使用Docker部署和配置Hadoop集群 #### 创建并准备基础环境 为了使用 Docker 部署 Hadoop 集群,首先需要安装 Docker 并确保其正常运行。接着可以基于官方 CentOS 或 Ubuntu 镜像来创建一个新的镜像,在其安装必要的软件包以及 Hadoop。 ```bash sudo yum install -y java-openjdk-devel hadoop ``` 上述命令用于在基于 Red Hat 的系统上安装 Java 和 Hadoop[^1]。 #### 构建自定义的 Hadoop Docker 镜像 通过编写 `Dockerfile` 来定制化所需的操作系统环境: ```dockerfile FROM centos:7 MAINTAINER your_email@example.com RUN yum update -y && \ yum install -y java-1.8.0-openjdk wget tar gzip && \ wget https://archive.apache.org/dist/hadoop/core/hadoop-3.2.1/hadoop-3.2.1.tar.gz && \ tar -xzvf hadoop-3.2.1.tar.gz -C /usr/local/ && \ ln -s /usr/local/hadoop-3.2.1 /usr/local/hadoop && \ echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0' >> ~/.bashrc && \ echo 'export PATH=$PATH:$JAVA_HOME/bin:/usr/local/hadoop/bin' >> ~/.bashrc WORKDIR /usr/local/hadoop CMD ["bash"] ``` 这段脚本会拉取CentOS 7的基础镜像,并在其之上安装OpenJDK与指定版本的Hadoop。 #### 启动多个容器模拟多台机器组成的集群 利用 Docker Compose 可简化此过程,编辑 `docker-compose.yml` 文件如下所示: ```yaml version: '3' services: master: build: . container_name: master hostname: master environment: SERVICE_NAME: master networks: hadoopnet: ipv4_address: 192.168.0.2 slave1: build: . container_name: slave1 hostname: slave1 depends_on: - master environment: SERVICE_NAME: slave1 networks: hadoopnet: ipv4_address: 192.168.0.3 slave2: build: . container_name: slave2 hostname: slave2 depends_on: - master environment: SERVICE_NAME: slave2 networks: hadoopnet: ipv4_address: 192.168.0.4 networks: hadoopnet: driver: bridge ipam: config: - subnet: 192.168.0.0/24 ``` 该文件描述了一个由三个服务构成的服务网络——一个作为 NameNode 节点 (`master`) 和两个 DataNodes(`slave1`, `slave2`). 定义静态 IP 地址有助于后续配置 SSH 码登录和其他设置[^2]. #### 设置SSH码访问 进入 Master 容器内部生成公钥私钥对,并将其分发给所有 Slave 节点以便实现无需输入码即可相互连接的功能. ```bash ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys for node in $(seq 1 2); do ssh-copy-id root@slave${node}; done; ``` 这些指令会在当前用户的家目录下生成一对新的 RSA 钥,并允许其他节点上的相同用户登陆到这台主机上. #### 修改核心配置文件 针对 `/etc/hadoop/*-site.xml` 这些 XML 格式的配置文档做出相应调整以适应分布式计算的需求;比如设定 fs.defaultFS 参数指向 Namenode 所处位置等操作均在此阶段完成。 #### 初始化并启动整个集群 最后一步就是初始化 namenode 上的数据存储结构并通过 start-dfs.sh 和 start-yarn.sh 命令分别开启 DFS (分布文件系统) 和 YARN (资源管理框架). ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小王꧔ꦿ

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值