HadoopSummary

第一章:初识Hadoop大数据技术

1.大数据的定义

"大数据"是一个涵盖多种技术的概念,用传统软件处理不了,要用新处理模式(如分布式云计算)才能处理的信息资产。

国际商用机器公司IBM将"大数据"的特征定义为"四个V",Volume(大量化)、Variety(多样化)、Velocity(快速化)、Value(价值密度低)

  • Volume:数据规模大,从TB级别跃升到PB级别,1PB=10亿TB
  • Variety:数据类型多,来源和格式多,除了结构化表格数据,还有日志、图片、视频、地理位置等非结构化数据
  • Velocity:产生和处理速度极快,要求实时或接近实时(如股市交易、传感器监控)
  • Value:单条数据价值不高。可以从一下这几个方面来理解:①数学层面,噪声大于信号,单个数据点充满了随机性和偶然性。比如你手机定位显示"你此刻在商场3楼",但这个单点信息可能是你去上厕所、路过或者找人,它无法判断你的真实意图。只有当几万条定位数据结合起来形成轨迹流时,随机波动(噪声)才会被抵消,清晰的规律(信号)才会浮现,比如"每周六下午固定去3楼电影院"。 ②商业层面,缺乏"参照系",单条数据没有对比维度,则无法产生洞察。假设系统显示"你今天走了8000步",这个数值高吗?如果对比你过去三个月的平均值5000步,它很高,如果对比一个马拉松运动员,它很低。所以说单条数据只是"状态",不是"情报",只有叠加了时间、人群、场景等维度后它才能变成决策依据。 ③技术层面,存在"脏数据"风险。在现实世界中,单条数据有极高的概率是错误或无效的,比如传感器失灵、用户误触、网络丢包等。大数据的处理逻辑是"用数量换质量",因为数据量足够大,哪怕含有少量错误,统计结果也依然趋向真实分布(大数定律)

随着应用数据规模的急剧增长,传统的系统的方法难以提供足够的存储和计算资源进行数据的处理,大数据面对的基本的问题,也是最核心的问题,就是海量数据如何可靠存储和如何高效计算的问题。

2.Google的"三驾马车"

Google公司的三篇论文:GFS、MapReduce、BigTable,奠定了大数据技术的基石。

  • GFS:The Google File System,描述了一个分布式文件系统的设计思路。分布式文件系统有两个基本组成部分,客户端(Client)和服务端(Sever)。服务端采用数据冗余存储的方式进行数据存储(同一份文件多保存几份)。管理节点来管理存放这些数据的主机,存放数据的节点成为数据节点。被上传至服务端进行保存的文件会按固定大小进行分块,而数据节点保存的就是这些数据块,数据块的冗余度默认是3(数据的冗余度 = 数据总份数 / 原始数据大小,为3就是你上传一个文件,该文件会被切分成许多数据块,每个数据块就会被完整地复制成3份,相当于该文件被复制成了3份)。在管理节点中,会记录数据块的文件名、文件大小、上传时间、数据块的位置信息(在哪个数据节点上)等元信息,然后管理节点再把这些数据块先上传到第一个数据节点,接着通过水平复制将数据块复制到其他数据节点上
  • MapReduce:采用"分而治之"的思想,把对大规模数据的操作,分发给一个主节点管理下的各个子节点共同完成,然后汇总各个子节点的中间结果,得到最终的计算结果。即"分散任务,汇总结果"
  • BigTable:GFS解决的是"数据怎么安全地分散在大量廉价的机器上"的问题,BigTable解决的是"在数据已经分散存储的前提下,如何高效地按条件检索和修改具体条目"的问题。GFS是低级(物理层)负责把数据在硬盘上存储安全,BigTable是楼房(逻辑层),在GFS上。当BigTable收到"查询ID_12345"的指令时,它会先找到这个ID对应的数据分布在GFS中的哪几个大块里,然后去GFS里把那些二进制块读出来,解析成表格行,最后返回给你

3.Hadoop概述

Hadoop是由Apache基金会发布的一个开源的分布式系统基础架构,它解决了"单台电脑装不下大数据,算不动大数据"的难题,把成千上万台服务器虚拟成一台"超级计算机"来使用。让你能用一堆普通的廉价机器来存储海量数据并计算它们。

1.Hadoop对Google公司三篇论文思想的实现

(1)HDFS

HDFS(Hadoop Distributed File System)是Hadoop的核心,是分布式计算中数据存储管理的基础,它是对Google公司的GFS论文思想的实现。

HDFS由名称节点(NameNode)、数据节点(DataNode)、第二名称节点(SecondaryNameNode)组成。其中NameNode是管理节点,存储数据块的元数据。SecondaryNameNode默认在NameNode上,DataNode则负责存储实际的数据(数据块)

(2)MapReduce

Hadoop中的MapReduce与Google公司的MapReduce论文所提的实现思路是一致的

(3)BigTable

HBase是一个分布式的、面向列的开源数据库,它是在Hadoop之上提供了类似于BigTable的能力,是对Google公司的BigTable论文思想的实现

2.Hadoop版本的演变

Hadoop经历了三代版本的演变,即Hadoop1.x、Hadoop2.x、Hadoop3.x

Hadoop2.x在Hadoop1.x基础上采用了全新的架构,最明显的变化就是增加了YARN(通用资源调度框架),Hadoop3.x的JDK版本最低依赖从1.7变成了1.8,还有很多其他的变化。

3.Hadoop的生态圈

狭义的Hadoop:一个适合大数据分布式存储和分布式计算的平台,包括HDFS、MapReduce、YARN

广义的Hadoop:是以Hadoop为基础的生态系统,是一个很庞大的体系,Hadoop是其中最重要最基础的一个部分;生态系统中的每一个子系统只负责解决某一个特定的问题域。比如包括HDFS(分布式文件系统)、MapReduce(分布式并行编程模型)、YARN(资源调度框架)、HBase(建立在Hadoop文件系统上的分布式的列数据库)、Hive(Hadoop上的大数据框架)等等

4.Hadoop现在的情况(至2026年6月)

(1)Hadoop的主要应用场景

Hadoop作为企业数据架构的基石

  • 海量数据的"数据湖"与归档:这是Hadoop最经典和最核心的应用。它像一个巨大且廉价的仓库,可以存储任何格式(结构化、半结构化、非结构化)的海量原始数据。很多企业用它来存放历史日志、点击流、物联网传感器数据等,以备未来的分析和挖掘。
  • 大规模离线批处理:尽管有更块的计算引擎,在HDFS(Hadoop分布式文件系统)仍是大规模数据批处理的理想存储层。企业会在夜间运行复杂的作业,对TB甚至PB级的数据进行清洗、转换和聚合,为第二天的商业报表或AI模型准备好数据。
  • 跨行业的各类分析:Hadoop的应用已经渗透到各行各业。在金融领域,用于处理海量交易数据,用于实时风控、反欺诈和客户画像。在零售和电商领域,用于分析用户行为日志,构建个性化推荐系统、优化库存和供应链。在制造业,用于集成设备数据的分析,实现预测性维护,降低设备故障率
(2)Hadoop现今的发展趋势

截至2026年6月,Hadoop早已不是一个前言技术名词,而是变成了像"数据库"一样成熟且不可或缺的基础设施。它没有消失,而是进化成了一个庞大生态系统的核心,并在云原生和AI的浪潮中找到了新的定位。

严格来说,纯原生的Hadoop(MapReduce)在企业里已经不太直接使用,因为太笨重(慢),但现在所有的大数据技术如Spark、Flink、Hive等都离不开HDFS,也就是说HDFS作为存储地基依然无可替代,只是把计算引擎从MapReduce换成了更快的Spark。

这里简单了解一下Spark。

Spark是一个开源的分布式计算引擎,其核心作用就是对海量数据进行快速、高效的分析和处理。Hadoop MapReduce作为老工人,经典,干活非常踏实,但有一个"致命弱点"----- "死脑筋",每做一个步骤(先过滤再汇总)它都必须把中间结果写到硬盘(HDFS)上,下一个步骤再从硬盘读取出来。这种"硬盘往返"导致数据极慢,只适合做隔夜跑批。而Spark是特种兵,核心绝技是"内存计算",它能将中间结果直接缓存在内存里,多个计算步骤在内存中一气呵成,只有最终结果才返回硬盘。因此Spark在复杂场景下的运算速度会比MapReduce块很多(10倍~100倍)

Spark除了数据更快,还提供了更高级、更简洁的API,支持Java、Scala、Python和R。而MapReduce只能写复杂的Java代码。

但是Spark并没有取代Hadoop,而是在Hadoop中把计算引擎从MapReduce换成了Spark而已。Spark没有自己的存储系统,依然依赖于Hadoop的HDFS来存储海量数据。且Spark可以运行在Hadoop中的YARN上,让YARN来管理CPU和内存资源。