Hadoop简介

一、Hadoop 是什么

1)Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构

2)主要解决,海量数据的存储和海量数据的分析计算问题。

3)广义上来说,HADOOP 通常是指一个更广泛的概念——HADOOP 生态圈

二、Hadoop 发展历史

1)Lucene–Doug Cutting 开创的开源软件,用 java 书写代码,实现与 Google 类似的全文搜 索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎

2)2001 年年底成为 apache 基金会的一个子项目

3)对于大数量的场景,Lucene 面对与 Google 同样的困难

4)学习和模仿 Google 解决这些问题的办法 :微型版 Nutch

5)可以说 Google 是 hadoop 的思想之源(Google 在大数据方面的三篇论文)

GFS —>HDFS

​ Map-Reduce —>MR

​ BigTable —>Hbase

6)2003-2004 年,Google 公开了部分 GFS 和 Mapreduce 思想的细节,以此为基础 Doug Cutting 等人用了 2 年业余时间实现了 DFS 和 Mapreduce 机制,使 Nutch 性能飙升

7)2005 年 Hadoop 作为 Lucene 的子项目 Nutch的一部分正式引入 Apache 基金会。2006 年 3 月份,Map-Reduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项 目中

8)名字来源于 Doug Cutting 儿子的玩具大象

9)Hadoop 就此诞生并迅速发展,标志着云计算时代来临

三、Hadoop 三大发行版本

Hadoop 三大发行版本: Apache、Cloudera、Hortonworks。

Apache 版本最原始(最基础)的版本,对于入门学习最好。

Cloudera 在大型互联网企业中用的较多。

Hortonworks 文档较好。

四、 Hadoop 的优势

1)高可靠性:因为 Hadoop 假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。

2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。

3)高效性:在 MapReduce 的思想下,Hadoop 是并行工作的,以加快任务处理速度。

4)高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。

五、Hadoop 组成

1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。

2)Hadoop MapReduce:一个分布式的离线并行计算框架。

3)Hadoop YARN:作业调度与集群资源管理的框架。

4)Hadoop Common:支持其他模块的工具模块(Configuration、RPC、序列化机制、日志 操作)。

Hadoop简介

1. HDFS 架构概述

1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、 文件权限),以及每个文件的块列表和块所在的DataNode等。

2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。

3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

2.YARN 架构概述

1)ResourceManager(rm):处理客户端请求、启动/监控 ApplicationMaster、监控 NodeManager、 资源分配与调度;

2)NodeManager(nm):单个节点上的资源管理、处理来自 ResourceManager 的命令、处理来 自 ApplicationMaster 的命令;

3)ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容 错。

4)Container:对任务运行环境的抽象,封装了 CPU、内存等多维资源以及环境变量、启动 命令等任务运行相关的信息。

Hadoop简介

3. MapReduce 架构概述

MapReduce 将计算过程分为两个阶段:Map 和 Reduce

1)Map 阶段并行处理输入数据

2)Reduce 阶段对 Map 结果进行汇总

Hadoop简介

上图简单的阐明了 map 和 reduce 的两个过程或者作用,虽然不够严谨,但是足以提供 一个大概的认知,map 过程是一个蔬菜到制成食物前的准备工作,reduce 将准备好的材料合 并进而制作出食物的过程。

上一篇:04Hadoop思想与原理


下一篇:toJSON() 方法,将 Date 对象转换为字符串,并格式化为 JSON 数据格式。