zoukankan      html  css  js  c++  java
  • 1、Hadoop架构

    1、Hadoop 是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多小的工作单元放到任何集群节点上执行。

    作业(job):一个准备提交执行的应用程序;

    任务(task):从一个作业划分出的、运行于各计算节点的工作单元;

    HDFS:主要负责各个节点上的数据存储,并实现高吞吐率的数据读写;

    2、在分布式存储和分布式计算方面,Hadoop使用主/从(Master/Slave)架构,在集群中运行一系列后台程序

    (1)NameNode:HDFS的守护程序,负责记录文件是如何分割成数据块的,以及这些数据块分别被存储到哪些数据节点上。主要功能是对内存及I/O进行集中管理;NameNode所在服务器不存储任何用户信息或执行任何计算任务,以免这些程序降低服务器性能。但NameNode是Hadoop集群中的一个单点,一旦宕机,整个系统将无法运行;(50070端口)

    (2)DataNode:集群中的每个从服务器都运行一个DataNode后台程序,负责把HDFS数据块读写到本地的文件系统。当需要通过客户端读写某个数据时,先由NameNode告诉客户端从哪个DataNode进行具体读写操作,然后直接与这个DataNode服务器上的后台程序进行通信,并且对相关的数据块进行读写操作;

    (3)Secondary NameNode: 用来监控HDFS状态的辅助后台程序。每个集群都有一个Secondary NameNode,部署在一台单独的服务器上,他不接收或记录任何实时的数据变化,但会与NameNode通信,以便定期地保存HDFS的快照功能,可以将NameNode的宕机时间和数据损失降低到最小,可以作为备用NameNode使用;

    (4)JobTracker: 用来连接应用程序与Hadoop。用户代码提交到集群后有JobTracker决定哪个文件将被处理,并且为不同的task分配节点,同时还监控所以运行的task,一旦某个task失败了,JobTracker就会自动重新开启这个task,大多数情况下这个task会被放在不同的节点上。具体取决于重启的预设值。每个Hadoop集群只有一个JobTracker,一般运行在Master节点上;(50030端口)

    (5)TaskTracker: 与负责存储数据的DataNode相结合,其处理结构上也遵循主从架构。TaskTracker位于从节点,独立管理各自的task。每个TaskTracker负责独立执行具体的task,而JabTracker负责分配task.每个TaskTracker可以产生多个Java虚拟机(JVM),用于处理多个map及reduce任务。TaskTracker的一个重要职责就是雨JobTracker交互,如果JobTracker无法准时获取TaskTracker提交的信息,JobTracker就判定TaskTracker已经崩溃,并将任务分配给其他节点处理。

     其中NameNode、Secondary NameNode、JobTracker运行于Master节点上,而在每个Slave节点上部署DataNode、TaskTracker,以便直接处理本机的数据

  • 相关阅读:
    成功给家长们举办了supermemo软件安装与使用的培训
    抓到两只IE8的虫子
    域名保护期是咋回事
    IE8开发人员工具,让web开发的客户端调试畅通无阻
    (转)网站成功的法则
    谢文的社区观
    玩《征途》感受——这么多年白玩游戏了 (zt)
    社区运营 VS 征途(转)
    SQLite多线程写锁文件解决方案
    sqlite和sql server语法上的一些区别
  • 原文地址:https://www.cnblogs.com/liutoutou/p/3240191.html
Copyright © 2011-2022 走看看