hadoop搭建记录02:集群配置

371 阅读1分钟

1.集群分发脚本 xsync

rsync命令

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

rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。

scp 是把所有文件都复制过去。

1)基本语法 rsync -av pdir/pdir/fname user@user@host:pdir/pdir/fname

目的地用户@主机:目的地路径/名称

选项参数说明

  • -a 归档拷贝
  • -v 显示复制过程

编写自己的脚本xsync

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

vim /bin/xsync

#!/bin/bash

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

#2. 遍历集群所有机器(因为每个机器都配置过域名映射了,故直接写hadoop102...)
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

修改脚本 xsync 具有执行权限

chmod 777 xsync

2. SSH 无密登录配置

以下操作在3台服务器都要执行

## 一路回车即可,生成秘钥在 ~/.ssh目录下
ssh-keygen -t rsa 

将公钥拷贝到要免密登录的目标机器上

ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104

3.利用分发脚本安装jdk和hadoop

在hadoop102上执行

## 首先分发脚本,让每台服务器都可以执行xsync
xsync /bin/xsync

## 分发jdk和xsync
xsync /opt/module

## 分发环境配置文件
xsync /etc/profile.d/my_env.sh

最后在每台服务器上执行 source /etc/profile