公司的数据分两种长相:结构化数据是数据库里整整齐齐的表格,好存好查但只占两成;剩下八成是 Word、PDF、图纸、照片、聊天记录这类非结构化数据——难存难查,但信息量最大,是大数据的真正富矿。数据大到一台服务器存不下、算不动时,就轮到 Hadoop 出场:HDFS 把文件切块散到一堆便宜机器上(每块三份副本),MapReduce 把计算送到数据所在的那台机器上"分而治之",最后归组汇总出答案。
6.6 埋的钩子在此收口:AI 吃数据,数据从哪来?——从散落各处的非结构化数据里来。第二章 2.8-2.12 对比过大型机(比稳)与超算(比快),Hadoop 是第三条路:用一排最普通的商用机(x86 PC 服务器)干集群的活,思路呼应第一章的"模型化"和第三章的"多雇人一起干"。第四章文件服务器管的是"一份正本共享",HDFS 管的是"一份切成几百块散着放"——同一个存储问题,规模不同解法全变。
一、大数据:结构化与非结构化数据
大数据(Big Data) 的"大"不只是"文件多",它有三个标志性特征(业内叫 3V):
- Volume 量大——几个 TB 只算起步,PB(1000 TB)级常见
- Velocity 速度快——数据每秒都在涌进来(物联网设备的上报、App 的点击流),不是攒一年分析一次
- Variety 种类多——这是理解它的钥匙,看数据的长相:
| 结构化数据 | 非结构化数据 | |
|---|---|---|
| 长相 | 数据库表格:行、列、字段都定死 | 散落文件:Word/PDF/图纸/照片/视频/聊天记录 |
| 占比 | 约 20% | 约 80% |
| 好处 | 好存、好查、好算(SQL 一句话出报表) | 信息量最大——客户的意见藏在聊天记录里,图纸的价值藏在 PDF 里 |
| 难处 | 表结构一变全要改 | 没法用表格装:连"按哪个字段查"都问不出来 |
大数据与服务器的关系,本质是一道算术题:一台顶级服务器(第二章的"换更快的人"路线)撑死几十 TB 存储、上百核 CPU——面对 PB 级数据连存都存不下,更别提算。所以答案只有第三章那条老路:横向扩展,用集群。但一百台机器带来三个新问题:文件怎么放?算力怎么分摊?坏了一台怎么办?——Hadoop 就是为这三问而生的软件。
二、Hadoop:支持大数据的软件技术
Hadoop 是一套开源软件框架,让"一排便宜的商用服务器"表现得像一台超级电脑。两大核心,正好对应"存"和"算":
① HDFS(分布式文件系统)——解决"怎么存"
- 把大文件切成块(比如一块 128 MB),散放到集群各台机器上
- 每块复制 3 份放不同机器——第二章冗余思想的集群版:任何一台机器宕机,数据不丢,系统自动用其他副本补齐
- 写法是"一份正本切成几百块散着放",与第四章文件服务器的"一份正本集中放"形成有趣对照——规模变了,"备份"从"另存一份"变成了"天生多份"
② MapReduce(分布式计算框架)——解决"怎么算"
分而治之两步走,以经典的"数一本 1000 卷文库里的词频"为例:
- Map(拆开各算各的)——计算任务被派到数据所在的机器上:每块数据在自己那台机器上原地拆词、记数("卷 1 里有'服务器' 200 次")。注意精髓:移动的是计算,不是数据——几 TB 的数据在网线上搬来搬去就死定了,把几 KB 的程序送过去便宜得多
- Shuffle + Reduce(归组汇总)——把各机器的中间结果按 key 归组搬运(所有"'服务器'的计数"发到同一台),合并出最终答案(全书"服务器"共出现 5 万次)
与超算的分工:超算是"少数贵机器共享内存算一个问题"(流体模拟、气象);Hadoop 是"海量普通机器各算一小块"(日志分析、推荐、搜索索引)。数据型任务用 Hadoop 更便宜,也更能容忍单机故障——这对深谙亮化工程报价之道的你很直观:通用件拼装,永远比定制件便宜、好换。
三、常见误区
- "大数据就是数据很大"——量大只是入场券;种类多(八成是非结构化)才是它与传统"数据库报表"的本质区别,也是 Hadoop 们存在的理由——关系数据库装不下、也算不动那些散文件。
- "HDFS 有三副本,就不用做备份了"——三副本防的是"机器坏",防不了"误删、病毒、整个集群被一锅端";RAID ≠ 备份的老教训,在集群时代原样重演。
- "MapReduce 已经过时,Hadoop 白学了"——MapReduce 作为编程接口确实被 Spark 等新框架取代,但"分而治之 + 移动计算不移动数据 + 多副本冗余"这三个思想是所有大数据框架的公共地基;今天学 Hadoop,学的是思想的原始版本。
- "公司数据没到 PB 级,用不上这些"——"分而治之、计算靠近数据"的思路在百 GB 级就能用上(拆文件并行处理、日志分片分析);而且 AI 训练的数据准备(6.6 的钩子)用的正是这套存储体系。
四、动手 Demo:用 PowerShell 体验一次"分而治之"
不用装 Hadoop,把 MapReduce 的"分-合"三步在单机上走一遍——统计一篇文本里哪个词出现最多。先随便准备一个 txt(比如把一篇课程笔记另存为 C:\temp\words.txt),然后:
Map:把文本拆成单词流(模拟"每台机器各拆各的")
$words = Get-Content C:\temp\words.txt | ForEach-Object { $_ -split "\s+" } | Where-Object { $_ }
Shuffle + Reduce:归组计数、排序、取前 5
$words | Group-Object | Sort-Object Count -Descending | Select-Object -First 5 Name, Count
看到什么算成功:输出一张前 5 名的词频表(Name 是词,Count 是次数)——你刚刚亲手干了 Map(拆)和 Reduce(合)的活。想象 Get-Content 读的是 1 万个文件、ForEach-Object 在 1 万台机器上同时跑,就是 Hadoop 的日常。
30 秒实验:把 words.txt 复制 3 份为 words2/3/4.txt,把命令里的路径改成 C:\temp\words*.txt 再跑一遍——结果翻倍、命令不变。"数据变多,方法不变,只是分给更多人干",这就是横向扩展的直觉。
自测三问(点开对答案)
1. 大数据的 3V 是什么?哪一条最能区分"大数据"和"传统数据库报表"?——Volume 量大、Velocity 速度快、Variety 种类多;种类多(八成是非结构化数据,表格装不下)。 2. HDFS 怎么存文件?"三副本"防的是什么、不防什么?——切块散到多台机器,每块复制 3 份;防机器宕机,不防误删/病毒/整集群覆灭(所以仍要备份)。 3. MapReduce 的精髓为什么是"移动计算而不是移动数据"?——TB 级数据在网络上传又慢又贵,把几 KB 的计算程序送到数据所在的机器上原地算,便宜得多。- ☑ 第七章 信息安全与故障处理——应对威胁的安全对策在设备与数据中的不同 已开课 → 安全的外围墙
相关笔记
- 数字化业务的四个角色 —— AI 吃数据的钩子在本篇收口
- 服务器的位置与外部世界 —— 大型机/超算/Hadoop 三条路线对照
- 共享三件套 —— "一份正本集中放"与 HDFS"切块散着放"的对照
- 建系统之前的三笔账 —— 横向扩展的账怎么算
- 虚拟化与周边设备 —— "RAID ≠ 备份"的教训在集群时代重演
- 安全的外围墙 —— 第七章从这里开讲:先定要保护什么