Hadoop 运行模式

1. 本地运行模式

        单机运行,只是用来演示一下官方案例。

        生产环境不用,测试偶尔会用一下,数据存储在linux本地。

       

        1.示例

                1)  创建文件夹  test-input    创建文件  word.txt

                     利用命令 mkdir test-input 创建文件夹。

                     利用命令cd test-input  进入该文件夹。

                     利用命令  vim word.txt 创建文件夹并编辑,保存并退出。

                    

                         

                 2) 统计文件中词频

                        进入hadoop所在目录。

                        执行命令 bin/hadoop jar share/hadoop/mapreduce/  +

                                        hadoop-mapreduce-examples-3.1.3.jar     +

                                        wordcount  test-input/   ./test-output

                        wordcount 表示统计词频的指令

                        test-input/   表示输入文件

                        ./test-output  表示输出文件

                3) 查看结果

                        进入test-output文件夹,利用命令cat part-r-00000可查看结果

                   

                        结果如下

                       

        

2.完全分布式模式(Fully-Distributed Mode)

        完全分布式模式也称为集群模式,是真正的分布式的、由3个及以上的实体机或者虚拟机组成的集群,是将Hadoop运行在多台主机中,各个主机按照相关配置运行相应的Hadoop守护进程。完全分布式模式是真正的分布式环境,用于实际的生产环境。

        企业中大量使用,数据存储在HDFS/多台服务器工作。

     2.1 scp&rsync命令讲解

        1. scp(secure copy)安全拷贝               

             1)scp定义:scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
             2)基本语法:scp -r /pdir/fname user@hadoop:pdir/fname                                                
             3)解释:命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称

         2. rsync远程同步工具

              rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
              rsync和scp的区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更                                                      新。scp是把所有文件都复制过去。

            1)基本语法:rsync    -av       $pdir/$fname             $user@$host:$pdir/$fname
            2)解释:命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
            3)选项参数说明:-r 递归,-v 显示复制过程,-l 拷贝符号连接  -a 归档拷贝

         3. xsync分发脚本

                1)需求:循环复制文件到所有节点的相同目录下
                2)需求分析
                (a)rsync命令原始拷贝:rsync -rvl /opt/module root@hadoop103:/opt/
                (b)期望脚本:xsync要同步的文件名称
                (c)说明:在/home/atguigu/bin这个目录下存放的脚本,atguigu用户可以在系统的任                         何地方直接执行。

                3)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

                

这段脚本是一个 Bash 脚本,用于将指定的文件分发到集群中的多台机器上。

下面是对脚本的详细解析:

  1. 首先,脚本使用$#来判断传入的参数个数是否小于1,如果是,则输出"Not Enough Argument!"并退出脚本。

  2. 接下来,使用for循环遍历集群中的每台机器,这里的机器名是"hadoop102"、"hadoop103"和"hadoop104",可以根据实际情况进行修改。

  3. 在每台机器上的循环内部,使用for循环遍历传入的参数列表$@,这些参数是要发送的文件。

  4. 在每个文件循环内部,使用-e选项判断文件是否存在。如果文件存在,则执行以下操作:

    • 获取文件的父目录:通过cd -P $(dirname $file); pwd命令获取当前文件的父目录,并将其赋值给pdir变量。

    • 获取文件的名称:通过basename $file命令获取当前文件的名称,并将其赋值给fname变量。

    • 在远程机器上创建父目录:使用ssh $host "mkdir -p $pdir"命令在远程机器上创建文件的父目录。

    • 使用rsync命令将文件复制到远程机器:使用rsync -av $pdir/$fname $host:$pdir命令将当前文件复制到远程机器的相应目录中。

  5. 如果文件不存在,则输出"$file does not exists!"。

脚本通过循环遍历集群中的每台机器,并在每台机器上的循环内部遍历要发送的文件,将文件复制到相应的目录中。可以根据实际需求进行修改和定制。

2.2 SSH 免密登录     

        1、配置ssh:ssh另一台电脑的ip地址。
        2、无密钥配置
        (1)免密登录原理

        (2)生成公钥和私钥:ssh-keygen -t rsa
        (3)将公钥拷贝到要免密登录的目标机器上:
                ssh-copy-id hadoop102
                ssh-copy-id hadoop103
                ssh-copy-id hadoop104
                注意:还需要在hadoop102上采用root账号,配置一下无密登录到hadoop102、103、   104;在hadoop103上采用atguigu账号配置一下无密登录到hadoop102、103、104。
        3、.ssh文件夹下(~/.ssh)的文件功能解释
                known_hosts:记录ssh访问过计算机的公钥(public key)
                id_rsa:生成的私钥
        id_rsa.pub:生成的公钥
        authorized_keys:存放授权过得无密登录服务器公钥

        

  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值