zoukankan      html  css  js  c++  java
  • 6-hadoop的运行模式(完全分布式)(上)

    注意:在实际的生产开发中均是使用完全分布式

    1、搭建步骤

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

    2)安装JDK

    3)配置环境变量

    4)安装Hadoop

    5)配置环境变量

    6)配置集群

    7)单点启动

    8)配置ssh

    9)群起并测试集群

    2、scp:(secure cope)安全拷贝

    1、scp定义:

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

    2、基本语法

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

    3、案例实操

    在hadoop1上,将hadoop1中/opt/module目录下的软件拷贝到hadoop2上。

    [root@hadoop1 /]$ scp -r /opt/module  root@hadoop1:/opt/module

    在hadoop3上,将hadoop1服务器上的/opt/module目录下的软件拷贝hadoop3上。

    [root@hadoop3 opt]$scp -r root@hadoop1:/opt/module·root@hadoop3:/opt/module

    在hadoop3上操作将hadoop1中/opt/module目录下的软件拷贝到hadoop4上。

    [root@hadoop3 opt]$ scp -r root@hadoop1:/opt/module root@hadoop4:/opt/module

    注意:拷贝过来的/opt/module目录,别忘了在hadoop102、hadoop103、hadoop104上修改所有文件的

    所有者和所有者组。sudo chown root:root -R /opt/module

    将hadoop1中/etc/profile文件拷贝到hadoop2的/etc/profile上。

    [root@hadoop1 ~]$ scp /etc/profile root@hadoop2:/etc/profile

    注意:拷贝过来的配置文件别忘了source一下/etc/profile,。

    3、rsync 远程同步工具

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

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

    基本语法
    rsync    -rvl       pdir/pdir/pdir/fname      user@hadoopuser@hadoopuser@hadoophost:pdir/pdir/pdir/fname
    命令   选项参数   要拷贝的文件路径/名称    目的用户@主机:目的路径/名称

    选项参数说明

    案例实操
    把hadoop1机器上的/opt/software目录同步到hadoop2服务器的root用户下的/opt/目录

    [root@hadoop1 opt]$ rsync -rvl /opt/software/ root@hadoop2:/opt/software

    4、xsync集群分发脚本

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

    需求分析:
    (a)rsync命令原始拷贝:
      rsync  -rvl     /opt/module                root@hadoop103:/opt/

    (b)期望脚本:
      xsync要同步的文件名称

    (c) 说明:在/usr/local/bin这个目录下存放的脚本,其他用户可以在系统任何地方直接执行。

    脚本实现
    (a)在/usr/local/bin目录,并在bin目录下xsync创建文件,文件内容如下:

    [root@hadoop2 bin]$ touch xsync 
    [root@hadoop2 bin]$ vi 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=3; host<5; host++)); do
    echo ------------------- hadoop$host --------------
         rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
    done

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

    [root@hadoop2 bin]$ chmod 777 xsync

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

    [root@hadoop2 bin]$ xsync /usr/local/bin

    注意:如果将xsync放到/home/用户/bin目录下仍然不能实现全局使用

    可以将xsync移动到/usr/local/bin目录下。

  • 相关阅读:
    websocket初体验(能传文字和图片)
    展开折叠效果 height未知 transition无效
    微信小程序自定义键盘
    微信小程序 selectComponent 值为null
    css 斜线 animation
    【转】怎样在ubuntu12.04下创建一个启动器
    以ontouch为例说明android事件发送机制
    谈谈移动应用设计——从一个普通开发者的角度
    Launch error: Failed to connect to remote VM. Connection refused.的解决办法
    Beyond compare代码比较工具。
  • 原文地址:https://www.cnblogs.com/Mrchengs/p/11223499.html
Copyright © 2011-2022 走看看