在一个全配置的集群上,运行Hadoop意味着在网络分布的不同服务器上运行一组守护进程 (daemons),这些守护进程或运行在单个服务器上,或运行与多个服务器上,他们包括:

(1) NameNode(名字节点)

(2) DataNode(数据节点)

(3) Secondary NameNode (次名节点)

(4) JobTracker  (作业跟踪节点)

(5) TaskTracker (任务跟踪节点)

NameNode

被认为是Hadoop守护进程中最重要的一个,可以说,NameNode就是一个大脑。

运行NameNode会消耗掉大量的内存和I/O资源,因此,为了减轻机器的负载,驻留NameNode的服务器一般不会负责MapReduce的计算、存储用户数据。这也意味着,NameNode不会和JobTracker\TashTracker存在于同一台服务器上。一旦NameNode服务器出现宕机,造成的影响一般会比较严重。

DataNode

每个集群的从节点上都会驻留一个DataNode的守护进程,来执行分布式文件系统的繁重工作——将HDFS数据快读取或写入到本地文件系统的实际文件中。当希望对HDFS文件进行读写时,文件被分割为多个块,有NameNode告知客户端每个数据块驻留在那个DataNode。客户端直接与DataNode守护进程进行通信,来处理与数据块对相对应的本地文件。DataNode与DataNode节点直接也可以直接进行通信,用于完成数据的复制。

上图解释了NameNode和DataNode节点的作用,NameNode指明了数据存放的名称和位置,分别为/user/chuck/data1 下的1、2、3文件和存储在 /user/james/data2下的

4、5文件。四个DataNode实现了1、2、3、4、5文件的复制。确保了任何一个DataNode节点失败后任然可以正常工作。DataNode会不断的向NameNode节点报告,将当前节点存储的数据块告知NameNode,为之提供本地修改的相关信息,同时接受指令的创建、移动或删除本地磁盘上的数据块。

Secondary NameNode

JobTracker

jobtracker守护进程是Hadoop和应用程序之间的纽带,一旦代码提交到集群上,JobTracker就会执行确定的任务,包括决定处理哪些文件,为不同的任务分配节点以及监控所有任务的运行,如果任务失败,jobTracker将会自动重启任务,但是所分配的节点可能会不同。

每个Hadoop集群只有一个JobTracker守护进程,他通常运行在服务器的主节点上。

TaskTracker

下面的图形描述了一个Hadoop集群的拓扑结构,这是一个主/从结构,特点是主节点上运行NameNode和JobTracker,而从节点上运行DataNode和TaskTracker。并使用独立的节点运行SSN,以防止主节点运行失败。



了解了以上信息,我们来关注一下Hadoop的NameNode和JobTracker究竟分别执行什么样的功能?

1、从存储角度来理解:集群是由一个Namenode和若干datanode组成,而secondary作为Namenode的一个备份

2、从应用的角度来理解:集群中的节点是由jobtracker和若干tasktracker组成,jobtracker负责任务的调度,而tasktracker则是负责任务的执行。因此,tasktracker是运行在datanode的,而Namenode和jobtracker则无需在同一机器上面
 
 

Hadoop学习篇 2 初识 Hadoop的更多相关文章

  1. Hadoop学习笔记(1) 初识Hadoop

    1. Hadoop提供了一个可靠的共享存储和分析系统.HDFS实现存储,而MapReduce实现分析处理,这两部分是Hadoop的核心. 2. MapReduce是一个批量查询处理器,并且它能够在合理 ...

  2. Hadoop学习1(初识hadoop)

    Hadoop生态系统的特点 1)源代码开源 2)社区活跃,参与者多 3)涉及分布式存储和计算的各方面 4)已得到企业界的验证 Hadoop构成 1) 分布式文件系统HDFS(Hadoop Distri ...

  3. Hadoop学习总结之五:Hadoop的运行痕迹

    Hadoop学习总结之五:Hadoop的运行痕迹   Hadoop 学习总结之一:HDFS简介 Hadoop学习总结之二:HDFS读写过程解析 Hadoop学习总结之三:Map-Reduce入门 Ha ...

  4. 大数据学习笔记之初识Hadoop

    1.Hadoop概述 1.1 Hadoop名字的由来 Hadoop项目作者的孩子给一个棕黄色的大象样子的填充玩具的命名 Hadoop的官网:http://hadoop.apache.org . 1.2 ...

  5. Hadoop学习笔记—4.初识MapReduce

    一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算.对于大数据量的计算,通常采用的处理手法就是并行计算.但对许多开发者来 ...

  6. Hadoop学习1—浅谈hadoop

    大数据这个词越来越热,本人一直想学习一下,正巧最近有时间了解一下.先从hadoop入手,在此记录学习中的点滴. 什么是hadoop? What Is Apache Hadoop? The Apache ...

  7. Hadoop学习之Ubuntu12.04 Hadoop 环境搭建笔记

    SSH无密码配置 Hadoop在Ubuntu12.04上搭建环境 报错及问题 SSH无密码配置 参考:Linux(Centos)配置OpenSSH无密码登陆 注意问题: Hadoop集成环境三台机器都 ...

  8. hadoop学习笔记--找到执行hadoop的入口

    参与个hadoop项目,之前没搞过,赶紧学习: 照葫芦画瓢,得到代码是hdfs2local.sh脚本和LiaoNingFilter.jar包,迫不及待用jd-gui打开jar包,搜索到main(在MA ...

  9. hadoop学习通过虚拟机安装hadoop完全分布式集群

    要想深入的学习hadoop数据分析技术,首要的任务是必须要将hadoop集群环境搭建起来,可以将hadoop简化地想象成一个小软件,通过在各个物理节点上安装这个小软件,然后将其运行起来,就是一个had ...

随机推荐

  1. Frogger

    Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sit ...

  2. 为何重写toString方法后会使哈希码能够打印出来

    首先还是推荐lz看源代码 简单的讲之所以调用了toString()方法,不是什么编译器默认的,而是因为lz你调用的是out.print()方法仔细看源代码,在PringStream类中,print方法 ...

  3. (转)深入理解PHP之数组(遍历顺序)

    深入理解PHP之数组(遍历顺序)(转) http://www.laruence.com/2009/08/23/1065.html (鸟哥) 经常会有人问我, PHP的数组, 如果用foreach来访问 ...

  4. “”?: H3C SSH 配置+

    开启ssh 服务 ssh service enable 创建用户 使用ssh local-user ssh 用户级别 authorization-attribute user-role level-1 ...

  5. as的一些常见问题

    assets文件的存放目录在”src/main/”目录下,和java.res文件夹平级: aidl文件需要单独在”src/main/”目录下新建一个文件夹,然后创建对应的包名,将aidl文件放在包名对 ...

  6. 关闭Ubuntu 12.04的内部错误提示

    刚装完系统后,才安装一个输入法重启电脑后,竟然就提示'内部错误'需要提交报告,什么状况? 发扬'不求甚解'的光荣传统,我又不搞Linux开发,对我来说只是个工具而已,工具出问题了解决问题即可不想劳神深 ...

  7. JAVA的初始化顺序(续)

    JAVA在创建对象之前,是先加载类,然后再创建对象. 加载类时,会加载静态的成员变量,包括父类的静态成员变量[先加载父类,再加载子类]. 一.  静态成员变量的初始化 package com.cnbl ...

  8. java编程规范

    一.规范存在的意义 应用编码规范对于软件本身和软件开发人员而言尤为重要,有以下几个原因: 1.好的编码规范可以尽可能的减少一个软件的维护成本 , 并且几乎没有任何一个软件,在其整个生命周期中,均由最初 ...

  9. mysql pid文件

    mysql pid文件记录的是当前mysqld进程的pid. 通过Mysqld_safe启动mysql时,mysqld_safe会检查pid文件,未指定PID文件时,pid文件默认名为$DATADIR ...

  10. JsCss笔记

    1.  &= 不应该在 Bool 型变量中使用. a &= b  对于Js来说是:  a = a & b ;  a 本来是 bool , &= 之后就变成了 Int. ...