热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

初识Hadoop两大核心:HDFS和MapReduce

一、Hadoop是什么?Hadoop是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多的小的工作单元,并把

一、Hadoop是什么?
Hadoop是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多的小的工作单元,并把这些单元放到任何集群节点上执行。在MapReduce中,一个准备提交执行的应用程序称为“作业(job)”,而从一个作业划分出 得、运行于各个计算节点的工作单元称为“任务(task)”。此外,Hadoop提供的分布式文件系统(HDFS)主要负责各个节点的数据存储,并实现了高吞吐率的数据读写。

二、Hadoop的主要模块:
Hadoop框架的主要模块包括如下:

Hadoop Common
Hadoop分布式文件系统(HDFS)
Hadoop YARN
Hadoop MapReduce
虽然上述四个模块构成了Hadoop的核心,不过还有其他几个模块。这些模块包括:Ambari、Avro、Cassandra、Hive、 Pig、Oozie、Flume和Sqoop,它们进一步增强和扩展了Hadoop的功能。

三、(Master/Slave)主从架构:
Hadoop使用(Master/Slave)主从架构进行分布式储存和分布式计算。Master负责分配和管理任务,Slave负责实际执行任务。

在分布式存储和分布式计算方面,Hadoop都是用从/从(Master/Slave)架构。在一个配置完整的集群上,想让Hadoop这头大象奔跑起来,需要在集群中运行一系列后台(deamon)程序。不同的后台程序扮演不用的角色,这些角色由NameNode、DataNode、Secondary NameNode、JobTracker、TaskTracker组成。其中NameNode、Secondary NameNode、JobTracker运行在Master节点上,而在每个Slave节点上,部署一个DataNode和TaskTracker,以便 这个Slave服务器运行的数据处理程序能尽可能直接处理本机的数据。对Master节点需要特别说明的是,在小集群中,Secondary NameNode可以属于某个从节点;在大型集群中,NameNode和JobTracker被分别部署在两台服务器上。
  
数据存取 - HDFS架构:

Master / Slave(主从结构) - 节点可以理解为物理机器

主节点,只有一个: Namenode
从节点,有很多个: Datanodes


数据运算 - MapReduce架构:

主从结构

主节点,只有一个: JobTracker
从节点,有很多个: TaskTrackers
Hadoop集群示意图:

初识Hadoop两大核心:HDFS和MapReduce

四、HDFS与MapReduce的设计思路:
HDFS:

将文件进行切块处理,再通过文件信息服务器Namenode存放切块的文件信息存放地址,实际存放数据的服务器Datanode存放切块后的数据。

系统默认:每个片块大小为64M,以保证寻址速度;数据会写入3个Datanode中,以保证更高的容错性。

HDFS还设计了Secondary Namenode来更新Namenode,以避免日志文件过大。

HDFS Client帮助Namenode对写入读取数据进行预处理,进行文件的分块与发送读取操作。Namenode负责为数据任务寻址。

MapReduce:

通过JobClient生成任务运行文件,并在JobTracker进行调度指派TaskTracker完成任务。

JobTracker分为把任务文件进行分解并派送到TaskTracker的程序JobinProgress和执行调度器的TaskScheduler。

JobinProgress把作业分解成Map计算和Reduce计算并放置到TaskTracker服务器中。

数据在Hadoop中的流程处理示意图:

初识Hadoop两大核心:HDFS和MapReduce

五、HDFS与MapReduce组件介绍:
HDFS:

HDFS Client:进行文件的分块与文件的发送读取。

Namespace image:记录每个文件的存在位置信息。

Edit log:记录每个文件的位置移动信息。
  
  Namenode(Master):管理着每个文件中各个块所在的数据节点的位置信息。
  
  Secondary Namenode:更新并备份Namenode。
  
  Datanode(Slave):记录着服务器内所储存的数据块的列表。

Secondary Namenode:更新并备份Namenode。

MapReduce:

JobClient:用于把用户的作业任务生成Job的运行包,并存放到HDFS中。

JobinProgress:把Job运行包分解成MapTask和ReduceTask并存放于TaskTracker中。

JobTracker(Master):进行调度管理TaskTracker执行任务。

TaskTracker(Slave):执行分配下来的Map计算或Reduce计算任务。
--------------------- 
作者:丶阿喜z 
来源:CSDN 
原文:https://blog.csdn.net/wuya814070935/article/details/78664674 
版权声明:本文为博主原创文章,转载请附上博文链接!


推荐阅读
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
  • Kylin 单节点安装
    软件环境Hadoop:2.7,3.1(sincev2.5)Hive:0.13-1.2.1HBase:1.1,2.0(sincev2.5)Spark(optional)2.3.0K ... [详细]
  •        在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下:       1、CentOS6.7下安装JDK,地址:http:b ... [详细]
  • 前言折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署 ... [详细]
  • 本文_大数据之非常详细Sqoop安装和基本操作
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了大数据之非常详细Sqoop安装和基本操作相关的知识,希望对你有一定的参考价值。大数据大数据之 ... [详细]
  • HadoopYARN集群是一个通用的资源管理平台,可为各类计算框架提供资源的管理和调度。其核心是通过一个全局的资源管理器来实现分离资源管理与作业调度监控。Hadoop ... [详细]
  • hive的本质是hadoop客户端通过写sql转换成MapReduce提交给yarn、hdfs执行hive的优点操作接口采用类sql语法提供快速开发能力避免了去写MapReduce ... [详细]
  • 不会搭建大数据平台,我被老板优化了...
    不会,搭建,大数,据,平台,我 ... [详细]
  • 【数据结构与算法】——快速排序
    Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,O ... [详细]
  • 前言本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出, ... [详细]
author-avatar
乐天小散_608
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有