兄弟们给我10分钟,带你了解一下大数据技术的入门原理和架构设计

图灵汇官网

一、引言

Hadoop 是当前大数据领域的主流技术框架,涵盖多种技术,如 HDFS(分布式文件系统)、YARN(分布式资源调度系统)和 MapReduce(分布式计算系统)。有些朋友可能对 Hadoop 有所耳闻,但对其具体作用并不清楚。本文将以通俗易懂的方式介绍 Hadoop 的基本概念。

假设你公司的数据都存储在 MySQL 数据库中,所有数据都集中在一台服务器上,这台服务器的磁盘空间为 2 TB。随着数据量不断增加,最终会超过服务器的存储容量。这时,你可能会想到使用多台 MySQL 数据库服务器进行分库分表。然而,这种方案在处理大规模数据时存在不少挑战。例如,当你需要从大量日志中提取多个关键指标时,编写复杂的 SQL 查询会变得极其困难。因此,Hadoop 和 Spark 这样的大数据技术应运而生,它们能够更好地应对大数据的存储和计算需求。

二、Hadoop 分布式文件系统的 NameNode 架构原理

大数据的存储与计算

Hadoop 中的 HDFS 是其核心组成部分之一,主要用于分布式存储数据。它由许多机器组成,每台机器上运行 DataNode 进程,负责管理一部分数据。NameNode 则是 HDFS 的核心组件,负责管理整个 HDFS 集群的元数据。这些元数据包括文件目录树、权限设置和副本数等信息。

文件目录树的维护

当客户端系统需要将一个 1 TB 的大文件上传到 HDFS 集群时,首先会与 NameNode 通信,请求创建新文件。NameNode 会在内存中维护文件目录树,并记录该文件的位置信息。然而,将重要元数据保存在内存中存在风险,一旦 NameNode 宕机,这些元数据将会丢失。为了保证数据的安全性,HDFS 引入了两种机制:edits log 和 fsimage。

每次内存中的元数据发生更改时,都会记录一条 edits log 到磁盘文件中。这样即使 NameNode 崩溃,也可以通过回放这些日志来恢复元数据。为了避免重启时加载大量日志带来的延迟,HDFS 还引入了 fsimage 文件,用于定期保存完整的元数据快照。通过这种方式,可以显著提升系统启动的速度。

NameNode 主备高可用

HDFS 还支持主备 NameNode 的高可用模式,即 Active NameNode 和 Standby NameNode。Active NameNode 负责处理所有请求,而 Standby NameNode 则实时同步 Active NameNode 的元数据,并定期执行 checkpoint 操作。这样即使 Active NameNode 出现故障,Standby NameNode 可以立即接管,确保服务的连续性。

数据块的存储与副本

为了进一步提高数据的可靠性和可用性,HDFS 将数据分割成多个块,并在多台机器上进行复制。默认情况下,每个数据块会被复制三份,分别存储在不同的机器上。这样即使某台机器宕机,数据依然可以通过其他机器访问,从而避免数据丢失的风险。

通过上述机制,HDFS 能够高效地存储和管理大规模数据,并且具备高可用性和容错能力。希望本文能够帮助你更好地理解 Hadoop 的基本架构原理。

本文来源: 图灵汇 文章作者: