Coursera 笔记

Module 02 · Data Science Topics

Big Data Processing Tools: Hadoop, HDFS, Hive, and Spark大数据分析的三大开源技术

Coursera ↗

大数据处理技术致力于处理结构化、半结构化和非结构化数据,以便从中获取价值。Apache Hadoop、Apache Hive 和 Apache Spark 是其中三个关键的开源技术。


1. Apache Hadoop:分布式存储与处理

Hadoop 是一个基于 Java 的开源框架,专为在计算机集群上进行分布式存储和处理大型数据集而设计。

核心概念与优势

  • 集群与节点: 在 Hadoop 分布式系统中,一个节点(node)是一台单独的计算机,多个节点构成一个集群(cluster)。Hadoop 可以从单个节点扩展到任意数量的节点。
  • 优势: 提供了一个可靠、可扩展且成本效益高的解决方案,用于存储无格式要求的数据。
  • 应用场景:
    • 数据整合: 整合包括流式音频、视频、社交媒体情感、点击流数据等新兴数据格式。
    • 实时访问: 为所有利益相关者提供实时、自助服务的访问权限。
    • 成本优化: 通过数据整合和将 “冷数据”(不常用数据)迁移到 Hadoop 系统,优化企业数据仓库的成本。

HDFS:Hadoop 分布式文件系统

Hadoop 分布式文件系统(HDFS)是 Hadoop 的四大核心组件之一,是一种运行在通过网络连接的多台通用硬件上的大数据存储系统。

  • 数据分块与并行: HDFS 通过将大文件分区(partitioning)到多个节点上,实现可扩展和可靠的大数据存储。它将大文件分割成小块,允许并行访问。因此,计算可以在存储数据的每个节点上并行运行。
  • 容错性(Fault-Tolerant): HDFS 默认将文件块复制(replicates)到两台额外的服务器上,以防止数据丢失,确保服务器故障时的可用性。
  • 数据局部性(Data Locality): 这是 HDFS 的一个关键优势,指的是将计算移动到数据所在的节点附近进行处理。这对于大型数据集至关重要,因为它能最大限度地减少网络拥塞并提高吞吐量。
  • 其他优势:
    • 快速从硬件故障中恢复(内置故障检测和自动恢复)。
    • 支持流式数据(高数据吞吐率)。
    • 适应大型数据集(单个集群可扩展到数百个节点)。
    • 高可移植性(兼容多种硬件平台和底层操作系统)。

2. Apache Hive:基于 Hadoop 的数据仓库

Hive 是一种开源数据仓库软件,用于读取、写入和管理直接存储在 HDFS 或 Apache HBase 等其他数据存储系统中的大型数据集文件。

  • 用途: Hive 最适合于数据仓库任务,例如 ETL(提取、转换、加载)、报告和数据分析。
  • 查询方式: 包含工具,允许通过 SQL 轻松访问数据。
  • 局限性:
    • 高延迟: 由于 Hadoop 适用于长顺序扫描,因此基于 Hadoop 的 Hive 查询具有非常高的延迟,不适合需要非常快响应时间的应用。
    • 非事务性: Hive 是基于读取的,不适用于通常涉及高比例写入操作的事务处理。

3. Apache Spark:实时、内存计算框架

Spark 是一种通用数据处理引擎,旨在提取和处理大量数据,适用于广泛的应用,包括交互式分析、流处理、机器学习、数据集成和 ETL。

  • 核心优势:
    • 速度快: 利用内存处理(in-memory processing)显着提高了计算速度,仅在内存受限时才溢出到磁盘。
    • 多语言支持: 提供 Java、Scala、Python、R 和 SQL 等主要编程语言的接口。
    • 高通用性: 可以使用自身的独立集群技术运行,也可以运行在 Hadoop 等其他基础设施之上,并可访问包括 HDFS 和 Hive 在内的各种数据源。
  • 主要用例: 快速处理流式数据和执行实时复杂分析的能力是 Apache Spark 的关键用例。