伪分布及完全分布式

本文详细介绍了如何从零开始搭建Hadoop的伪分布式环境,包括配置静态IP、添加用户、安装JDK和Hadoop、设置环境变量、修改配置文件等步骤。随后,文章还讲解了如何将伪分布式转换为完全分布式,涉及到NameNode、DataNode、ResourceManager、NodeManager的部署以及集群配置的调整。最后,提供了集群启动和验证MapReduce程序运行的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 伪分布搭建以及改为完全分布式

    #从0搭建伪分布式
    ====================root用户==================
    1.准备虚拟机
    2.修改静态ip
        DEVICE="eth0"
        BOOTPROTO="static"
        HWADDR="00:0C:29:A2:3B:C9"
        IPV6INIT="yes"
        NM_CONTROLLED="yes"
        ONBOOT="yes"
        TYPE="Ethernet"
        UUID="0202b9d4-9762-4348-aa0c-7ce122f50d9e"
        #IP地址
        IPADDR=192.168.1.111  (自己配置)
        #网关
        GATEWAY=192.168.1.2
        #域名解析器
        DNS1=114.114.114.114
        DNS2=8.8.8.8

        service network restart  重启一下
        ifconfig                 查看IP是否变化,没有变化重启

     修改hostname主机
        vim /etc/sysconfig/network
            NETWORKING=yes
            HOSTNAME=hadoop01 (主机名)
            
            hostname主机重启后生效
    3. 添加用户
        useradd jinghang
        passwd  jinghang
        
    4.创建目录module(解压的安装包)、software(压缩的安装包)
        mkdir /opt/module /opt/software
        
        修改文件所属主和组
        chown -R jinghang:jinghang /opt/module  /opt/software
        
    5.给普通用户添加sudo权限
        vim /etc/sudoers
        在93行添加
        jinghang        ALL=(ALL)       NOPASSWD:ALL

    6.添加主机和IP的映射关系
        vim /etc/hosts
        静态ip        主机名
        192.168.1.111 hadoop01
        192.168.1.112 hadoop02
        192.168.1.113 hadoop03
        
    7.关机拍快照(conf_step1)

    ==================================第七步之后普通用户操作====================

    8.安装jdk和hadoop
        将jdk-8u144-linux-x64.tar和hadoop-2.7.2.tar上传到/opt/software(打开xshell连接SFTP拖动文件到/opt/software)
        
        安装jdk
        1.解压jdk
            tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
            
        2.配置环境变量
            sudo vim /etc/profile
            
                #JAVA_HOME
                export JAVA_HOME=/opt/module/jdk1.8.0_144
                export PATH=$PATH:$JAVA_HOME/bin
            
            注意:如果之前存在java安装包,需要先卸载
            rpm -qa | grep java 查看
            rpm -e 安装包 --nodeps 卸载
            
        安装hadoop
        1.解压hadoop
            tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
        2.配置环境变量
            sudo vim /etc/profile
                #HADOOP_HOME
                export HADOOP_HOME=/opt/module/hadoop-2.7.2
                export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
                
        激活环境变量
        source /etc/profile
        
        检查是否安装成功
        java -version
        java version "1.8.0_144"
        Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
        Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
        
        hadoop version
        Hadoop 2.7.2
        Subversion Unknown -r Unknown
        Compiled by root on 2017-05-22T10:49Z
        Compiled with protoc 2.5.0
        From source with checksum d0fda26633fa762bff87ec759ebe689c
        This command was run using /opt/module/hado

<think>好的,我现在需要回答用户关于伪分布式和完全分布式区别的问题。首先,我得确认自己对这两个概念的理解是否正确,然后再组织语言,用清晰的结构解释给用户。 首先,回忆一下Hadoop的分布式模式。Hadoop通常有三种运行模式:本地模式、伪分布式模式和完全分布式模式。用户问的是后两者的区别,所以重点在伪分布式和完全分布式伪分布式模式,我记得是所有的Hadoop守护进程(比如NameNode、DataNode、ResourceManager、NodeManager)都运行在一台机器上,模拟一个小规模的集群。虽然看起来像分布式,但实际上所有节点都在同一台物理机上。这种情况下,HDFS的各个组件和YARN的组件都在同一个机器上运行,使用不同的端口来区分。这种模式通常用于开发和测试,因为不需要多台机器,方便调试,但性能和资源扩展性有限,毕竟只有一台机器的资源。 而完全分布式模式,则是真正的集群环境,多个节点分布在不同的物理机器上。每个节点负责不同的角色,比如有的机器专门跑NameNode,有的跑DataNode,ResourceManager可能在另一台机器,NodeManager分布在各个数据节点上。这样能充分利用多台机器的资源,处理大规模数据,具备高可用性和容错性,适合生产环境。不过部署和维护起来更复杂,需要网络配置、SSH无密码登录、各个节点的协调等等。 接下来,我需要整理出两者的区别点,可能包括节点数量、用途、性能、资源利用、部署复杂度、适用场景等。然后按照用户的要求,结构清晰,分点说明,帮助用户逐步理解。同时要确保使用正确的中文术语,避免技术术语错误。 另外,用户提到系统级指令中关于LaTeX的要求,但这个问题可能不涉及数学公式,所以可能不需要用到。但需要检查是否有数学表达式需要处理,比如如果有变量名或技术术语需要用$符号的话,但看起来这个问题可能不需要,所以可能可以忽略这部分。不过要确保回答中的任何公式或代码符合要求,但在这个问题里可能不需要。 用户要求回答结构清晰,逐步解决问题,所以可能需要先定义两者,再对比它们的区别,最后总结适用场景。可能需要用条目式列出各个区别点,每个点详细说明。同时要确保语言口语化,但专业术语准确。 现在需要验证一下自己的理解是否正确。比如伪分布式是否真的所有守护进程都在同一台机器,而完全分布式是在不同机器。查阅资料确认,是的。伪分布式是单机多进程模拟集群,而完全分布式是多机多进程的真实集群。此外,伪分布式适合测试和学习,而完全分布式用于生产。 可能还需要提到两者的相同点,比如都运行HDFS和MapReduce/YARN,但不同点在于部署方式和资源管理。不过用户主要问区别,所以重点在区别。 总结下来,回答的结构应该是: 1. 定义伪分布式和完全分布式 2. 对比它们的区别(节点数量、部署方式、用途、性能、复杂度等) 3. 适用场景总结 然后确保每个部分用清晰的中文表达,避免技术错误。比如在伪分布式中,HDFS的DataNode和NameNode在同一台机器,但作为不同进程;而完全分布式则是不同机器上的不同节点。 最后检查是否有遗漏点,比如网络要求、数据存储方式等,但可能这些属于细节,用户需要的是主要区别。所以保持回答简明,重点突出即可。</think>### 伪分布式与完全分布式的区别 #### 1. **基本定义** - **伪分布式模式** 所有Hadoop组件(如NameNode、DataNode、ResourceManager、NodeManager等)运行在**单台机器**上,通过多进程模拟分布式环境。虽然逻辑上是分布式架构,但物理资源受限。 - **完全分布式模式** Hadoop组件分布在**多台物理机器**上,形成真正的集群。每个节点独立运行特定角色(如NameNode、DataNode),物理资源可扩展。 --- #### 2. **核心区别** | **对比维度** | **伪分布式** | **完全分布式** | |--------------------|---------------------------------------|----------------------------------------| | **节点数量** | 单台机器,多进程模拟 | 多台物理机器,每台机器独立运行 | | **资源利用** | 受限于单机资源(CPU、内存、磁盘) | 可横向扩展,利用多机资源 | | **网络通信** | 本地进程间通信(无真实网络开销) | 跨机器通信(需配置网络、SSH等) | | **部署复杂度** | 简单,适合快速搭建测试环境 | 复杂,需协调多机配置、角色分配 | | **容错性** | 无容错能力(单点故障) | 支持高可用(如NameNode HA、数据副本机制)| | **性能** | 低,适合小数据测试 | 高,可处理大规模数据并行计算 | | **典型用途** | 开发调试、学习Hadoop机制 | 生产环境、企业级大数据处理 | --- #### 3. **适用场景** - **伪分布式** - 学习Hadoop工作原理。 - 调试代码或验证功能(无需真实集群资源)。 - 资源有限时的实验环境。 - **完全分布式** - 企业生产环境(如TB/PB级数据处理)。 - 需要高可用性、容错性的场景。 - 需横向扩展资源以提升计算效率的任务。 --- #### 4. **示例说明** - **伪分布式** 在一台机器上启动所有服务: ```shell # 启动HDFS和YARN $ start-dfs.sh $ start-yarn.sh ``` 此时,`localhost:9870`可访问HDFS,但所有数据存储在同一台机器。 - **完全分布式** 配置多台机器(如3节点): - **机器A**:NameNode + ResourceManager - **机器B**:DataNode + NodeManager - **机器C**:DataNode + NodeManager 数据分块存储在不同机器,任务并行执行。 --- #### 5. **总结** - **伪分布式**是“单机伪装集群”,成本低但性能有限; - **完全分布式**是“真实多机协作”,成本高但支持大规模计算。 根据实际需求(测试/生产)和资源条件选择部署模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值