大数据协作框架
大数据协作框架
不是一个人硬扛,而是一群人一起干
一、先别管技术,想想这个场景
假设你现在有一项任务:
把全校 3000 个同学,每个人过去 3 年的借书记录全部统计一遍,找出借书最多的那个人。
如果只有你一个人干:
你要翻 3000 人的记录,每人三年可能有几百条,总共几十万条数据
光看完一遍可能就要好几天
中间要是笔记本死机了,全部白干
这就像 让你一个人搬一座山 —— 不是不能搬,是搬到猴年马月也搬不完。
二、那怎么办?叫人来帮忙
你叫了 9 个同学,一共 10 个人一起干。
但问题来了 ——
谁负责哪几年的数据?
各算各的,最后怎么合在一起?
万一有人中途跑路了怎么办?
这时候你就需要一套 “分工规则”:
有人负责存数据(把 10 年的记录分成 10 份,每人发一份)
有人负责派任务(谁算 2018 年,谁算 2019 年……)
有人负责计算(每个人算出自己那几年的 Top 10)
有人负责汇总(把 10 个人的 Top 10 再比一次,得出总冠军)
有人负责盯着(如果有人偷懒或掉线,马上安排别人顶上)
这套规则,就是 “协作框架” 的雏形。
三、那在电脑世界里,这套规则叫什么?
大数据协作框架 就是给电脑们用的那套“分工规则”。
它要做的事情,和你刚才组织的 10 人小组一模一样:
你的小组 大数据协作框架
你分配数据给每个人 HDFS(存数据 + 分块 + 备份)
你安排谁算什么 YARN(调度任务)
大家各自算自己的 MapReduce / Spark(并行计算)
你最后汇总结果 也是 MapReduce / Spark(合并)
你盯着有没有人掉链子 ZooKeeper(协调、故障处理)
四、用最土的话翻译每个角色
如果你第一次接触这些名词,别慌,我用人话翻译一遍:
HDFS —— 就是“仓库管理员”
把数据切成很多小块,分散放到不同电脑上,还会自动复制几份存着,防止硬盘坏了数据丢了。
YARN —— 就是“排班经理”
哪台电脑现在有空?这个任务交给谁?就像餐厅门口叫号的那个人。
MapReduce / Spark —— 就是“干活的人”
真正跑数据、做计算的那群人。Spark 比 MapReduce 跑得快,因为 Spark 把数据放内存里算,MapReduce 每次都要从硬盘里读。
ZooKeeper —— 就是“班长”
负责让大家保持一致:谁当领导?谁掉线了?遇到分歧听谁的?
五、整个过程长什么样?走一遍你就懂了
还是那个“统计全校借书最多的人”的例子,10 台电脑一起干:
第一步:存数据
HDFS 把 10 年的记录切成 100 个小块,分散存到 10 台电脑上,每台电脑分到 10 个小块。
第二步:派任务
YARN 说:“10 台电脑,每台把自己手上的 10 块数据统计一遍,算出你们那部分的 Top 10。”
第三步:同时开干
10 台电脑同时算,互不影响。每台都交出自己的 Top 10 名单,一共 100 个候选人。
第四步:合并结果
再把这些候选人汇总到一起,重新排个序,最终得出全校真正的 Top 10。
第五步:万一出事
如果第 3 台电脑算到一半死机了,ZooKeeper 会立刻发现,让第 4 台电脑接手它的任务,整体进度不受影响。
整个思路就八个字:
分而治之,合而总之。
六、那这些工具都是干嘛的?一张表看懂
名字 一句话人话解释
Hadoop 整个地基,提供存数据(HDFS)和派任务(YARN)的能力
Spark 超级加速器,在内存里算,比 MapReduce 快几十到一百倍
Hive 翻译官,你写 SQL(像英语一样简单),它帮你转成 MapReduce 或 Spark 能听懂的命令
HBase 实时查询员,海量数据里快速找到某一条,像查字典
ZooKeeper 班长,协调所有电脑,让大家步调一致
Kafka 数据传送带,像流水线一样实时把数据从 A 送到 B
七、协作框架到底牛在哪?
用了这套东西,你就能:
存得多 —— 数据从几 TB 扩展到 PB 级(1 PB = 100 万 GB),加硬盘就行
算得快 —— 100 台电脑一起算,理论上比 1 台快 100 倍
不怕坏 —— 坏了几台电脑,数据还在,任务会自动转移
省钱 —— 用一堆普通电脑拼起来,比买一台巨型超级计算机便宜得多
八、用校园生活再理解一遍
全校大扫除:校长(调度员)把校园划成 10 个区,每个班负责一块(存储),同时打扫(并行),最后检查(汇总)
篮球赛:教练(协调员)安排前锋、中锋、后卫(不同角色),有人受伤就换替补(容错)
小组作业:组长(调度员)把任务拆成几份,组员同时写(并行),最后合并成完整报告(汇总)
🎯 最后,用一句最土的话总结
大数据协作框架,就是让一大群普通电脑像一支训练有素的队伍,各干各的活,最后凑在一起把大事办了
更多推荐
所有评论(0)