先从概念层次介绍下Hadoop的各个组件,下一部分会深入Hadoop的每个组件,并从实战层次讲解。

一、Hadoop构造模块

     运行Hadoop的意思其实就是运行一组守护进程(daemons),每个进程都有各自的角色,有的仅运行在单个服务器上,有的则运行在集群多个服务器上,它们包括:
  • NameNode
  • Secondary NameNode
  • DataNode
  • JobTracker
  • TaskTracker
     Hadoop是一个分布式存储与计算系统,分布式存储部分是HDFS,分布式计算部分是MapReduce,它们都是遵循主/从(Master/Slave)结构,上面前3个组件属于分布式存储部分,后面2个组件属于分布式计算部分,下面详细介绍一下它们。
二、NameNode
     前面说了,NameNode属于HDFS,它位于HDSF的主端,由它来指导DataNode执行底层I/O任务。NameNode相当于HDFS的书记员,它会跟踪文件如何被分割成文件块,而这些块又是被哪些节点存储,以及分布式文件系统整体运行状态是否正常等。
     运行NameNode会消耗大量内存和IO资源,因此为减轻机器负载,驻留NameNode的服务器通常不会存储用户数据或者进行MapReduce计算任务,这也就意味着一台NameNode服务器不会同时是DataNode或者TaskTracker服务器。
     不过NameNode的重要性也带来了一个负面影响---单点故障。对于其他任何守护进程,其驻留节点发生软件或硬件故障,Hadoop集群还可平稳运行,但是对于NameNode来说,则不可以。不过后面版本(2.0以后的版本)已经解决此问题。
三、DataNode
     集群中每一个从节点都会驻留一个DataNode的守护进程,用来将HDFS数据库写入或读取到本地文件系统中。当对HDFS文件进行读写时,文件会被分割成多个块,有NameNode告知客户端每个数据驻留在哪个DataNode,客户端直接与DataNode进行通信,DataNode还会与其它DataNode通信,复制这些块以实现冗余。
     
NameNode跟踪源数据,DataNode提供数据块的备份存储并持续不断地向NameNode报告,以保持元数据最新状态。
四、 Secondary NameNode
     SNN是一个监测HDFS的辅助进程,它只与NameNode进程通信,根据集群配置时间间隔获取HDFS元数据快照,我们知道HDFS有单点故障,SNN快照有助于减少宕机而导致的数据丢失风险,其一般也单独占一台服务器。
五、 JobTracker
     它是应用程序和Hadoop之间的纽带,监控MapReduce作业执行过程,一旦提交代码到集群,JobTracker就会确定执行计划,包括决定处理哪些文件、为不同的任务分配节点以及监控所有任务运行。每个集群只有一个JobTracker进程,一般运行在主节点。
六、 TaskTracker
     TaskTracker管理各个任务在从节点上的执行情况。它负责执行有JobTracker分配的单项任务,虽然每个从节点只有一个TaskTracker运行,但每个TaskTracker可以生产多个JVM来并行地处理多Map或Reduce任务。TaskTracker的一个职责是不断的与JobTracker通信,即“心跳”。
下面再来整体看一下整个Hadoop拓扑结构
下面就是一个典型的Hadoop拓扑图,主动结构,NameNode和JobTracker位于主端,DataNode和TaskTracker位于从端。
客户端向JobTracker发送Job任务,JobTracker会把Job切分,并分配不同的Map和Reduce任务到每一台机器。
想更深一步了解HDFS相关组件,请参考我的另一篇文章:《HDFS架构设计》

Hadoop组件概览相关推荐

  1. ssis组件_使用SSIS Hadoop组件连接到Apache Hive和Apache Pig

    ssis组件 In our previously published articles in this series, we talked about many SSIS Hadoop compone ...

  2. ssis导出数据性能_使用SSIS Hadoop组件导入和导出数据

    ssis导出数据性能 In the previously published article, we talked briefly about Hadoop, and we gave an overv ...

  3. hadoop组件---面向列的开源数据库(九)--python--python使用thrift连接hbase

    Python使用thrift操作HBase thrift支持多种语言进行连接使用,但是没找到linux中的cli操作命令行的形式.所以如果服务器有python环境的话,可以使用python进行连接,快 ...

  4. hadoop组件---spark理论----spark on k8s模式的三种方式全面了解

    我们在之前的文章中 已经了解了 spark支持的模式,其中一种就是 使用k8s进行管理. hadoop组件-spark----全面了解spark以及与hadoop的区别 是时候考虑让你的 Spark ...

  5. Hadoop组件搭建-Hadoop伪分布式

    该文章仅用于记录个人笔记,如果您觉得不专业或者有误导,打扰到您,请谅解. Hadoop组件搭建-前置要求 Hadoop组件搭建-jdk Hadoop组件搭建-Hadoop伪分布式 Hadoop组件搭建 ...

  6. Hadoop集群搭建之Hadoop组件安装

    兵马未动,粮草先行 --汉语成语 系列文章目录 Hadoop集群搭建之Linux系统安装 Hadoop集群搭建之Hadoop组件安装 文章目录 系列文章目录 前言 一.IP和主机名称配置 (一)Had ...

  7. Hadoop组件之-HDFS(HA实现细节)

    NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode ...

  8. hadoop组件---数据仓库(四)---hive常用命令

    安装好hive的环境之后 我们可以尝试一些常用的命令,常用命令也可以作为平时工作中的速查手册. 进入hive控制台 首先需要知道hive的启动目录在哪,可以使用命令 whereis hive 启动hi ...

  9. hadoop组件---spark----全面了解spark以及与hadoop的区别

    Spark是什么 Spark (全称 Apache Spark™) 是一个专门处理大数据量分析任务的通用数据分析引擎. spark官网 Spark核心代码是用scala语言开发的,不过支持使用多种语言 ...

  10. #Livy配置Kerberos,#调用Hadoop组件,#Java 实现Livy大数据调用,#java拉取hive数据同步到本地

    项目场景: 78做java后端的, 让联调大数据, 78做java的都没看过大数据让去做, 又不是没做大数据的人了,而且 nm让做不懂得涨点工资, 发个福利吗? 自己写一个Java程序, 去调用别人L ...

最新文章

  1. 图形学实验之显示一个飞机(C++实现)
  2. 拼多多4.5元手表使用功能图
  3. python爬虫urllib 数据处理_python爬虫学习笔记(三)-爬取数据之urllib库
  4. SQL Server 查询性能优化——创建索引原则(一)
  5. kotlin中既继承又实现_Kotlin程序| 解决继承中的主要冲突的示例
  6. 字符串分割--java中String.split()用法
  7. [日志]开车要掌握的十六大绝技
  8. JDK源码学习之一lang包
  9. Flink java wordcount案例(批处理、流处理)
  10. IOS学习笔记06---C语言函数
  11. Gitee搭建自己的图床
  12. 你的主机中的软件中止了一个已建立的连接
  13. 戴口罩人脸数据集和戴口罩人脸生成方法
  14. 服务器整体爆率如何修改,传奇服务端gom引擎提升爆率脚本
  15. click事件修改css_CSS Click事件
  16. IDM下载哔哩哔哩视频MP4格式
  17. 云端服务器上传本地项目
  18. Flutter之Card组件
  19. UVA 11549 Calculator Conundrum 题解
  20. 线性方程组的解个数与秩的关系

热门文章

  1. 宏杉科技的“存储七项式”方法论
  2. MySQL数据库面试题(2020最新版)
  3. 才子进销存软件各版本说明
  4. python源码剖析新版_Python 源码剖析之基础知识
  5. IoTDB常用的SQL语句大全
  6. 三星LG纷纷在越南设厂:产能或逐渐从中国转移
  7. android 技能 英文,讯飞输入法Android7.0.4050搭载音标输入神技能
  8. java转账_JAVA实现银行转账功能
  9. win32com 读doc,doc表格
  10. linux上传文件夹工具,[转] psftp(linux简易上传上载工具)的用法及常用命令