Hadoop 3.x(入门)----【Hadoop概述】

发布于:2022-12-31 ⋅ 阅读:(317) ⋅ 点赞:(0)

1. Hadoop是什么

  1. Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。
  2. 主要解决,海量的数据存储和海量数据的分析计算问题。
  3. 广义上来说,Hadoop 通常是指一个更广泛的概念 ---- Hadoop 生态圈

在这里插入图片描述

2. Hadoop发展历史(了解)

  1. Hadoop 创世人 Doug Cutting,为了实现与 Google 类似的全文搜索功能,他在 Lucene 框架基础上进行优化升级,查询引擎和索引引擎。
    在这里插入图片描述

  2. 2001 年年底 Lucene 称为 Apache 基金会的一个子项目。

  3. 对于海量数据的场景,Lucene 框架面对与 Google 同样的困难,存储海量数据困难,检索海量速度慢

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

  5. 可以说 Google 是 Hadoop 的思想之源(Google 在大数据方面的三篇论文)
    在这里插入图片描述

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

  7. 2005 年Hadoop 作为 Lucene的子项目 Nutch的一部分正式引入Apache基金会。

  8. 2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS)分别被纳入到 Hadoop 项目中,Hadoop就此正式诞生,标志着大数据时代来临。

  9. 名字来源于Doug Cutting儿子的玩具大象
    在这里插入图片描述

3. Hadoop三大发行版本(了解)

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

  1. Apache Hadoop
    在这里插入图片描述

官网链接:https://hadoop.apache.org/

  1. Cloudera Hadoop

官网链接:https://www.cloudera.com/downloads/cdh

  1. Hortonworks Hadoop
    官网链接:https://hortonworks.com/products/data-center/hdp/

4. Hadoop优势(4高)

  1. 高可靠性:Hadoop 底层维护了多个数据副本,所以即使 Hadoop 某个计算元素或存储出现故障,也不会导致数据的丢失。
    在这里插入图片描述
  2. 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
    在这里插入图片描述

Hadoop 可以在保证其他服务器不受影响的条件下,增加新的服务器

  1. 高效性:在 MapReduce 的思想下,Hadoop 是并行工作的,以加快任务的处理速度。
    在这里插入图片描述

  2. 高容错性:能够自动将失败的任务重新分配
    在这里插入图片描述

5. Hadoop组成(重点)

在这里插入图片描述

在 Hadoop 1.x 时代,Hadoop 中的 MapReduce 同时处理业务逻辑运算和资源点的调度,耦合性较大。
在 Hadoop 2.x 时代,增加了 Yarn。Yarn 只负责资源的调度,MapReduce 只负责运算。
Hadoop 3.x 在组成上与 Hadoop 2.x 相比较,没有任何变化。

1. HDFS架构概述

Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。

  1. NameNode(nn):存储文件的元数据,如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的 DataNode 等。
  2. DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
  3. Seconddary NameNode(2nn):每隔一段时间对 NameNode 元数据备份。

2. YARN架构概述

Yet Another Resource Negotiator 简称 YARN,另一种资源协调者,是 Hadoop 的资源管理器。

  1. ResourceManager(RM):整个集群资源(内存、CPU等)的老大
  2. NodeManager(MM):单个节点服务器资源老大
  3. ApplicationMaster(AM):单个任务运行的老大
  4. Container:容器,相当一台独立的服务器,里面封装了任务运行所需的资源,如内存、CPU、磁盘、网络等。

在这里插入图片描述

说明1:客户端可以有多个
说明2:集群上可以运行多个 ApplicationMaster
说明3:每个 NodeManager 上可以有多个 Container

3. MapReduce框架概述

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

  1. Map 阶段并并处理输入数据
  2. Reduce 阶段对 Map 结果进行汇总

在这里插入图片描述

4. HDFS、YARN、MapReduce三者关系

在这里插入图片描述

6. 大数据技术生态体系

在这里插入图片描述

1)Sqoop:Sqoop 是一款开源的工具,主要用于在 Hadoop、Hive 与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到 Hadoop 的HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。
2)Flume:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据。
3)Kafka:Kafka 是一种高吞吐量的分布式发布订阅消息系统。
4)Spark:Spark 是当前最流行的开源大数据内存计算框架。可以基于 Hadoop 上存储的大数据进行计算。
5)Flink:Flink 是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
6)Oozie:Oozie 是一个管理 Hadoop 作业(job)的工作流程调度管理系统。
7)Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
8)Hive:Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行。其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析。
9)ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

7. 推荐系统框架图

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到