分布式入门菜鸟的一些思考,各位大神发现错误欢迎指正!
这些天自己看了一些有关分布式和云相关的资料,也正在着手想玩玩Hadoop,Storm和Spark这些开源分布式的平台。但在此之前做为小白的我(现在也是小白,只是看了几天书对概念架构有了一定的了解),一直认为分布式就几乎等于云,他俩之间几乎是相等的关系。的确不可否认,分布式和云之间有着很大的关系,但是其实又是完全不同的两个东西。从两种东西的属性来说就不同。
分布式是已经逐渐成熟的一种技术,对应的每一种概念,都以具体技术的形式体现出来。对于hadoop来说,hdfs管理着分布式的存储,mapreduce做为开发架构方便程序员对大数据进行开发和处理,还有Hive,zookeeper等除Apache之外其他公司提供的一些工具,这些种种工具形成了一个大的分布式的产业链,能够实在的解决很多因为数据量过大难以解决的问题。
说到数据量大的问题,突然想到前段时间的一个新闻,阿里巴巴最后一台小型机正式下线。意味着阿里走向了完全分布式的时代。从有计算机到现在,人们就一直为解决数据处理的问题发愁,刚开始人们的思路是将茫茫多的数据移动到一台机器上进行处理,并希望CPU的能力越来越强大,内存越来越大,硬盘也能越来越大。。。但是这一切并不随人愿,刚开始内存从32k升级到64k简直是简单,成本不高,但是到后来逐渐发现,当内存从128g升级到256g的时候所需要的开销简直不能再大,cpu等各个部件的升级已经跟不上人们所期望的计算机对数据的处理速度。但是从另一方面来说这也促进了CPU,内存,硬盘的发展。后来谷歌(因该是谷歌最先提出的)开始转换思路,并不一位追求机器的高性能,而是希望将多台机器联合起来发挥性能。从计算机方面来说,这是创新的一步,但是从正常人的生活经验来说,这是再正常不过的思路,群殴总比单干要爽得多。所以分布式也就在谷歌的三篇论文的影响下发展起来了。
相比较而言,云现在来说其实更多的就是框架和概念,实际被落实应用的很少,有一个部分已经落实并有了很大的前景,那就是VMware。啥?这不就是虚拟机么?没错,就是虚拟机,现在云很大情况下就是虚拟机的概念,比如阿里云和Amazon提供的云服务,在你选择购买方案的时候会提供你多种配置,会询问你是要几个CPU核数,要多大的内存,以及多大的硬盘空间,其实这不就相当于在自己电脑上安装一个虚拟机,然后让你设置各种参数一样吗?查询了一下价格发现,我去四核以上贵的要死,内存8g简直逆天,一个月租下来的费用能换几个Mac。。。但是要知道相比之前的IOE(IBM,Oracle,E。。忘了)架构已经便宜了太多,IOE架构不夸张动辄几百万,而且还不算雇佣费用,维修费用等等。有了AWS和阿里云之后,中小型公司就不需要雇佣大量的服务器管理员管理服务器,因为这些公司可以将Web等一些服务放在阿里、亚马逊,服务器可以由它们统一管理,有了它们甚至不用担心服务器的安全因为有什么问题供应商可以解决,而且一旦中招倒霉的肯定也不是你一个。。这也就是现在被提及的去IOE化,其实也可以算是省钱计划。。。
再说一下百度云,其实这个云真的不是什么了不起的东西,其实从思想上来说用到的就是分布式存储,以及一些云端查询计算功能,如果发现你上传的内容已经存在,那就根本不需要你上传文件了,给你个索引放在你的目录下点击就能下载了,纵使你把某些奇奇怪怪的文件改个名字还是能被查出来,这有赖于百度云里的文件检查机制,但是你用格式工厂转换个格式再上传那就被认为是新文件。所以从某种程度上说百度云其实并没有什么隐私,至少技术上没有隐私,你存的其实都是索引。
说了分布式和云,那么两者之间存在怎么样的关系呢?其实通过我上面两段的讲述分布式和云是两个相反的思想,分布式是要将多个小型机的能力聚集起来形成一个大的资源池,云的思想从当下服务来看,是将大的资源池分给各个用户。说两者不想管不可能,因为现在想要把资源池做大都借助于分布式的技术;但是说相等或者近似相等也是不可以的,因为本质上,云是概念,一个大的概念下需要有多种技术的支撑,分布式可以说是众多技术中至关重要的一个,实现云海需要各种大数据分析方法,智能算法等等。。。