01-Hadoop生态介绍

Hadoop生态介绍

一、 大数据概述

1.1 大数据主要处理的问题:

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

1.2 大数据特点 — 4V

  • ( Volume )大量
  • ( Velocity )高速
  • ( Variety )多样:结构、非结构化数据
  • ( Value )低价值密度

二、 Hadoop

2.1 Hadoop是什么

  • Hadoop是一个由Apache基金会所开发的分布式系统基础架构
  • 主要解决海量数据的存储和海量数据的分析计算问题
  • 广义上来说,Hadoop通常是指一个更广泛的概念 ----- Hadoop生态圈
    • Hadoop生态圈有: zookeeper 、 HAMA 、 HBASE 、 HIVE、flume等等

2.2 Hadoop 三大发行版本

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

  • Apache版本最原始(最基础)的版本,对于入门学习最好。(免费)
  • Cloudera内部集成了很多大数据框架。对应产品CDH。 (每年每个节点10000美元)
    • 官网地址:https://www.cloudera.com/downloads/cdh/5-10-0.html
    • 下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/
    • Hadoop的创始人Doug Cutting也加盟Cloudera公司
  • Hortonworks文档较好。对应产品HDP。
    • 官网地址:https://hortonworks.com/products/data-center/hdp/
    • 下载地址:https://hortonworks.com/downloads/#data-platform
    • Hortonworks目前已经被Cloudera公司收购
    • 特点:有专门研究Hadoop的开发团队

2.3 Hadoop的优势 — 4高

高可靠性

Hadoop底层维护多个数据副本,一台机器维护一个副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。

高扩展性

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

高效性

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

高容错性

能够自动将失败的任务重新分配

2.4 Hadoop组成对比

  • hadoop1.x
    • MapReduce ( 计算+ 资源调度 )
    • HDFS 分布式文件系统 ( 数据存储 )
    • common 辅助工具
  • hadoop2.x / 3.x (2.x 和 3.x 的组成结构没有区别)
    • MapReduce ( 计算 )
    • HDFS 分布式文件系统 ( 数据存储 )
    • common 辅助工具
    • Yarn 资源调度管理 资源指的是内存(主要),磁盘,网络,cpu等

在1.x时代中,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大,不符合低耦合的理念;在2.x后就增加了Yarn专门负责资源的调度,让MapReduce只负责运算

三、 Hadoop组成

3.1 HDFS架构

由多台机器共同组成的分布式文件系统(HDFS)。例如:集群中有三台机器,每台机器都是50G的存储容量, 那么HDFS总容量是150G。

(1)**NameNode ** ( nn )

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

元数据: 描述数据的数据,例如对书本的介绍,这本书的名称、作者、销量、出版时间等信息就是元数据。

(2)DataNode ( dn )

在本地文件系统存储文件块数据,以及块数据的校验和

DataNode存放的就是书本的全部具体内容

(3)Secondary NameNode ( 2nn ) — 辅助nn的工作

作用:每隔一段时间对 NameNode 元数据备份

**2nn并不具备nn的功能,只能用于辅助nn的工作,帮nn减轻压力。**就好比,2nn是nn的秘书

注意:2nn并不是第二个nn,并且可以有3nn、4nn意思同2nn一样。

思考:在一个HDFS中, nn 、 dn 、 2nn可以有几个?

**在一个集群中(非高可用集群):nn(1个) dn(多个) 2nn(1个)**

3.2 Yarn架构

(1)ResourceManager ( RM ) — 整个集群的管理者 — 经理

  • 处理客户端请求
    • client客户端发送job,RM接收job并为job启动AM
  • 监控NodeManager
  • 启动监控ApplicationMaster
  • 资源的分配与调度

(2)NodeManager ( NM ) — 集群中的每台机器的管理者 — 组长

  • 管理单个节点上的资源
  • 处理来自ResourceManager的命令
  • 处理来自ApplicationMaster的命令

(3)ApplicationMaster ( AM ) —处理命令的执行者 —技术员

  • 负责数据的切分
  • 为应用程序申请自愿并分配给内部的任务
  • 任务的监控与容错

一个job对应一个AM

(4)Container — 资源的容器

  • 对多维度资源的封装
  • 方便资源管理
  • 防止资源被占用

Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存CPU、磁盘、网络等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f4JT403S-1631607468587)(E:\markdowns\Markdown笔记\Hadoop笔记\imgs\Hadoop生态介绍\yarn架构.jpg)]

过程: 客户向经理提交了一个请求,经理将客户的需求交给了组长,组长挑选一名技术员负责这个需求,这名技术员了解需求后向上级申请资源,得到经理的批准后处理需求。

3.3 MapReduce架构

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

  1. Map 阶段 (MapTask): 并行处理输入数据(将数据分发到多台机器中)
  2. Reduce 阶段(ReduceTask):对 Map 结果进行汇总(将多台机器在Map阶段计算出的数据,进行整体汇总)
  3. shuffle机制: 范围在Map后半段 到 Reduce前半段

四、 大数据技术生态体系

在这里插入图片描述

名词解释:

  1. Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
  2. Flume:Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;
  3. Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统;
  4. Storm:Storm用于“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。
  5. Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。
  6. Flink:Flink是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
  7. Oozie:Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。
  8. Hbase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
  9. Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
    . Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
  10. ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
flink-shaded-hadoop3和flink-shaded-hadoop3-uber是Apache Flink项目中与Hadoop 3.x版本集成相关的两个模块。 首先,Hadoop是一个分布式计算框架,用于处理大规模数据。而Flink是一个快速而可扩展的流式处理引擎,它可以在实时和批处理任务之间无缝切换。为了与Hadoop集成,并且能够在Flink中使用Hadoop生态系统的各种功能和工具,例如HDFS、YARN和MapReduce等,Flink提供了与Hadoop版本兼容的特殊模块。 flink-shaded-hadoop3模块是Flink所提供的一个可防止与Hadoop 3.x版本依赖冲突的模块。在Flink应用程序中,当需要使用Hadoop 3.x相关功能时,可以将flink-shaded-hadoop3模块添加到项目的依赖中。该模块会将特定版本的Hadoop 3.x依赖项重新打包,以避免与Flink自身或其他依赖项产生冲突。这样一来,Flink就能够与Hadoop 3.x版本协同工作,平滑地使用Hadoop的功能。 而flink-shaded-hadoop3-uber模块则是更加完整和庞大的用于集成Hadoop 3.x版本的模块。它将包含Hadoop 3.x依赖的所有必需库和资源等,以便于使用和编译。相比于flink-shaded-hadoop3模块,flink-shaded-hadoop3-uber模块更像是一个“全能版”,其中包含了实现与Hadoop 3.x版本深度集成所需的所有组件。这使得开发人员能够方便地构建和部署Flink应用程序,并且在与Hadoop生态系统进行交互时更加方便。 总的来说,flink-shaded-hadoop3和flink-shaded-hadoop3-uber模块都是Flink为了与Hadoop 3.x版本无缝集成,提供的两个特殊模块。它们通过重新打包Hadoop依赖,解决了可能产生的冲突问题,使得Flink能够顺利使用并利用Hadoop的功能和工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值