hadoop的三大结构及其各自的作用

Hadoop 是一个开源的分布式计算框架,主要用于处理大规模数据集。它的三大核心组件是 HDFS(Hadoop Distributed File System)、MapReduce 和 YARN(Yet Another Resource Negotiator)。以下是它们的结构和作用:

1. HDFS(Hadoop Distributed File System)

  • 结构

    • NameNode:主节点,负责管理文件系统的元数据(如文件和目录的结构、权限等)、存储块的分配和管理。

    • DataNode:从节点,负责存储实际的数据块。数据会被分割成固定大小的块(默认 128MB),并分布在多个 DataNode 上。

  • 作用

    • 高容错性:通过在多个 DataNode 上存储数据副本(默认 3 份),确保数据的高可用性和容错性。

    • 高吞吐量:支持大规模数据的读写操作,适合处理海量数据。

    • 分布式存储:数据被分散存储在多个节点上,便于分布式处理。

    • 可扩展性:可以通过增加 DataNode 节点来扩展存储容量。

2. MapReduce

  • 结构

    • Map 任务:负责处理输入的键值对,生成中间结果。

    • Reduce 任务:对中间结果进行归并,最终生成输出结果。

  • 作用

    • 分布式计算:将大规模数据计算任务分解为多个小任务(Map 和 Reduce 任务),并分配到多个节点上并行执行,大大提高了计算效率。

    • 易于编程:提供了简单的编程模型,开发者只需实现 Map 和 Reduce 函数,框架会自动处理任务的分配、调度和容错。

    • 适合大数据处理:适用于处理海量数据的批处理任务,如数据挖掘、数据分析等。

3. YARN(Yet Another Resource Negotiator)

  • 结构

    • ResourceManager:负责整个集群的资源管理和调度,包括内存、CPU 等资源。

    • NodeManager:运行在每个节点上,负责管理单个节点的资源,监控任务的运行状态。

    • ApplicationMaster:每个应用程序(如 MapReduce 作业)都有一个 ApplicationMaster,负责协调任务的执行,与 ResourceManager 和 NodeManager 交互。

  • 作用

    • 资源管理:统一管理集群的资源,确保资源的合理分配和高效利用。

    • 任务调度:根据资源情况和作业优先级,合理调度任务到各个节点上运行。

    • 多框架支持:允许在同一个集群上运行多种计算框架(如 MapReduce、Spark 等),提高了集群的利用率和灵活性。

三者的协同工作

  • 存储与计算分离:HDFS 提供分布式存储,MapReduce 和其他计算框架(如 Spark)通过 YARN 调度资源进行计算。

  • 高效处理:数据存储在 HDFS 上,计算任务通过 YARN 调度到存储数据的节点上执行,减少了数据传输,提高了处理效率。

  • 高可用性:通过 YARN 的资源管理和任务调度,结合 HDFS 的数据容错机制,确保整个系统的高可用性和可靠性。

你可能感兴趣的:(hadoop,大数据,分布式)