Module 02 · Introduction to the Hadoop Ecosystem
Introduction to HadoopHadoop 简介
欢迎观看《Hadoop简介》视频!通过观看此视频,您将能够:
- 定义 Hadoop
- 解释 Hadoop 的历史
- 列举 Hadoop 作为大数据处理解决方案的原因
- 概述 Hadoop 的一些挑战
Hadoop 概述
Hadoop 是一个用于处理庞大数据集的开源框架。让我们从一个场景开始:
- 假设您有 1GB 数据需要处理,可能是客户销售记录或调查回复。这些数据存储在您桌面计算机或笔记本电脑的关系型数据库中,设备完全能够处理这份数据集,并且您可以轻松查询数据。
- 随着公司快速发展,数据量增长到 10GB,然后是 100GB。您可能拥有更多客户,甚至接到一个大客户订单,需要处理来自多个数据库的数据。或者,您可能是矿山经理,需要开始处理来自设备(如前端装载机、挖掘机和运输卡车)的大量数据,以及环境数据(如土壤、天气、安全和岩石样本数据)。
当数据量从 1TB 增长到 10TB,再到 100TB 时,您很快会接近本地计算机的处理能力极限。更进一步,您还可能需要处理来自社交平台(如 Facebook 和 Twitter)、传感器等来源的非结构化数据。
在这种情况下,如何处理这些海量数据并提取有用信息?Hadoop 可能就是解决方案。
Hadoop 的定义
Hadoop 是一套开源程序和过程的集合,可以作为大数据操作的框架。它用于分布式文件系统中处理海量数据。通过在集群上运行应用程序,Hadoop 可以在多个计算机上并行处理任务。集群是多个计算机共同协作执行任务的集合。
需要注意的是,Hadoop 不是一个数据库,而是一个生态系统,能够并行或同时处理多个任务和作业。
Hadoop 处理的数据类型
Hadoop 适用于处理以下几种类型的数据:
- 结构化数据(如表格数据)
- 非结构化数据(如图片和视频)
- 半结构化数据(如日志文件)
并且,它能够在相对便宜的计算机上执行这些任务。
Hadoop 的历史
在1990年代,随着新千年的到来,互联网迅速扩展,涌现了大量不同结构的数据,需要自动化工具来处理这些差异,并加速网页搜索。
- 1999年:Apache 软件基金会成立,作为一个非营利性组织。
- 2002年:Doug Cutting 和 Mike Cafarella 创建了 Nutch 网络搜索引擎,旨在处理多个任务,并同时存储和处理分布式数据,快速返回最相关的搜索结果。
- 2006年:Cutting 加入 Yahoo,Nutch 项目被分为网页爬虫和分布式处理两部分。分布式处理部分被称为 Hadoop。
- 2008年:Yahoo 将 Hadoop 项目提交给 Apache 软件基金会。
- 现在,随着数据量的增加,已进入 PB(千兆字节)和 EB(艾字节)级别,大数据已经成为描述数据复杂性的术语。
Hadoop 的核心组件
Hadoop 包含若干个组件,用于存储和处理数据。常常提到的“Hadoop”指的是 Hadoop 的核心组件以及与之相关的生态系统项目。
核心组件:
- Hadoop Common:Hadoop 框架中的基础组件,提供了支持其他 Hadoop 模块的公共工具和库。
- HDFS(Hadoop Distributed File System):Hadoop 的存储组件,处理大数据集,并且能够运行在低配置的硬件上(称为商品硬件)。商品硬件是指那些配置较低、行业级的硬件,能够将一个 Hadoop 集群扩展到数百或数千台计算机。
- MapReduce:Hadoop 的处理单元,它通过将大量数据拆分成较小的单位,来并行处理数据。
- 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 为处理海量数据提供了有效的框架,但在某些情况下,它也有其局限性。