1、分析1准备3台服务器先配置一台然后克隆两台2安装JDK之前配置过3安装hadoophadoop下载点击此处4配置环境变量vim /etc/profile5配置集群6单点启动7配置ssh8)群起并测试集群2、编写集群分发脚本因为我只在其中一个服务器上安装了hadoop需要将安装好的hadoop分发到另外两个服务器所以这里通过集群分发脚本将hadoop分发到另外两外机器。2.1、scpsecure copy安全拷贝定义scp可以实现服务器与服务器之间的数据拷贝基本语法scp -r $pdir/$fname $user$host:$pdir/$fname命令 递归 要拷贝的文件路径/名称 目的地用户主机:目的地路径/名称# 在160服务器操作将文件从160 拷贝到 161scp -r c/ root192.168.121.161:/opt/software/# 在161服务器操作将文件从160拷贝到161scp -r root192.168.121.161:/opt/software/hadoop-3.1.3 /opt/software/# 在161服务器操作将160的文件拷贝到162scp -r root192.168.121.160:/opt/software/hadoop-3.1.3 root192.168.121.162:/opt/software/2.2、rsync远程同步工具定义rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。rsync和scp区别用rsync做文件的复制要比scp的速度快rsync只对差异文件做更新。scp是把所有文件都复制过去。差异scp全量拷贝rsync增量拷贝基本语法rsync -av $pdir/$fname $user$host:$pdir/$fname命令 选项参数 要拷贝的文件路径/名称 目的地用户主机:目的地路径/名称# 只同步差异化文件将160同步到161rsync -av root192.168.121.160:/opt/software/hadoop-3.1.3/ /opt/software/hadoop-3.1.3/简化脚本好用的同步分发脚本预期目标1、xsync 文件名称 即可实现多个服务器完成同步操作。2、任何路径下都可以实现。下载工具xsyncyum -y install xsync编写脚本#!/bin/bash#1. 判断参数个数if [ $# -lt 1 ]thenecho Not Enough Arguement!exit;fi#2. 遍历集群所有机器for host in 服务器160 服务器161 服务器162doecho $host #3. 遍历所有目录挨个发送for file in $do#4. 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname$(basename $file)ssh $host mkdir -p $pdirrsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fiDonedone将脚本放到/bin目录下mv xsync /bin测试在根目录下创建一个目录110然后执行脚本去其它服务器看是否已完成同步# 建目录mkdir 110# 同步rsync 110同步环境变量# 同步rsync /etc/profile# 生效source /etc/profile# javajava -version# hadoophadoop version3、ssh免密登录配置3.1.无密钥配置# 显示当前目录下的所有文件和目录信息包括隐藏文件ls -al找到.ssh目录进入其中如果没有显示.ssh目录执行下列指令# 通过SSH 协议连接到本机常用于测试 SSH 服务是否正常运行或配置免密码登录等场景。ssh localhost再次执行 ls -al就可以看到.ssh目录了进去之后只有一个文件known_hosts文件。# 生成本机的公钥和私钥ssh-keygen -t rsa执行完上述指令后会多出来两个文件id_rsa和id_rsa.pubid_rsa存放了160的私钥id_rsa.pub存放了160的私钥。# 将公钥id拷贝到要访问的服务器上包括自己ssh-copy-id 服务器160ssh-copy-id 服务器161ssh-copy-id 服务器162另外两个服务器可以做相同的操作这样就可以互相免密访问。包括上述分发文件等操作。备注如果无法解析主机名那么执行下列操作vim etc/hostname文件中加上要访问的服务器id地址加上主机名称即可。192.168.121.160 服务器160 192.168.121.161 服务器161 192.168.121.161 服务器162
【Hadoop01-完全分布式运行模式】
发布时间:2026/6/18 16:29:00
1、分析1准备3台服务器先配置一台然后克隆两台2安装JDK之前配置过3安装hadoophadoop下载点击此处4配置环境变量vim /etc/profile5配置集群6单点启动7配置ssh8)群起并测试集群2、编写集群分发脚本因为我只在其中一个服务器上安装了hadoop需要将安装好的hadoop分发到另外两个服务器所以这里通过集群分发脚本将hadoop分发到另外两外机器。2.1、scpsecure copy安全拷贝定义scp可以实现服务器与服务器之间的数据拷贝基本语法scp -r $pdir/$fname $user$host:$pdir/$fname命令 递归 要拷贝的文件路径/名称 目的地用户主机:目的地路径/名称# 在160服务器操作将文件从160 拷贝到 161scp -r c/ root192.168.121.161:/opt/software/# 在161服务器操作将文件从160拷贝到161scp -r root192.168.121.161:/opt/software/hadoop-3.1.3 /opt/software/# 在161服务器操作将160的文件拷贝到162scp -r root192.168.121.160:/opt/software/hadoop-3.1.3 root192.168.121.162:/opt/software/2.2、rsync远程同步工具定义rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。rsync和scp区别用rsync做文件的复制要比scp的速度快rsync只对差异文件做更新。scp是把所有文件都复制过去。差异scp全量拷贝rsync增量拷贝基本语法rsync -av $pdir/$fname $user$host:$pdir/$fname命令 选项参数 要拷贝的文件路径/名称 目的地用户主机:目的地路径/名称# 只同步差异化文件将160同步到161rsync -av root192.168.121.160:/opt/software/hadoop-3.1.3/ /opt/software/hadoop-3.1.3/简化脚本好用的同步分发脚本预期目标1、xsync 文件名称 即可实现多个服务器完成同步操作。2、任何路径下都可以实现。下载工具xsyncyum -y install xsync编写脚本#!/bin/bash#1. 判断参数个数if [ $# -lt 1 ]thenecho Not Enough Arguement!exit;fi#2. 遍历集群所有机器for host in 服务器160 服务器161 服务器162doecho $host #3. 遍历所有目录挨个发送for file in $do#4. 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname$(basename $file)ssh $host mkdir -p $pdirrsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fiDonedone将脚本放到/bin目录下mv xsync /bin测试在根目录下创建一个目录110然后执行脚本去其它服务器看是否已完成同步# 建目录mkdir 110# 同步rsync 110同步环境变量# 同步rsync /etc/profile# 生效source /etc/profile# javajava -version# hadoophadoop version3、ssh免密登录配置3.1.无密钥配置# 显示当前目录下的所有文件和目录信息包括隐藏文件ls -al找到.ssh目录进入其中如果没有显示.ssh目录执行下列指令# 通过SSH 协议连接到本机常用于测试 SSH 服务是否正常运行或配置免密码登录等场景。ssh localhost再次执行 ls -al就可以看到.ssh目录了进去之后只有一个文件known_hosts文件。# 生成本机的公钥和私钥ssh-keygen -t rsa执行完上述指令后会多出来两个文件id_rsa和id_rsa.pubid_rsa存放了160的私钥id_rsa.pub存放了160的私钥。# 将公钥id拷贝到要访问的服务器上包括自己ssh-copy-id 服务器160ssh-copy-id 服务器161ssh-copy-id 服务器162另外两个服务器可以做相同的操作这样就可以互相免密访问。包括上述分发文件等操作。备注如果无法解析主机名那么执行下列操作vim etc/hostname文件中加上要访问的服务器id地址加上主机名称即可。192.168.121.160 服务器160 192.168.121.161 服务器161 192.168.121.161 服务器162