资讯

展开

Hadoop基础总结

作者:快盘下载 人气:

一、Hadoop是什么

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

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

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

Hadoop基础总结

二、Hadoop发展历史

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

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

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

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

5)Hadoop的思想之源:Google在大数据方面的三篇论文

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

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

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

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

三、Hadoop思想

1、思考案例

1T的数据如何实现秒级别的计算?

回答:分布式并行计算,数据向计算移动

2、Hadoop思想之源:Google

主要是面对海量的数据和计算难题

2.1Google三驾马车

1)存储:GFS

核心功能

存储数据-分布式文件系统并发写入-顺序写入

不足与缺陷

缺乏高可用性“至少一次”的弱一致性

2)计算:MapReduce

核心功能

数据本地化的并行计算系统容错和自动恢复

不足与缺陷

计算模型简单海量硬盘读写

3)在线服务:Bigtable

核心功能

在线服务高性能随机读写自动调度和分片

2.2开源技术

1)GFS对应HDFS

分布式存储系统

提供了高可靠性、高扩展性和高吞吐率的数据存储服务

2)Map-Reduce对应MapReduce

分布式计算框架(计算向数据移动)

具有易于编程、高容错性和高扩展性等优点

3)Bigtable对应HBase

四、Hadoop设计思想

分布式存储和计算

分而治之:并行计算

计算向数据移动

五、Hadoop三大发行版本

1)Apache、Cloudera、Hortonworks

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

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

4)Hortonworks文档较好

六、Hadoop优势

高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失

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

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

高容错性:能够自动将失败的任务重新分配

七、Hadoop组成

1、概述

1.1Hadoop 1.X组成

HDFSMapReduceCommon

1.2Hadoop 2.X和Hadoop 3.X组成

HDFSMapReduceYARNCommon

1.3HDFS

一个高可靠、高吞吐量的分布式文件系统

1.4MapReduce

一个分布式的离线并行计算框架

1.5YARN

资源调度平台,负责作业调度与集群资源管理的框架

1.6Common

Hadoop体系最底层的一个模块,为Hadoop各子项目提供支持其他模块的工具模块,如:配置文件和日志操作等。

2、HDFS架构概述

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

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

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

3、MapReduce架构概述

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

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

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

hadoop

4、YARN架构概述

hadoop

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

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

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

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

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!