Hadoop集群搭建(三)-克隆虚拟机、安装JDK、Hadoop

一、准备工作

  • 配置好一台hadoop100模板虚拟机
  • JDK1.8
  • Hadoop 3.2.1

模板虚拟机配置:

Hadoop集群搭建-虚拟机创建及CentOS安装

Hadoop集群搭建-网络配置

JDK、Hadoop下载链接:https://share.weiyun.com/bJKx8TFx 密码:xdh2px

二、克隆虚拟机

利用模板虚拟机hadoop100,克隆出三台虚拟机:hadoop102、hadoop103、hadoop104

选择克隆自虚拟机中的当前状态

 创建完整克隆

修改虚拟机名称、位置

等待克隆完成后重复操作、克隆出hadoop103、hadoop104

完成后,进行克隆机的网络配置

修改克隆机的 IP 

hadoop102: 192.168.10.102

hadoop103: 192.168.10.103

hadoop104: 192.168.10.104

分别修改主机名 

三、安装JDK

传输工具使用方法在服务器配置的博客中有,点击连接查看:Linux系统安装JDK

其中远程连接是的服务器外网IP就是自己给虚拟机配置的IP

在hadoop102上安装JDK,这里存放目录为 /opt/software/

opt下新建software目录,将JDK传输到目录中

 在/opt下新建module目录,解压JDK到/opt/module目录下

 配置环境变量,加入如下内容 

source /etc/profile 使配置生效

java -version测试JDK是否安装成功 

看到JDK版本则安装成功

四、安装Hadoop

在hadoop102上安装Hadoop,这里存放的目录为 /opt/software/

将Hadoop传输到目录中

 解压Hadoop到/opt/module目录下 

 等待解压完成,查看是否解压成功

获取Hadoop安装路径

将Hadoop添加到环境变量,在my_evn.sh文件中添加下面的内容

source /etc/profile 使配置生效

hadoop version测试Hadoop是否安装成功 ,看到Hadoop版本则安装成功

        至此,完成了集群中一台虚拟机的环境配置,完成搭建集群的准备工作,只需要将安装好的环境拷贝到剩余两台虚拟机上。

五、拷贝环境

在hadoop102执行 ping hadoop103 / ping hadoop104 

 如果不能ping通,要查看 /etc/hosts 配置是否正确

scp(secure copy)安全拷贝

scp可以实现服务器与服务器之间的数据拷贝(from server1 to server2)

scp    -r        $pdir/$fname             $user@$host:$pdir/$fname
命令   递归     要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称

 确保在hadoop102、hadoop103、hadoop104创建好/opt/module /opt/software两个目录。

①在hadoop102,将hadoop102中/opt/module/jdk1.8.0,65目录拷贝到hadoop104上

第一次链接需要输入 yes,输入密码

拷贝成功 

 ②在hadoop104,将hadoop102中/opt/module/hadoop-3.2.1目录拷贝到hadoop104上

 拷贝成功

③在hadoop104, 将hadoop102中/opt/module目录下所有目录拷贝到hadoop103上

 拷贝成功

rsync远程同步工具 

精简版系统会提示 未找到命令,执行命令 yum install rsync 安装(集群中所有虚拟机都要执行)

rsync 主要用于备份和镜像,具有速度快、避免复制相同内容和支持符号链接的优点。

rsync 和 scp 的区别

  • rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新
  • scp是把所有文件都复制过去

选项参数: -a 归档拷贝    -v 显示复制过程

rsync    -av       $pdir/$fname             $user@$host:$pdir/$fname
命令   选项参数   要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称

如:同步hadoop102中的/opt/module/hadoop-3.2.1到hadoop103 

xsync集群分发脚本

需求:循环复制文件到所有节点的相同目录下

希望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)

在/root/bin 目录下创建xsync文件 

xsync文件内容 

#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
    echo ====================  $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 $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

编辑完后保存,执行命令 chmod +x xsync 修改xsync权限

同步环境变量配置 sudo /bin/xsync /etc/profile.d/my_env.sh

分别在hadoop103、hadoop104上执行 source /etc/profile使环境变量生效


版权声明:本文为weixin_49001740原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。