Hadoop3教程(一):Hadoop的定义、组成及全生态概览

2023-10-13 11:52

本文主要是介绍Hadoop3教程(一):Hadoop的定义、组成及全生态概览,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • (1)定义
    • 1.1 发展历史
    • 1.2 三大发行版本
    • 1.3 Hadoop的优势
    • 1.4 Hadoop的组成
  • (13)HDFS概述
  • (14)Yarn架构
  • (15)MapReduce概述
  • (16) HDFS、YARN、MapReduce三者关系
  • (17)大数据技术生态体系
  • 参考文献

(1)定义

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

分布式,指多台机器共同来完成一项任务。

用途:解决海量数据的存储和分析计算问题

广义上来讲,Hadoop通常是指一个更广泛的概念:Hadoop生态圈。包含了很多基于Hadoop架构衍生发展出来的其他的东西,如HBASE等

1.1 发展历史

创始人Doug Cutting,他最初的目的是为了实现与Google类似的全文搜索功能,于是他在Lucene框架的基础上进行优化升级,查询引擎和索引引擎。

2001年底,Lucene框架称为Apache基金会的一个子项目。

对于海量数据的场景,Lucene同样遇到了跟Google一样的困难:海量数据存储难、海量的检索速度慢。

Doug 模仿Google,提出了一个微型版Nutch来解决这个问题。他基于谷歌提出的三篇论文,分别提出了HDFS、MR、HBase,因为可以认为Google是Hadoop的思想之源。

2006.03,MR和Nutch Distributed File System(NDFS)分别被纳入到了Hadoop项目中,Hadoop正式诞生。

Hadoop这个名字和logo来源于Doug儿子的玩具大象。

1.2 三大发行版本

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

Apache版本,最原始且最基础的版本,非常适用于入门学习,开源,2006年正式提出。

Cloudera版本,在原始版本基础上集成了大量的大数据框架,2008年推出,对应商用产品CDH。

Hortonworks版本,也封装了自己的一套,2011年推出,对应产品HDP。

目前,Hortonworks已经被Cloudera公司收购,推出新的品牌CDP。

后两个版本都是商业收费的。

Cloudera,08年成立,是最早将Hadoop商用的公司,为合作伙伴提供商业解决方案。09年,Hadoop的创始人cutting也加入了该公司。

Hortonworks,2011年成立,主体是雅虎

在这里插入图片描述

1.3 Hadoop的优势

  1. 高可靠性。每份数据都会分布式维护多个副本,即使某台存储服务器出问题,也不会导致数据的丢失。
  2. 高扩展性。可以动态扩展计算节点以支持更庞大的计算需求,而不需要影响现有任务。
  3. 高效性。在MR的指导思想下,Hadoop是并行工作的。以加快任务处理速度。
  4. 高容错性。能够自动的将失败的任务重新分配。比如说某个子任务崩了,这时候会自动将这一计算任务迁移到其他节点重新计算,不影响整体计算。

1.4 Hadoop的组成

Hadoop1.x的组成:

  • common(辅助工具)
  • HDFS(数据存储)
  • MapReduce(计算 + 资源调度):还负责调度计算内存资源等功能。

MR耦合性较大。

在这里插入图片描述

Hadoop2.x的组成:

  • common(辅助工具)
  • HDFS(数据存储)
  • Yarn(资源调度)
  • MapReduce(计算)

可以看到,资源调度和计算已经分离了。

Hadoop3.x跟2.x相比,在组成上没有区别。

在这里插入图片描述

(13)HDFS概述

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

负责海量数据的存储。

NameNode:存储文件的元数据,如文件名、文件目录结构、文件属性、每个文件的块列表以及每个块所在的DataNode,简称叫做nn;

DataNode:是具体存储数据的位置,也负责块数据的校验和。

2NN:辅助NameNode的工作。每隔一段时间对NameNode元数据备份。

(14)Yarn架构

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

YARN的两个核心组成组件:

  • Resource Manager:整个集群的资源的管理者,管理着一个及以上数量的NodeManager;
  • NodeManager:单节点资源的管理者,可能是管理着单台服务器的资源。

NodeManager中,单个任务会被放在一个container中来执行,待执行完成后,就直接释放掉整个container。

客户端提交job到ResourceManager,由ResourceManager负责协调指挥NodeManager们的工作。

客户端可以有多个;集群上可以运行多个ApplicationMaster;每个NodeManager可以有多个Container。

一个contrainer容器分配的内存,是1G~8G,最少一个CPU。

(15)MapReduce概述

负责计算。

将计算过程分成两部分:

  • Map:将大任务分割成一个个小任务,以作并行处理;
  • Reduce:将一个个小任务的运行结果合并作为大任务的运行结果,即对Map的结果进行汇总。

举例说明:

假设我有一万篇笔记,我想找到其中一篇,

如果我自己找的话,需要一个人看完这1w篇笔记;

但是我可以找100个人帮我一起找,把这1w篇笔记分成100组,给那100个人,然后每个人看100篇文档。(这就是Map的过程)

最后每个人再把查的结果反馈给我,我做下汇总,就可以知道我想要找的那篇在哪儿了。这个过程就是Reduce。

在这里插入图片描述

(16) HDFS、YARN、MapReduce三者关系

在这里插入图片描述

觉得需要注意的一点是,client提交任务到YARN的ResourceManager之后,ResourceManager会在任一节点启动一个Container,运行一个App Mstr,这个App Mstr比较重要。

接下来的流程,按我的理解是这样的:

首先App Mstr会计算当前任务运行所需的资源等,并向ResourceManager发出资源申请,告诉它,我需要xx个节点来运行我的任务;

其次当ResourceManager按照App Mstr的要求,为它分配了xx个节点之后,App Mstr会在这些节点上分别启动MapTask进行计算。

最后会在某个节点上启动一个ReduceTask,来汇总各个MapTask的结果。

再最后,ReduceTask的执行结果,可能会写入HDFS的DataNode,做持久化保存。

(17)大数据技术生态体系

在这里插入图片描述

上图举例了一个经典的大数据技术生态体系,从图上来看,

数据来源层,分这么三大类:

  • 结构化数据,如数据库,有行+有列;
  • 半结构化数据,如文件日志,有行+分隔符间隔的列;
  • 非结构化数据,如视频和ppt等。

数据传输层,即分别使用什么方式,来采集不同来源的数据:

  • 结构化数据 -> Sqoop数据传递;
  • 半结构化数据 -> Flume日志收集;
  • 非结构化数据 -> Kafka消息队列(处理结构化和半结构化其实都可以)

数据存储层

  • Sqoop数据传递 + Flume日志收集 -> HDFS文件存储;
  • Flume日志收集 -> HBase非关系型数据库
  • Kafka消息队列,自带文件存储。

资源管理层

  • YARN

数据计算层

  • MapReduce离线计算 -> hive数据查询;
  • Spark Core 内存计算 -> Spark Mlib数据挖掘(基于代码) + Spark SQL数据查询
  • 实时计算 -> Storm实时计算(基本认为是过气了) + Spark Streaming实时计算 + Flink;

任务调度层

  • Oozie任务调度
  • Azkaban任务调度

贯穿各层的,负责数据平台配置和调度的:

  • zookeeper

业务模型层

  • 业务模型、数据可视化、业务应用

图中涉及到的技术名词进行解释:

  • sqoop:sqoop是一款开源工具,主要用于hadoop、hive与传统的数据库(如MySQL)间进行数据传递。可以将关系型数据库中的数据导进Hadoop的HDFS里,也可以将HDFS中的数据通过sqoop导入关系型数据库里;
  • Flume:分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;
  • Kafka:分布式分布订阅消息系统;
  • Spark:当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的数据进行计算;
  • Flink:当前最流行的开源大数据内存计算框架。主要用于实时计算场景;
  • Oozie:是一个管理Hadoop作业的工作流程调度管理系统;
  • Hbase:分布式的、面向列的开源数据库。不同于一般的关系型数据库,Hbase是一个适合于非结构化数据存储的数据库;
  • Hive:基于Hadoop体系的一个数据仓库工具,
    • 可以将结构化的数据文件映射为一张数据库表,如此更加直观的展现HDFS上存储的数据;
    • 提供了简单的SQL查询功能,不需要再直接编写MapReduce任务了,直接使用SQL查询即可,hive会自动将SQL查询转换成对应的MR任务在后台执行,从而大大降低了学习成本,不需要再手写MR代码了,只要学会SQL就可以。十分的适合数据仓库的统计分析。
  • ZooKeeper:是一个针对大型分布式系统的可靠的协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

教程讲到这里还给了一个推荐系统的框架图,以简单的实例来讲解,大数据这些框架是如何结合在一起来解决实际问题的。

参考文献

  1. 【尚硅谷大数据Hadoop教程,hadoop3.x搭建到集群调优,百万播放】

这篇关于Hadoop3教程(一):Hadoop的定义、组成及全生态概览的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/203039

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom