完全分布式部署hadoop

本文详细介绍了如何在3台虚拟机上完全分布式部署Hadoop,包括虚拟机准备、主机名设置、SSH无密码登录、rsync使用、集群分发脚本编写以及集群启动与测试。此外,还讲解了集群时间同步的配置方法和部署过程中常见的问题及解决方案。
摘要由CSDN通过智能技术生成

3.3 完全分布式部署Hadoop

分析:

       1)准备3台客户机(关闭防火墙、静态ip、主机名称

       2)安装jdk

       3)配置环境变量

       4)安装hadoop

       5)配置环境变量

       6)安装ssh

       7)配置集群

       8)启动测试集群

3.3.1 虚拟机准备

详见2.2-2.3章。

3.3.2 主机名设置

详见2.4章。

3.3.3 scp

1)scp可以实现服务器与服务器之间的数据拷贝

2)案例实操

(1)将hadoop101中/opt/module和/opt/software文件拷贝到hadoop102、hadoop103和hadoop104上。

[root@hadoop101/]# scp -r /opt/module/  root@hadoop102:/opt

[root@hadoop101/]# scp -r /opt/software/  root@hadoop102:/opt

[root@hadoop101/]# scp -r /opt/module/  root@hadoop103:/opt

[root@hadoop101/]# scp -r /opt/software/  root@hadoop103:/opt

[root@hadoop101/]# scp -r /opt/module/  root@hadoop104:/opt

[root@hadoop101/]# scp -r /opt/software/  root@hadoop105:/opt

(2)将192.168.1.102服务器上的文件拷贝到当前用户下。

[root@hadoop101opt]# scp  root@hadoop102:/etc/profile  /opt/tmp/

       (3)实现两台远程机器之间的文件传输(hadoop103主机文件拷贝到hadoop104主机上)

             [jduser@hadoop102test]$ scp jduser@hadoop103:/opt/test/haha jduser@hadoop104:/opt/test/

3.3.4 SSH无密码登录

1)配置ssh

(1)基本语法

ssh 另一台电脑的ip地址

(2)ssh连接时出现Host keyverification failed的解决方法

[root@hadoop102 opt]#ssh 192.168.1.103

The authenticity of host '192.168.1.103(192.168.1.103)' can't be established.

RSA key fingerprint iscf:1e:de:d7:d0:4c:2d:98:60:b4:fd:ae:b1:2d:ad:06.

Are you sure you want to continue connecting(yes/no)?

Host key verification failed.

(3)解决方案如下:直接输入yes

2)无密钥配置

(1)进入到我的home目录

              cd  ~/.ssh

(2)生成公钥和私钥:

ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

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

ssh-copy-id hadoop103

ssh-copy-id hadoop104


3).ssh文件夹下的文件功能解释

       (1)~/.ssh/known_hosts      :记录ssh访问过计算机的公钥(publickey)

       (2)id_rsa    :生成的私钥

       (3)id_rsa.pub     :生成的公钥

       (4)authorized_keys    :存放授权过得无秘登录服务器公钥

3.3.5 rsync

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

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

(1)查看rsync使用说明

man rsync | more

       (2)基本语法

rsync -rvl     $pdir/$fname         $user@hadoop$host:$pdir

              命令命令参数要拷贝的文件路径/名称   目的用户@主机:目的路径

              选项

-r 递归

-v 显示复制过程

-l 拷贝符号连接

       (3)案例实操

              把本机/opt/tmp目录同步到hadoop103服务器的root用户下的/opt/tmp目录

              rsync -rvl/opt/tmp/*  root@hadoop103:/opt/tmp

3.3.6 编写集群分发脚本xsync

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

       (1)原始拷贝:

rsync  -rvl     /opt/module             root@hadoop103:/opt/

       (2)期望脚本:

xsync 要同步的文件名称

       (3)在/usr/local/bin这个目录下存放的脚本,可以在系统任何地方直接执行。

2)案例实操:

(1)在/usr/local/bin目录下创建xsync文件,文件内容如下:

#!/bin/bash

#1 获取输入参数个数,如果没有参数,直接退出

pcount=$#

if((pcount==0)); then

echo no args;

exit;

fi

 

#2 获取文件名称

p1=$1

fname=`basename $p1`

echo fname=$fname

 

#3 获取上级目录到绝对路径

pdir=`cd -P $(dirname $p1); pwd`

echo pdir=$pdir

 

#4 获取当前用户名称

user=`whoami`

 

#5 循环

for((host=103; host<105; host++)); do

        #echo $pdir/$fname $user@hadoop$host:$pdir

        echo --------------- hadoop$host ----------------

        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir

done

(2)修改脚本 xsync 具有执行权限

             [root@hadoop102bin]# chmod a+x xsync

(3)调用脚本形式:xsync 文件名称

3.3.7 编写分发脚本xcall

1)需求分析:在所有主机上同时执行相同的命令

xcall +命令          

2)具体实现

(1)在/usr/local/bin目录下创建xcall文件,文件内容如下:

#!/bin/bash

pcount=$#

if((pcount==0));then

        echo no args;

        exit;

fi

 

echo -------------localhost----------

$@

for((host=101; host<=108; host++)); do

        echo ----------hadoop$host---------

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值