您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页Hadoop 运行模式

Hadoop 运行模式

来源:化拓教育网

1. 本地运行模式

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

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

       

        1.示例

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

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

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

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

                    

                         

                 2) 统计文件中词频

                        执行命令 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分发脚本

                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 脚本,用于将指定的文件分发到集群中的多台机器上。

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

2.2 SSH 免密登录     

        (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:存放授权过得无密登录服务器公钥

        

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务