什么是分布式
分布式是将一个任务或一份数据拆分成很多小的部分交给多台计算机通常成为节点协同完成。这些计算机通过网络通信对外表现得就像一台强大无比的超级计算机。单机系统类比成你一个人搬家一个人打包、搬运、装卸全过程都是你一个人速度较慢且受限于你的体力和精力。在可靠性方面一旦你受伤系统出现故障整个搬家过程就会停滞。在可扩展性方面无法搬得更快因为从始至终都是你一个人在做。分布式系统类比成你请了一个专业搬家公司。整个搬家过程中你是总指挥ResourceManager手下有队长ApplicationMaster和众多工人NodeManager。速度上更快多个人如10个人同时工作效率提示数倍。可靠性上一个工人摔倒了节点故障队长会立刻安排其他人顶上搬家公司整体还在运转。扩展性上如果你还要求搬更多的东西多叫几个工人来就可以解决。维度单机系统分布式系统1. 组成一台独立的计算机包含CPU、内存、硬盘多台通过网络连接的独立计算机节点2. 性能上限受限于单台机器的硬件极限天花板明显理论上可以通过增加机器数量无限扩展水平扩展3. 可靠性脆弱关键部件如硬盘、电源故障可能导致服务完全中断鲁棒部分机器故障整个系统仍可继续提供服务高可用4. 成本与扩展成本飙升性能翻倍往往需要花费数倍的价格购买高端硬件垂直扩展成本平滑使用大量廉价PC性能提升与机器数量成正比线性扩展5. 复杂度简单无网络通信、数据一致性问题程序容易编写和调试极高需处理网络延迟/故障、节点间协调、数据同步、部分失败等复杂问题Hadoop的三种运行模式对比为了帮你彻底分清请看下表模式进程数硬件环境用途是不是“分布式”本地模式单机1个单进程1台电脑调试、学习API❌ 不是。所有服务跑在一个JVM里。伪分布式模式多个多进程1台电脑学习、理解分布式原理逻辑上是物理上不是。这是你当前的情况。完全分布式模式多个多进程3台或更多电脑生产环境、真实计算✅是的真正的分布式。Hadoop是什么Hadoop是一个开源的分布式系统基础架构它解决了“海量数据”的存储和计算两大问题Hadoop的核心两大基石 一个生态Hadoop由多个组件构成但最核心、最基础的只有两个再加上我们之前聊过的YARN核心组件解决的问题通俗类比HDFS(Hadoop分布式文件系统)海量数据存储把一个大文件切分成很多块分散存储在不同电脑上并自动备份。一个巨型分布式货仓。一个集装箱文件被拆成很多箱子数据块放在不同货架上不同电脑并且每个箱子都有几个备份。YARN(Yet Another Resource Negotiator)资源管理与作业调度负责分配集群里的CPU、内存并协调哪个任务在什么时候、哪台机器上运行。这个货仓的大管家。负责接收订单计算任务指派工人计算资源监督工作进展。MapReduce(分布式计算框架)海量数据计算提供了一个简单的编程模型让你能编写在成百上千台电脑上“分而治之”的计算程序。这个货仓的工作方法。“先分后合”先让所有工人分头统计自己的箱子Map再把所有人的结果汇总起来Reduce。HDFS解决了“数据放哪”的问题YARN解决了“怎么分配资源CPU、内存”的问题 MapReduce解决了“怎么计算HDFS中存储的数据”的问题一个具体的数据处理任务案例例子统计一本1000页的书中的每个单词的出现次数假设HDFS中存储了一本1000页的电子书《战争与和平》你要写一个程序MapReduce程序这本书里每个单词出现了几次1.第一步计算什么MapReduce要计算的东西就是HDFS存储的那1000页书对应的数据块假设在你这台伪分布式的机器上HDFS已经将这1000页书切成了8个数据块比如每125页一个块每个块的大小为128MB虽然只有一台电脑但HDFS在硬盘上为你创建了8个不同的目录分别存储这8个块MapReduce程序的目标就是依次或者并行地处理这8个块计算出单词次数2.第二步分配什么资源现在你的MapReduce程序被提交到了YARN上运行。YARN需要把有限的资源分配给这个计算任务在你的电脑中资源就是CPU时间片你的电脑可能只有4核或者8核CPU。YARN不能说“我要100个核”它只能在你电脑现有的核心数范围内分配。比如它会分配1核或2核给这个任务内存空间你的电脑可能只有16G内存。YARN会从这16G中划出比如4G给这个任务用防止它把整个电脑内存吃光
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2568053.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!