Hadoop总结——Hadoop基础

大数据 创建于:2023-05-28

一、Hadoop是什么

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

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

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

Hadoop总结——Hadoop基础_mapreduce

二、Hadoop发展历史

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

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

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

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

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

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儿子的玩具大象

Hadoop总结——Hadoop基础_mapreduce_02

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

三、Hadoop思想

1、思考案例

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

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

2、Hadoop思想之源:Google

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

2.1 Google三驾马车

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.1 Hadoop 1.X组成

  1. HDFS
  2. MapReduce
  3. Common

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

  1. HDFS
  2. MapReduce
  3. YARN
  4. Common

1.3 HDFS

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

1.4 MapReduce

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

1.5 YARN

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

1.6 Common

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

2、HDFS架构概述

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

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

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

3、MapReduce架构概述

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

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

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

Hadoop总结——Hadoop基础_mapreduce_03

4、YARN架构概述

Hadoop总结——Hadoop基础_mapreduce_04

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

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

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

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

原文地址:https://blog.51cto.com/u_15553407/5827288

免责声明:本文来源于互联网,版权归合法拥有者所有,如有侵权请公众号联系管理员

* 本站提供的一些文章、资料是供学习研究之用,如用于商业用途,请购买正版。

蓦然1607