Coursera 笔记

Module 02 · Introduction to the Hadoop Ecosystem

Introduction to HadoopHadoop 简介

Coursera ↗

欢迎观看《Hadoop简介》视频!通过观看此视频,您将能够:

  • 定义 Hadoop
  • 解释 Hadoop 的历史
  • 列举 Hadoop 作为大数据处理解决方案的原因
  • 概述 Hadoop 的一些挑战

Hadoop 概述 

Hadoop 是一个用于处理庞大数据集的开源框架。让我们从一个场景开始:

  • 假设您有 1GB 数据需要处理,可能是客户销售记录或调查回复。这些数据存储在您桌面计算机或笔记本电脑的关系型数据库中,设备完全能够处理这份数据集,并且您可以轻松查询数据。
  • 随着公司快速发展,数据量增长到 10GB,然后是 100GB。您可能拥有更多客户,甚至接到一个大客户订单,需要处理来自多个数据库的数据。或者,您可能是矿山经理,需要开始处理来自设备(如前端装载机、挖掘机和运输卡车)的大量数据,以及环境数据(如土壤、天气、安全和岩石样本数据)。

当数据量从 1TB 增长到 10TB,再到 100TB 时,您很快会接近本地计算机的处理能力极限。更进一步,您还可能需要处理来自社交平台(如 Facebook 和 Twitter)、传感器等来源的非结构化数据。

在这种情况下,如何处理这些海量数据并提取有用信息?Hadoop 可能就是解决方案。


Hadoop 的定义 

Hadoop 是一套开源程序和过程的集合,可以作为大数据操作的框架。它用于分布式文件系统中处理海量数据。通过在集群上运行应用程序,Hadoop 可以在多个计算机上并行处理任务。集群是多个计算机共同协作执行任务的集合。

需要注意的是,Hadoop 不是一个数据库,而是一个生态系统,能够并行或同时处理多个任务和作业。

Hadoop 处理的数据类型

Hadoop 适用于处理以下几种类型的数据:

  • 结构化数据(如表格数据)
  • 非结构化数据(如图片和视频)
  • 半结构化数据(如日志文件)

并且,它能够在相对便宜的计算机上执行这些任务。


Hadoop 的历史 

在1990年代,随着新千年的到来,互联网迅速扩展,涌现了大量不同结构的数据,需要自动化工具来处理这些差异,并加速网页搜索。

  1. 1999年:Apache 软件基金会成立,作为一个非营利性组织。
  2. 2002年:Doug Cutting 和 Mike Cafarella 创建了 Nutch 网络搜索引擎,旨在处理多个任务,并同时存储和处理分布式数据,快速返回最相关的搜索结果。
  3. 2006年:Cutting 加入 Yahoo,Nutch 项目被分为网页爬虫和分布式处理两部分。分布式处理部分被称为 Hadoop。
  4. 2008年:Yahoo 将 Hadoop 项目提交给 Apache 软件基金会。
  5. 现在,随着数据量的增加,已进入 PB(千兆字节)和 EB(艾字节)级别,大数据已经成为描述数据复杂性的术语。

Hadoop 的核心组件 

Hadoop 包含若干个组件,用于存储和处理数据。常常提到的“Hadoop”指的是 Hadoop 的核心组件以及与之相关的生态系统项目。

核心组件:

  1. Hadoop Common:Hadoop 框架中的基础组件,提供了支持其他 Hadoop 模块的公共工具和库。
  2. HDFS(Hadoop Distributed File System):Hadoop 的存储组件,处理大数据集,并且能够运行在低配置的硬件上(称为商品硬件)。商品硬件是指那些配置较低、行业级的硬件,能够将一个 Hadoop 集群扩展到数百或数千台计算机。
  3. MapReduce:Hadoop 的处理单元,它通过将大量数据拆分成较小的单位,来并行处理数据。
  4. YARN(Yet Another Resource Negotiator):YARN 负责准备 RAM 和 CPU,支持 Hadoop 进行批处理、流处理、交互式处理和图形处理等任务。

Hadoop 的局限性 

虽然 Hadoop 很强大,但它也存在一些缺点,尤其是:

  • 无法处理事务:由于缺乏随机访问能力,Hadoop 不适合处理事务。
  • 不适合非并行任务:当工作不能并行处理或数据之间有依赖关系时,Hadoop 的效率会下降。例如,当记录1必须在记录2之前处理时,就会出现依赖关系。
  • 低延迟数据访问差:低延迟允许在输入被处理和对应的输出之间有极短的延迟,这是实时数据处理非常重要的一部分。
  • 小文件处理差:尽管 Hadoop 可以处理大规模数据,但处理大量小文件时效率低下。
  • 对少量数据的密集计算差:对于少量数据的密集计算,Hadoop 表现不佳。

应对 Hadoop 局限性的新工具 

为了克服这些局限性,开发者构建了新的工具,比如:

  • Hive:提供类似 SQL 的查询功能,并且拥有强大的统计功能。
  • Pig:通过多查询方法,减少了对数据的多次扫描。

总结 

在本视频中,您了解了以下内容:

  • Hadoop 是一个开源框架,用于大数据处理
  • Hadoop 的核心组件包括 HDFS、MapReduce、YARN 和 Hadoop Common
  • Hadoop 的局限性可能超出了它的优点

Hadoop 为处理海量数据提供了有效的框架,但在某些情况下,它也有其局限性。