大数据基础与Hadoop框架入门

在当今世界,数据量正以指数级速度增长。据估计,每天至少产生2.5千万亿字节的数据。这也就解释了为什么大数据领域在全球范围内迅速发展,并且充满了巨大的机遇。本文将聚焦于大数据的基础知识,探讨大数据的用途,并简要介绍一个名为Hadoop的大数据框架。这篇文章适合初学者,将帮助快速进入大数据的世界。

大数据简介

假设在一个平行宇宙中,(Zark Muckerburg)有一个创建名为“FaceCook”的社交媒体平台的绝妙想法。用户可以在该平台上与朋友分享照片、视频、文章等内容。将遇到的第一个问题是数据存储。数据将包括结构化和非结构化内容,包含文本、图像、视频等。因此,需要一个强大的系统来安全地存储数据。

大数据的精确定义是使用5V模型。

  1. 体量(Volume):需要存储的数据量非常大,可能是多个PB甚至更多。
  2. 速度(Velocity):指的是数据的高速累积。想象一下,FaceCook上每分钟有数百万用户发布内容。
  3. 多样性(Variety)大数据可能包括结构化(表格)、非结构化(图片、视频等)和半结构化(日志文件)数据。大数据中有各种类型的数据。
  4. 真实性(Veracity):指的是数据的不确定性和不一致性。这种不一致性的原因可能是数据来源众多、数据类型不同等。这可能导致数据非常混乱。
  5. 价值(Value):数据本身没有价值,除非经过提取、清洗和深入分析以获得对其的洞察。因此,可以从大数据中生成价值。

大数据存储方法

最简单直接的方法是设置一个单一的中心化数据库,并使用它来检索和存储FaceCook用户发布的内容。起初,这种方法可能看起来可行,但随着用户基数的增加,数据库的大小也会增加。这将导致服务器工作负载过高,从而有数据丢失的风险,因为过载。单一数据库的可扩展性也不强,所以这种方法行不通。

为什么不分散工作量呢?单一数据库中心的问题是处理可能会变慢。可以简单地将数据分成部分,并在每台计算机实例中存储一个部分。这被称为分布式文件系统。在这里,通过计算机网络连接的文件服务器集群被形成。假设想要在分布式文件系统中存储4GB的数据,可以将数据分成4部分,并在4个文件服务器集群中存储数据。

但是,如果由于某些技术问题,PC1被摧毁了,这将导致部分数据不可用。想象一下,由于公司失败而失去了一半的帖子,会起诉公司。

因此,需要一个工具来存储和管理大数据。它还应该提供容错能力和良好的性能。这时,Hadoop就出现了。

Hadoop框架

Hadoop是一个开源框架,用于高效地存储和处理从GB到PB大小的大型数据集。与使用单一的中心化数据库服务器存储数据不同,Hadoop通过集群多个普通计算机来实现容错和并行处理。Hadoop由四个主要模块组成:

  • Hadoop分布式文件系统(HDFS
  • Yet Another Resource Negotiator(YARN)
  • MapReduce
  • HadoopCommon

本文将重点关注HDFS。

Apache Hadoop分布式文件系统(HDFS)遵循主从架构,其中集群由单个NameNode(主)和所有其他节点作为DataNodes(从)组成。NameNode的主要活动包括:

  1. 维护和管理DataNodes。
  2. 记录实际数据的元数据,如文件名、路径、块位置等。
  3. 接收来自所有DataNodes的心跳报告。如果NameNode停止接收来自任何DataNode的心跳报告,则认为该DataNode已死亡。

DataNodes的主要活动包括:

  1. 存储实际数据。
  2. 为客户端提供读写请求服务。

在Hadoop 2.x架构中,默认情况下,数据首先被分成128MB大小的块。除了最后一个块外,所有块的大小都应该是128MB。

HDFS中的数据存储过程如下:

  1. 客户端请求可用DataNode地址以存储块。
  2. NameNode包含文件名、路径、块位置等元数据,返回可用DataNode地址给客户端。
  3. 客户端直接将数据存储到DataNode中。

已经讨论过,即使集群中的单个节点失败,也可能发生部分或全部数据丢失。为了防止这种情况,Hadoop有一个称为块复制的特性。在HDFS中,数据块被复制并存储在其他DataNodes中,以实现更好的容错性。默认情况下,复制因子(集群中应保留多少块副本)为3,但可以根据用户需求进行调整。

  1. 单个DataNode中不存储超过一个副本。
  2. 同一机架中不存储超过两个副本。
  3. 块复制的机架数量 < 副本数量。
  • 大数据意味着具有高体量、速度、多样性、真实性和价值的数据。
  • 分布式文件系统比传统文件系统提供更好的性能。
  • HDFS遵循主从架构。
  • HDFS通过块复制提供容错。
  • HDFS由于机架感知提供更好的读写速度。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485