Hadoop运行模式详解

一、独立模式

Hadoop最简单的运行模式是独立模式,该模式下,所有的Hadoop守护进程都在运行Hadoop的同一台机器上。在独立模式下使用HDFS和MapReduce是为了测试,演示以及使用的方便。

在独立模式下,除了Hadoop守护进程所需的少量操作系统资源,几乎不需要分配资源。Hadoop守护进程可以使用用户凭据运行,不需要运行在超级用户下。

在核心站点或开发测试环境中使用独立模式很方便,因为所有的进程共享相同的文件系统。例如,在与其他人合作之前可以很容易地使用Hadoop分配测试数据。

sbin/start-all.sh # 启动所有Hadoop守护进程,包括NameNode、DataNode和JobTracker、TaskTracker
sbin/stop-all.sh # 关闭所有Hadoop守护进程,包括NameNode、DataNode和JobTracker、TaskTracker

二、伪分布式模式

伪分布式模式是指Hadoop可以运行在一台机器上,但是它像在一个正确的分布式环境中运行一样。

在伪分布式模式下,所有守护进程都在一台机器上运行,但是它们在每个节点上运行。在本例中,工作流程在多个进程之间进行切换,而不是在多个机器之间进行切换。这个时候的HDFS是跨越多个磁盘分散存储数据的,而且可以使用JobTracker和TaskTracker,因此伪分布式模式可以模拟真正的分布式环境。

修改conf/core-site.xml文件中的hadoop.tmp.dir和fs.default.name属性,然后启动hadoop和yarn:
- hadoop namenode -format
- sbin/start-dfs.sh
- sbin/start-yarn.sh

三、完全分布式模式

在完全分布式模式下,Hadoop守护进程在多台机器上运行。在完全分布式模式下,Hadoop有足够的资源和处理能力来每个节点独立运行MapReduce任务。完全分布式模式需要额外的配置和管理工作。

在完全分布式模式下,有一个主机扮演集群管理器的角色,它能够控制整个集群。Hadoop集群管理器名称为YARN(Resource Manager),它负责启动各种应用程序,并协调各个节点上的Node Manager、Container和Application Master。

完全分布式模式可以使用Hadoop集群处理大容量数据,因为它允许在许多物理和/virtual主机之间分隔工作负载,并使得在群集中添加或删除计算器更加容易。

为一个完全分布式Hadoop集群配置的流程,大致应该包括如下步骤:
1. 安装jdk和hadoop
2. 配置各项参数(core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml)
3. 格式化NameNode(hadoop namenode -format)
4. 启动相关服务(start-dfs.sh、start-yarn.sh)
5. 验证

四、基于容器的完全分布式模式

基于容器的完全分布式模式是最新的Hadoop运行模式之一。在YARN的基础上,Hadoop引入了基于容器(也称为Linux Control Groups)的隔离技术来进一步增强相对资源预测和对多租户的支持。

在基于容器的模式下,每个MapReduce任务都运行在独立的容器中。YARN的管理器可以在设定的资源限制下运行这个容器。每个容器都被分配给一个JobTracker,这个JobTracker根据需要启动任务容器并管理调度。因此,每个容器都是JobTracker的一个实例。

为了方便使用,Hadoop引入了Docker容器技术和Docker容器映像,以便在远程集群中部署MapReduce应用程序。这意味着可以利用Docker容器来包装MapReduce应用程序并在基于容器的模式下运行它们。

yarn-site.xml中需要设置值为yarn.container-executor.class属性,配置位于yarn-site.xml中,容器间隔离由Linux内核提供,因此没有特别的软件包需要安装或其他配置。
容器的资源隔离和预测是由Linux Control Groups(cgroups)提供的。启动以下命令即安装:
$ sudo apt-get install cgroup-bin libcgroup1

五、总结

在不同的Hadoop运行模式之间进行选择基于不同的应用场景。从简单的独立模式到真正的分布式环境下的伪分布式模式、完全分布式模式、基于容器的完全分布式模式,这是Hadoop运行模式的从简单到复杂的演变过程,也是Hadoop开发者和用户应该了解的基础知识。

在使用不同的Hadoop运行模式之前,请提前了解每个运行模式下所涉及的配置和准备工作。通过适当的配置,各种配置实现可以使Hadoop在不同的环境中进行部署和开发。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/272290.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-17 13:55
下一篇 2024-12-17 13:55

相关推荐

  • 手机安全模式怎么解除?

    安全模式是一种手机自身的保护模式,它会禁用第三方应用程序并使用仅限基本系统功能。但有时候,安全模式会使你无法使用手机上的一些重要功能。如果你想解除手机安全模式,可以尝试以下方法: …

    编程 2025-04-28
  • Qt State Machine与状态机模式

    本文将介绍Qt State Machine和状态机模式在Qt中的实现。Qt提供了QStateMachine和QState两个类,可以方便地实现状态机模式,并且能有效地处理复杂的、多…

    编程 2025-04-27
  • 显示C++设计模式

    本文将详细介绍显示C++设计模式的概念、类型、优点和代码实现。 一、概念 C++设计模式是在软件设计阶段定义,用于处理常见问题的可重用解决方案。这些解决方案是经过测试和验证的,并已…

    编程 2025-04-27
  • Centos7进入单用户模式的解释

    本文将介绍如何在Centos7中进入单用户模式,并从以下几个方面进行详细的阐述。 一、Centos7进入单用户模式的解答 在Centos7中进入单用户模式需要执行以下步骤: 1. …

    编程 2025-04-27
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25

发表回复

登录后才能评论