【Hadoop】Hadoop是什么?

一.Hadoop产生背景

1. 传统技术的局限性

在 Hadoop 出现之前,传统的数据处理技术(如关系型数据库)存在以下问题:

  • 扩展性差:传统数据库难以扩展到多台机器,无法处理 PB 级数据。

  • 成本高:传统解决方案需要昂贵的硬件和软件支持。

  • 容错性差:硬件故障时,数据容易丢失,恢复成本高。

  • 计算能力不足:单机计算能力有限,无法快速处理大规模数据。

为了解决互联网时代数据爆炸带来的存储和处理问题,Doug Cutting 和 Mike Cafarella受到 Google 的 GFS(Google File System)和 MapReduce论文的启发,开发了Hadoop,并将其贡献给 Apache 软件基金会。

Hadoop 是一个开源的分布式计算框架,用于存储和处理大规模数据集。核心设计思想是将数据分布式存储在多台机器上,并通过并行计算的方式高效处理这些数据。

二.Hadoop 的核心组件

  • HDFS(HadoopDistributed File System):分布式文件系统,解决大规模数据存储和高吞吐量访问。
  • MapReduce:分布式计算框架,用于并行处理大规模数据集。
  • YARN**(Yet Another Resource Negotiator)**:负责集群资源的统一管理和调度。

除了核心组件,Hadoop 还有一个丰富的生态系统,扩展了 Hadoop 的功能和应用场景,包括以下工具:Pig、Chukwa、Hive、HBase、ZooKeeper、Core、Avro。

三.Hadoop的优势

1.高容错性:HDFS 将数据自动复制到多个节点(默认 3 份),即使某个节点发生故障,数据也不会丢失。MapReduce 框架在任务失败时会自动重新调度,确保计算任务的完成。

  1. 高扩展性:横向扩展------Hadoop 可以在普通硬件上运行,并支持扩展到数千台机器,处理 PB 级甚至 EB 级数据。

  2. 低成本

普通硬件:Hadoop 可以在廉价的商用硬件上运行,降低了硬件成本。

开源软件:Hadoop 是开源软件,无需支付高昂的许可费用。

  1. 高吞吐量

流式数据访问:HDFS 适合处理大规模数据,支持高吞吐量的数据访问。

计算向数据移动:MapReduce将计算任务分发到存储数据的节点上,减少了数据传输开销。

  1. 灵活性

多种数据格式:Hadoop 支持结构化、半结构化和非结构化数据。

丰富的生态系统:Hadoop 生态系统提供了多种工具(如 Hive、HBase、Spark 等),满足不同的数据处理需求。

  1. 适合批处理

大规模数据处理:Hadoop 特别适合处理离线批处理任务,如日志分析、数据挖掘等。

四.Hadoop 的不足

  1. 不适合实时处理

高延迟:Hadoop 的设计目标是批处理,不适合实时或低延迟的场景。

流处理能力有限:虽然可以通过工具(如 Spark Streaming)实现流处理,但原生 Hadoop 的流处理能力较弱。

  1. 小文件问题

NameNode 内存压力:HDFS 不适合存储大量小文件,因为每个文件都会占用 NameNode 的内存。大量小文件会导致 MapReduce 任务的性能下降。

  1. 复杂性

配置和管理复杂:Hadoop 的配置和管理相对复杂,需要一定的技术能力。初学者需要花费较长时间学习 Hadoop 的核心概念和生态系统工具。

  1. 资源利用率低

批处理模式:MapReduce 的批处理模式可能导致资源利用率较低,尤其是在处理小规模数据时。

任务启动开销:MapReduce 任务的启动和调度开销较大,不适合短时间任务。

  1. 数据一致性

HDFS 采用最终一致性模型,可能导致数据在短时间内不一致。

  1. 生态系统碎片化

工具繁多:Hadoop 生态系统包含大量工具(如 Hive、HBase、Spark 等),选择合适的工具和版本可能具有挑战性。不同工具之间的兼容性问题可能导致部署和维护困难。

相关推荐
链上日记11 小时前
AIOT定义Web3健康新纪元:从智能硬件到健康金融
大数据
一人の梅雨11 小时前
大麦网关键词列表接口的产业级实现:从演出聚合到市场趋势预测的全维度技术方案
大数据·数据库·人工智能
斯班奇的好朋友阿法法12 小时前
rabbitmq服务端消费端实例(direct和fanout模式)
分布式·rabbitmq·ruby
斯班奇的好朋友阿法法12 小时前
rabbitmq的多交换机(扇出为例)监听实现
分布式·rabbitmq·ruby
自由自在的小Bird12 小时前
TDengine
大数据·时序数据库·tdengine
没有bug.的程序员12 小时前
分布式架构未来趋势:从云原生到智能边缘的演进之路
java·分布式·微服务·云原生·架构·分布式系统
武话不港112 小时前
RabbitMQ异常,handleDelivery方法异常
分布式·消息队列·rabbitmq
^Moon^17 小时前
CycloneDDS:跨主机多进程通信全解析
c++·分布式·dds
长安城没有风21 小时前
从入门到精通【Redis】Redis 典型应⽤ --- 分布式锁
数据库·redis·分布式
言之。1 天前
大模型嵌入 vs ES:语义搜索与关键字搜索
大数据·elasticsearch·搜索引擎