Hadoop简介

目录

Hadoop

狭义解释

广义解释

Hadoop不同版本

Hadoop与云计算

Hadoop与Spark

Hadoop与RDBMS

Hadoop集群简介


Hadoop

狭义解释

Apache的一个用Java语言实现的开源软件框架,是一个存储和计算大规模数据的软件平台。

核心组件

HDFS(分布式文件系统):解决海量数据存储

MapReduce(分布式运算编程框架):解决海量数据计算

YARN(作业调度和集群资源管理的框架):解决资源任务调度

广义解释

Hadoop通常是指Hadoop生态圈,由很多大数据组件构建而成。

包括:Linux、zookeeper、Hadoop、hive、hbase、redis、elk、kadka、java、scala、python、impala、kudu、spark、flink、相关工具等

Hadoop不同版本

  • 1.x

mapreduce:数据计算;资源管理

hdfs:数据存储,自动备份

  • 2.x

mapreduce:数据计算

yarn:资源管理

hdfs:数据存储

hdfs:

NameNode:集群中的主节点,主要用于管理集群当中的各种数据

SecondaryNameNode:主要用于Hadoop中元数据信息的辅助管理

元数据:描述数据属性的信息,用来支持(如指示存储位置、历史数据、资源查找、文件记录)等功能。

DataNode:集群中的从节点,主要用于存储集群当中的各种数据

yarn:

ResourceManager:接受用户的计算请求任务,负责集群的资源分配

NodeManager:执行主节点分配的任务

mapreduce:

MapReduce是一个计算框架,map负责分布式计算,reduce负责将分布式计算的结果合并

MapReduce计算需要的数据和产生的结果需要HDFS来进行存储

MapReduce的运行需要由Yarn集群来提供资源调度

  • 3.x

架构和2.x一样,性能做了优化

Hadoop与云计算

Hadoop是实现大数据处理的一种具体技术,而云计算是提供各种服务的一种商业模式和技术范式。

云计算是什么

云计算是一种通过互联网按需提供计算资源(如服务器、存储、数据库、网络、软件)等的模式,无需自建。

云计算特点

  • 按需提供服务:用户可自行配置所需的计算能力
  • 宽带网络访问:服务支持各种标准设备访问,如手机、笔记本
  • 资源池化:供应商的计算资源被集中起来,通过多租户模式服务多个用户
  • 高可伸缩性:资源能够快速、弹性地供应和释放
  • 可量化服务:云系统自动控制和优化资源使用,并提供透明的计量信息
  • 大规模:服务通常由遍布全国甚至全球的超大规模数据中心支撑
  • 服务廉价:规模效应和资源复用,成本低

云计算的3种运营模式

  • laaS(基础设施即服务):提供最基础的计算资源,如虚拟机、存储空间、网络。比如阿里云ECS、亚马逊AWS
  • PaaS(平台即服务):提供软件开发和运行所需的平台和环境,包括操作系统、数据库、Web服务器。用户只需关注自己的应用程序开发,例如Google App Engine
  • SaaS(软件即服务):通过互联网提供完整的应用程序。用户直接使用软件,无需底层任何基础设施。例如Gmail、钉钉

联系

我们可以在云服务商提供的laaS(比如虚拟机集群)上轻松部署Hadoop,也可以用PaaS级的Hadoop服务。

Hadoop与Spark

Spark并非要取代Hadoop,而是作为Hadoop生态种一个更快的计算引擎,与HDFS和YARN组件协同工作。

Spark是什么

Spark是一个专为大规模数据处理而设计的快速、通用的分布式计算引擎。可以看作是MapReduce的继承和加强。

Spark特点

  • 运行速度快:通过内存计算和优化的执行引擎,速度比MapReduce快很多
  • 易用性:提供了丰富的API(支持Java、Scala、Python、R),拥有高级工具库(如Spark SQL用于结构化数据处理,MLlib用于机器学习)
  • 支持复杂查询:支持如机器学习和交互式查询等更复杂的数据处理流程
  • 实时流处理:Spark Streaming库能够进行微批次的流数据处理,而Hadoop本身只支持批处理
  • 容错性:通过弹性分布式数据集(RDD)实现了高效的容错机制

区别与联系

联系:

  • Spark可以与Hadoop生态系统协作,可以运行在YARN上
  • Spark可以从HDFS种读取数据并写回HDFS
  • 两者都是用于解决大规模数据存储和计算问题的分布式系统

区别:

  • 处理方式:MapReduce是磁盘级批处理,每个中间步骤都要写入磁盘,速度慢。Spark是内存级计算,中间结果优先存于内存,速度快
  • 流处理能力:Spark有内置的流处理模块,而Hadoop需要借助其他框架实现(如Flink)
  • 易用性:Spark的API更高级、简介,开发效率更高

Hadoop与RDBMS

RDBMS是什么

关系型数据库管理系统,是一种基于关系模型来管理和组织数据的软件,如MySQL、Oracle、SQL Server。

RDBMS的特点

  • 二维表结构:数据以行和列的形式存储在表中,结构清晰,容易理解
  • SQL语言:使用标准化的SQL语言进行数据操作和查询,功能强大且使用方便
  • 易于维护:提供了事务、索引、完整性约束等机制,保证了数据的一致性和安全性
  • 实时响应:适用于高并发、低延迟的在线事务处理

区别与联系

联系:

  • 两者都是数据管理和处理系统
  • Hive运行在Hadoop上,可以将SQL转换为MapReduce任务执行,让熟悉SQL的用户也能使用Hadoop

区别:

  • 数据规模与类型:RDBMS适合结构化数据,GB到TB级别;Hadoop适合结构化、半结构化、非结构化数据,TB或PB级别
  • 读写模式:RDBMS支持频繁、小批量的增删改查,读写延迟低;Hadoop更适合一次写入、多次读取的批处理模式,写延迟高,读吞吐量大
  • schema(模式):RDBMS是写时模式,在写入数据前必须严格定义好表结构;Hadoop是读时模式,数据存储时不需要预先定义结构,而是在读取数据时再进行解析,灵活性高
  • 扩展性:RDBMS通常采用纵向扩展,提高单机性能,成本高有上限;Hadoop采用横向扩展,通过廉价的普通服务器来线性扩展集群能力,成本低且理论无上限

Hadoop集群简介

Hadoop集群

包括HDFS集群和YARN集群,两者逻辑上分离,物理上在一起

HDFS集群:NameNode、DataNode、SecondaryNameNode

YARN集群:ResourceManager、NodeManager

集群规划

伪分布式模式(又叫单节点集群)

1个机器上运行HDFS的NameNode和DataNode、YARN的ResourceManger和NodeManager,主要用于学习和调试。

完全分布式模式

使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同机器上。

tips:

有冲突和工作依赖的尽量不要部署在一起;

nodemanager和datanode要在一起,后续扩容集群也是增加这两个角色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值