Hadoop生态系统基本介绍
Hadoop是一个搭建在廉价PC上的分布式集群系统架构,它具有高可用性、高容错性和高可扩展性等优点。由于它提供了一个开放式的平台,用户可以在完全不了解底层实现细节的情形下,开发适合自身应用的分布式程序。
二、Hadoop的整体框架
Hadoop由HDFS、MapReduce、HBase、Hive和ZooKeeper等成员组成,其中最基础最重要的两种组成元素为底层用于存储集群中所有存储节点文件的文件系统HDFS(Hadoop Distributed File System)和上层用来执行MapReduce程序的MapReduce引擎。
三、Hadoop的核心设计
3.1 HDFS
HDFS是一个高度容错性的分布式文件系统,可以被广泛的部署于廉价的PC之上。它以流式访问模式访问应用程序的数据,这大大提高了整个系统的数据吞吐量,因而非常适合用于具有超大数据集的应用程序中。
HDFS的架构如下图所示。HDFS架构采用主从架构(master/slave)。一个典型的HDFS集群包含一个NameNode节点和多个DataNode节点。NameNode节点负责整个HDFS文件系统中的文件的元数据保管和管理,集群中通常只有一台机器上运行NameNode实例,DataNode节点保存文件中的数据,集群中的机器分别运行一个DataNode实例。在HDFS中,NameNode节点被称为名称节点,DataNode节点被称为数据节点。DataNode节点通过心跳机制与NameNode节点进行定时的通信。
可以看作是分布式文件系统中的管理者,存储文件系统的meta-data,主要负责管理文件系统的命名空间,集群配置信息,存储块的复制。
是文件存储的基本单元。它存储文件块在本地文件系统中,保存了文件块的meta-data,同时周期性的发送所有存在的文件块的报告给NameNode。
就是需要获取分布式文件系统文件的应用程序。
下面来看看在HDFS上如何进行文件的读/写操作:
文件写入:
1. Client向NameNode发起文件写入的请求
2. NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。
3. Client将文件划分为多个文件块,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。
文件读取:
1. Client向NameNode发起文件读取的请求
2. NameNode返回文件存储的DataNode的信息。
3. Client读取文件信息。
3.2 MapReduce
MapReduce是一种编程模型,用于大规模数据集的并行运算。Map(映射)和Reduce(化简),采用分而治之思想,先把任务分发到集群多个节点上,并行计算,然后再把计算结果合并,从而得到最终计算结果。多节点计算,所涉及的任务调度、负载均衡、容错处理等,都由MapReduce框架完成,不需要编程人员关心这些内容。
下图是一个MapReduce的处理过程:
用户提交任务给JobTracer,JobTracer把对应的用户程序中的Map操作和Reduce操作映射至TaskTracer节点中;输入模块负责把输入数据分成小数据块,然后把它们传给Map节点;Map节点得到每一个key/value对,处理后产生一个或多个key/value对,然后写入文件;Reduce节点获取临时文件中的数据,对带有相同key的数据进行迭代计算,然后把终结果写入文件。
如果这样解释还是太抽象,可以通过下面一个具体的处理过程来理解:(WordCount实例) Hadoop的核心是MapReduce,而MapReduce的核心又在于map和reduce函数。它们是交给用户实现的,这两个函数定义了任务本身。
- map函数:接受一个键值对(key-value pair)(例如上图中的Splitting结果),产生一组中间键值对(例如上图中Mapping后的结果)。Map/Reduce框架会将map函数产生的中间键值对里键相同的值传递给一个reduce函数。
- reduce函数:接受一个键,以及相关的一组值(例如上图中Shuffling后的结果),将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)(例如上图中Reduce后的结果)
但是,Map/Reduce并不是万能的,适用于Map/Reduce计算有先提条件:
①待处理的数据集可以分解成许多小的数据集;
②而且每一个小数据集都可以完全并行地进行处理;
若不满足以上两条中的任意一条,则不适合使用Map/Reduce模式.
(另:Hadoop安装请见原作者教程)
作者:周旭龙
出处:http://www.cnblogs.com/edisonchou/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
Hadoop生态系统基本介绍相关推荐
- Hadoop生态系统全面介绍
Hadoop作为大数据的分布式计算框架,发展到今天已经建立起了很完善的生态,本文将一一介绍基于Hadoop生态的一系列框架和组件. Flume 简介: Flume 是一个分布式.高可用的服务,用于高效 ...
- Hadoop生态系统的详细介绍
hadoop生态系统的详细介绍 简介 Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算.今 ...
- hadoop生态系统的详细介绍-详细一点
前提 日常喜欢看一些微信分享的好文,总结下来,可以作为过滤器吧(节约更多人的时间!),在这里引用的是别人的文章!对原文的作者表示感谢!确实写的很好! hadoop生态系统的详细介绍 简介 Hadoop ...
- GitChat · 大数据 | 一步一步学习大数据:Hadoop 生态系统与场景
目录(?)[-] Hadoop概要 Hadoop相关组件介绍 HDFS Yarn Hive HBase Spark Other Tools Hadoop集群硬件和拓扑规划 硬件配置 软件配置 Hado ...
- 手把手教你搭建Hadoop生态系统伪分布式集群
Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 手把手教你搭建Hadoop生态 ...
- 阿里巴巴飞天大数据架构体系与Hadoop生态系统
很多人问阿里的飞天大数据平台.云梯2.MaxCompute.实时计算到底是什么,和自建Hadoop平台有什么区别. 先说Hadoop 什么是Hadoop? Hadoop是一个开源.高可靠.可扩展的分布 ...
- 大数据学习笔记:Hadoop生态系统
文章目录 一.Hadoop是什么 二.Hadoop生态系统图 三.Hadoop生态圈常用组件 (一)Hadoop (二)HDFS (三)MapReduce (四)Hive (五)Hbase (六)Zo ...
- 【大数据】Hadoop生态系统及其组件
Hadoop 生态系统及其组件 1.Hadoop 生态系统的组成 本篇文章将向大家介绍 Hadoop 生态系统的不同组件.也正是因为这些组件,使得 Hadoop 如此强大.通过学习 HDFS 和 HD ...
- Hadoop回顾:(一)Hadoop生态系统简介
首先我们先了解一下Hadoop的起源.然后介绍一些关于Hadoop生态系统中的具体工具的使用方法.如:HDFS.MapReduce.Yarn.Zookeeper.Hive.HBase.Oozie.Ma ...
最新文章
- OpenCV使用filter2D函数填充线性滤波器的实例(附完整代码)
- 【机器视觉】 case算子
- 将Java程序作成exe文件的几种方法【转载】
- 用委托实现窗体间传值
- 刷题≠学好数学,近百位名校名师告诉你,数学是怎么学好的?
- oracle查询大小写敏感参数,让Oracle 大小写敏感 表名 字段名 对像名
- 时序图 分支_UML用例图
- 排序算法专题-插入排序
- 物流快递管理系统源码
- (88)信号发生器实现方法?三角波、方波、锯齿波,正弦波
- 学生计算机游戏代码,给计算机学院的学幼们贴一些游戏代码
- Git 笔记 - 程序员都要掌握的 Git
- Unity粒子系统——简易特效制作(二)
- How to root android Oppo A11w,OPPO A11(移动4G)一键ROOT图文详细教程
- 【苹果群发】苹果推iMessage接口筛选应用程序利用密钥箱生成CSR文书
- 5G笔记| 概述:5G网络架构(NSA/SA组网)、无线资源控制RRC、语音通话
- jQuery绑定一次性事件和注销事件
- K-Means 聚类算法C语言代码实现
- C语言学习笔记——输入五个国家的名称,按字母顺序排列输出
- 忘记ios访问限制密码
热门文章
- “5步”做好研发效能度量,打造研发管理闭环
- 【通俗理解】RBF网络
- Multisim基础 网络名称 整理混乱的电路图
- AMD的CPU运行Matlab软件进行神经网络运算时总是出现闪退问题及解决方法
- linux 装浏览器教程,在Linux操作系统上安装Midori浏览器的方法
- Dreamweaver (DW)结合 Tomcat 服务器 搭建动态jsp 站点
- mybatis xml转义问题
- python decode方法_Python中decode()方法有哪些功能?
- linux查看防火墙有没关闭了,linux查看防火墙是否关闭的实例方法
- [2014.5.13][Ubuntu] Ubuntu 14.04STL 出现NTFS分区无法访问的问题