目录
导语
通过现实生活的例子,我们看到组织如何利用Hadoop获得洞察、做出明智决策并推动创新。
大数据和Hadoop简介
大数据的三个V
-
量volume
-
速度velocity
-
多样性variety
Hadoop生态
组件 | 简化描述 |
---|---|
Hadoop分布式文件系统(HDFS) | Hadoop的主要存储系统,处理大量数据并提供容错能力。 |
MapReduce | Hadoop的处理框架,用于实现并行和分布式数据处理。 |
资源协调器 (YARN) | Hadoop的资源管理和作业调度框架,负责资源分配。 |
Hadoop通用模块 | 包含支持Hadoop生态系统的库和工具。 |
Hadoop生态系统工具 | 包括增强Hadoop功能的工具和框架,如Apache Hive, Apache Pig, Apache HBase, Apache Spark等。 |
-
Hadoop分布式文件系统(HDFS):HDFS是Hadoop的主要存储系统。它设计用于处理大量数据,并通过在集群中的多台机器之间复制数据来提供容错能力。
-
MapReduce:MapReduce是Hadoop的处理框架。它通过分布式处理数据来实现并行计算。通过将任务分解为映射和归纳阶段,Hadoop使得并行和分布式数据处理成为可能,这些阶段在整个集群中执行。
-
资源协调器 (YARN):YARN是Hadoop的资源管理和作业调度框架。它管理集群资源并将其分配给不同的应用程序,包括MapReduce作业。
-
Hadoop通用模块:Hadoop通用模块包含其他Hadoop组件使用的库和实用工具。它提供一套通用的功能,支持整个生态系统。
-
Hadoop生态系统工具:包括各种增强其功能的工具和框架。例如,用于类似SQL查询的Apache Hive,用于数据流脚本的Apache Pig,用于实时读/写访问数据的Apache HBase,以及用于内存数据处理的Apache Spark等。
Hadoop分布式文件系统(HDFS)
Hadoop 架构和概念 | 描述 |
---|---|
HDFS架构 | |
NameNode | HDFS的中央协调节点,管理文件系统的元数据。 |
DataNodes | 存储和管理HDFS中的实际数据块。 |
数据存储概念 | |
数据块 | 大文件被分成的固定大小的块,独立存储并可分布在集群中。 |
复制保证 | 数据块的多次复制,确保容错性和数据可靠性。 |
机架感知 | 根据DataNode接近程度分组,优化数据本地性和网络性能。 |
HDFS可靠性和容错 | |
数据复制 | 在多节点间复制数据块,提供容错性。 |
心跳和块报告 | 数据节点更新NameNode,保持最新的集群数据视图。 |
块恢复 | 在数据损坏或丢失时,HDFS会自动创建新的副本进行恢复。 |
架构
在分布式机器群集中存储和管理大型数据集。
Hadoop分布式文件系统 (HDFS):HDFS为大数据提供可靠和可扩展的存储。HDFS将大型数据集拆分为较小的块,并将它们分布在Hadoop集群的多台机器上。这种分布方式可以实现并行处理和容错性。
HDFS采用主从架构,其中NameNode充当中央协调器,DataNodes充当工作节点。
-
NameNode:NameNode是HDFS中的中央协调节点。它管理文件系统的命名空间,并记录数据块在集群中的存储位置。NameNode维护有关文件的元数据,如文件名、目录结构和块位置。
-
DataNodes:DataNodes是HDFS中存储实际数据块的工作节点。它们负责存储、检索和复制数据块,按照NameNode的指示执行。DataNodes还执行数据完整性检查,并向NameNode报告其状态。
数据存储概念
-
数据块:在 HDFS 中,大文件被分成固定大小的块,通常是 128MB 或 256MB。每个块都是独立的存储单元,并可以分布在集群中的不同 DataNode 上。这种分布确保了数据的均匀分布,并实现了并行处理。
-
复制保证:HDFS 为了容错性和数据可靠性,复制每个块多次。默认情况下,HDFS 将每个块复制三次,并将副本存储在不同的 DataNode 上。这种复制允许在节点故障或数据损坏的情况下进行数据恢复。NameNode 跟踪块的位置和副本。
-
机架感知:HDFS 被设计为了解集群的物理网络拓扑。它根据 DataNode 之间的接近程度将其分组到机架中。机架感知通过在不同机架上存储副本,帮助优化数据本地性,减少网络流量并提高数据访问性能。
HDFS可靠性和容错
-
数据复制:通过在多个数据节点之间复制数据块,HDFS提供容错性。如果一个数据节点不可用或一个块损坏,可以使用其他数据节点上的副本来检索数据。