现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

新手必看:大话Hadoop、云计算等

2020-02-14 13:47 工业·编程 ⁄ 共 2431字 ⁄ 字号 暂无评论

要想正确理解一门技术,一定要理解它产生的背景,解决的问题

背景一:世界需要更多的计算能力

信息技术时代的基石是建立在“计算”之上的。以搜索引擎为例,早期的搜索引擎是人工分类索引的,类似黄页,但是随着网站数量的增多,人工索引的工作量变得巨大,而且更新时效低得难以忍受了。后来的一波搜索引擎都采用了由计算机算法自动索引,查找相关文档,并排序展示的方式。这种方式就导致了对计算能力的巨大需求,类似的趋势出现在多种技术领域,即世界需要更多的计算能力。

背景二:单挑不如群殴,好汉敌不过人多

Intel其实已经很努力了,从19xx年人家就按摩尔定律狂奔,CPU的计算能力每一年半翻一倍,但是相比于业界的计算需求,不够快!但没关系,一个CPU不够快,那我搞10000个,甚至100万个,反正CPU是钱能买到的东西,钱能解决的问题,就不是问题。大概从90年代之后,超级计算机就是拿CPU搭积木玩儿了。

背景三:钱不是问题,问题是没钱

但互联网公司并不太用超算的体系结构(基于MPI的传统HPC架构),主要原因有三:一是系统投入大,超算架构面向的应用多是计算密集,文件IO少的情况,但互联网公司文件IO多,这样会导致在存储系统和网络上要投入高成本才能有好性能;二是超算一般都是灰常牛逼的服务器加盘阵,硬件稳定性本来就好,所以容错机制上不太重视,基本上是用checkpoint技术来搞错误恢复。牛逼服务器和盘阵,都是白花花的银子呀。三是编程模型难用。我写过MPI的程序,基本上脑子里要设想成千上万个进程的运行状态以及它们之间的通信过程,还经常有全局的同步,想写好也不容易。所以这个坑Google是不会跳,too smart to jump in.

正题一:一个好汉三个帮,一个Hadoop三个桩

Hadoop就是poor man's 天河二号。不要把Hadoop看成一个整体,拆开里边看看就清楚地知道它干了什么了。Hadoop包括以下三个核心组件:

1. HDFS,这东西替换了盘阵,使得你有地方存数据了。相当于你的电脑有了C盘,D盘等。

2. YARN,这东西是一个集群管理和调度软件。相当于你的电脑装上了Windows,现在可以跑各种应用程序了。YARN负责让你的程序跑起来,万一挂了还能自动帮你重启进程。

3. MapReduce,定义了集群上数据处理的基本操作。相当于你的电脑上装了Visual Studio,现在可以开发自己的软件了。

明白了么,你自己买一坨烂电脑,把Hadoop往上一装,相当于去电脑城给你的新电脑装了个正版Windows + Visual Studio,回来就可以开心地撸代码了,代码自动就能安全高效地跑在那一坨烂电脑之上,跑得还挺快,是不是很棒?

正题二:光能用是不够的,好用才是我所需

客户是不会满足的,Hadoop很牛逼了,但是程序员的恶梦是不会离开的:“什么?需求又改了?!!” 如果说MPI是分布式计算的汇编语言,那么Hadoop的MapReduce相当于C,把所有计算都拆成Map和Reduce两个过程真是:too young, too simple, sometimes naive。Spark相当于分布式计算里的Java,万物都是RDD,在RDD之上你可以方便地进行更高层的操作。所以Spark和Hadoop不是一个层次的东西,大家一看去年的新闻说Spark排序速度是Hadoop的100倍,所以Hadoop要死,Spark要火,我只能说“呵呵”。但我个人觉得Spark还是蛮有前途的,易用性是大家所爱呀……Spark和Hadoop虽有重合,但Spark是不可能也没打算替换整个Hadoop的。

偏题一:XaaS是什么东西?是生意

aaS = "as a Service",翻译过来就是:你出钱,我服务你。

SaaS 卖软件的。你什么也不用干,只要出钱,我直接给你能用的软件。比如Gmail:给你邮件软件直接用,http://github.com:给你版本控制软件直接用,Office 365:给你办公软件用,Photoshop Express:给你修图软件用。《黑客与画家》讲了互联网软件的优点,有兴趣可以自己瞅。

PaaS 卖平台的。你自己写你的软件,但是运行你软件的平台由我来提供,保证你的软件运行。流行过的SAE什么之类的,你拿(世界上最好的编程语言)PHP来写个网站,上传给我,我来给你把网站跑起来。你专心写(抄)你的软件,其它的事儿交给我。

IaaS 卖虚拟机的。我给你一坨虚拟机用,保证它们正常跑,能连网。虚拟机你怎么用随便你。代表作AWS, Azure,OpenStack等。这东西优势明显:比PaaS安全,因为虚拟机操作系统完全由你控制,别人很难改你的代码或数据,PaaS就难说了;比自己搞机器省心,不用担心虚拟机掉盘坏主板(关键数据和服务也一样要备份!小心我大蓝翔的挖掘机!)很有前途!

偏题二:什么是云计算?

我知道你这个土壕会渴,我想给你挖水井,通水管,安水表,收水费来挣钱糊口。怕你不给我开门,所以我穿上制服,说我是自来水公司(哦,不,我是搞云计算的)。十年后,可能每个公司甚至个人都会拥有相当于十年前google的计算能力,但是这帮新人对计算的理解可能连30年前的google都比不上(对,30年前google不存在,正如这帮新人脑中的分布式计算知识……),但是这帮新人都是壕呀!所以我们这些懂分布式计算的,想办法搞得利用这些牛逼的计算能力就像请客吃饭一样简单,来骗点儿钱,是为云计算。

总结:其实云计算很牛逼

如果无法操控,汽油不过是一把火。只有包上汽车这个外壳,它才能把你送到你想去的地方。计算资源就是未来的汽油,我们搞云计算不是忽悠你们,搞云计算是为了让你们指哪去哪,解决你们手头上需要算一算的问题。上面说的一切东西,都是为了使计算触手可得,而且管够。要想汽车跑得快,并不是说多加燃料就行,云计算就是要解决如何充分利用原始计算资源,减少自身无谓损耗的问题。现在并不是一个已经被完全解决的问题。

作者:旺旺

给我留言

留言无头像?