对云计算和大数据的理解
对云计算和大数据的理解
没有明天的码仔 发表于5个月前
对云计算和大数据的理解
  • 发表于 5个月前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

作者:麻仓叶
下面是自己的理解,希望能通俗的表达出来:
要了解Hadoop和spark,以及它们所依托的云计算,就要先了解这些分布式计算(distributed computing)软件出现的历史背景。
就拿一个too young too simple版的网络聊天软件来举个栗子吧:
比如说有一款火爆的聊天软件叫OOXX,拥有用户A和B。OOXX软件公司有一台自己的服务器。用户A向用户B发一句“约吗”,整个流程大概这样:

1. A的电脑向OOXX服务器发送信息,当然包含了信息的内容(约吗),以及目的地(B用户的客户端)

2. OOXX的服务器收到了“约吗”这个信息,软件公司为了便于在程序出问题的时候探查问题,以及通过收集用户的行为和信息来帮助自己提高OOXX的约炮成功率,会在服务器上面记录当天服务器收到的每一条信息,以及相关的信息(发送者A,目的地B,A的IP地址,B的IP地址,A的性别,B的性别 : ), 这些日志存在服务器上面。这样一来,每天服务器就会积累一堆当天的用户信息,猥琐的管理员可以每天用程序扫描一遍所有的日志,比如记录一下约炮成功的聊天对话的总数,统计一下当天的成功率,如果成功率很高,就可以作为OOXX公司的宣传口号了有没有!

3. OOXX的服务器收到信息,记录下来之后,发现信息是要发给B,于是把信息发到B那里去。

4. B收到“约吗”的信息,回复“不约,叔叔我们不约”给A,然后这条信息又重复1,2这两步,发送给A,同样会被服务器记录下来。

5. A收到信息,发现钓鱼失败,马上拉黑B,转向下个目标。

在互联网刚起步的时候,OOXX的服务器可能每天只用存一存文本聊天信息就好了,后来随着互联网技术的发展,支持发图片了,支持发视频了,想约的用户也越来越多了。在这样的环境下,A会先问问B:“看过优衣库吗”,然后把视频发过去,或者发点图片先挑逗挑逗(此处应有小黄图),这样一来服务器就hold不住了,用户数量暴涨,一两台计算机也是hold不住那么多用户的请求和日志存储了啊,总得想点办法,顶住这一波用户增长,然后做点PPT去忽悠投资人的钱。

像OOXX这样的公司,可能买不起昂贵的企业级服务器(比如IBM之类,会提供整套的data center解决方案,对小公司来说可能贵得一逼),琢磨琢磨就躲买点便宜的服务器(故障率比较高,硬盘容易坏),10台不行我买20台。硬件的故障率高怎么办?买不起好的硬件,我想点办法把软件做好一点,硬盘容易坏就把服务器记录的日志同时写到两三个硬盘里(反正便宜),一个坏了还有另外两个能凑合。这样的用来管理由廉价服务器组成的存储系统故障率高的服务器集群的软件系统,就是HADOOP最开始的动机:GOOGLE的分布式文件系统(GFS)。

现在服务器这么多,日志分散在每个服务器上面,如果我好奇A今天又约了几个妹子,我得把几十台服务器的日志全部扫一遍才能知道,反正我只关心A到底约了几个不同的妹子,我用相同的程序扫描每台机器的日志,在里面找与A相关的聊天记录,把A发送的信息的收件人全部提出来,最后拿到一个地方汇总过滤一下不就好了嘛。每台服务器上面的日志文件太大了(大家小黄图发来发去)一次处理不完怎么办?反正我只关心A的相关记录,把大文件切割成小文件就好了嘛。这样的日志处理是把程序分布在每台电脑上运行,每台电脑上的处理程序都做相同的工作——找与A相关的聊天信息,然后把在所有服务器日志里面找到的信息集中发到一个服务器上,过滤汇总一下,就能知道A到底约了几炮啦。用来管理和执行这些分布式程序的软件系统,需要合理调度其控制的所有计算资源(比如其中一台电脑扫描完没事干了,不能让它闲下来,可以把别的电脑还没处理完的小文件发给它,让闲置的电脑来处理),最后得出结果。这样的分布式资源调度+分布式运算 的软件,就是HADOOP的另一个重要板块map-reduce,用来处理海量的文件,一开始也是GOOGLE搞出来的。

 

好了,这就是HADOOP一开始最主要的两个模块了,在此基础上衍生出了一些别的HADOOP模块(比如PIG),也是基于这两个基本的模块的。所以HADOOP这样的分布式软件系统,就是为了更好的管理和处理当前互联网产生的海量的数据文件而出现的。SPARK也是基于HADOOP,可以理解为性能更优异的HADOOP。

 

有了HADOOP,软件层面的问题解决了,像AMAZON这样的大公司,自然会建造大量的服务器集群,以便处理每天的海量信息。后来这些大公司发现,集群建得太多啦,每天成百上千台计算机闲置在那,烧电不说,还得雇人去维护,太尼玛烧钱啦!于是有人琢磨着,闲着也是闲着,不如把这些闲置的计算资源租给需要的人,然后按使用时长收费,这就是云计算啦,妥妥哒!

于是乎,AMAZON搞出了他们的云计算服务,把自己闲置的计算资源出租给其他人来使用。有的客户什么都不懂,你把计算资源直接给他,他毛也不会用,于是有的云计算提供商就直接把一些软件运行在自己的集群上,这些客户直接上网使用这些软件就好啦,这就是SaaS(Software as a Service)。Salesforce的企业级软件就是这样一种服务。

有的用户不想用云计算服务商提供的软件,想自己打造自己的云服务软件,于是云计算服务商用一些技术直接整个服务器暴露给用户,用户可以远程自定义这个服务器(调整各种机器配置文件,运行各种程序,完全就和自己的电脑一样),这就是IaaS(Infrastructure as a Service)了,给用户提供了更多的把玩空间。AMAZON的EC2就是这样一个服务

还有些用户,又想运行自己的程序,又觉得配置服务器太麻烦了,于是云计算服务商就只提供一个平台供用户去上传和部署自己的软件,外加一些适当的可配置内容,但是整个底层的服务器配置还是由云计算服务商来做,这样用户省心。这就是PaaS(Platform as a Service),GOOGLE最开始的云服务(google app engine)就是这样一种模式。

大概就这样。

共有 人打赏支持
粉丝 0
博文 9
码字总数 6003
×
没有明天的码仔
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: