文档章节

对云计算和大数据的理解

没有明天的码仔
 没有明天的码仔
发布于 2017/07/04 13:23
字数 1988
阅读 0
收藏 0

作者:麻仓叶
下面是自己的理解,希望能通俗的表达出来:
要了解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)就是这样一种模式。

大概就这样。

本文转载自:https://www.zhihu.com/question/32326748/answer/57341870

共有 人打赏支持
没有明天的码仔
粉丝 0
博文 9
码字总数 6003
作品 0
武汉
程序员
私信 提问
人工智能 = 物联网,大数据 + 云计算

人工智能 = 物联网,大数据 + 云计算 今天想写一下我对人工智能,物联网,大数据,云计算这几个当下比较热门技术关系的理解 首先,是物联网和大数据的关系,按照我的理解。大数据,其实就是其...

只想让你记住我
01/04
0
0
大数据 云计算 hadoop的概念理解

作为一个懒人实在是不爱学习,然而不学习就要被淘汰,公司要求学习大数据相关知识,只能慢慢学习了,因为公司事务很多,本来7月份的时候已经开始学习,也写了一些操作的文章,但是中间耽搁了...

wjyyawjx
2018/12/07
0
0
大数据和云计算究竟有什么关系?

周围总是充斥着大数据和云计算这两个词,然而,实际上,很多人对于云计算和大数据的关系却总是容易混淆,所以总是将“云计算”和“大数据”放在一起讨论, 实则不然。   简单来说:云计算是...

kl28978113
2017/08/23
0
0
学习云计算与大数据就业前景好吗?

越来越多的人认识接触云计算和大数据,但是真正的对于这两个的认识和理解确是少之又少,很多人都想问云计算与大数据前景好吗?现在学习就业怎么样? 如果你想进入云计算和大数据,那么先了解一...

铁拳虎
2018/12/28
0
0
备战加薪季(阿里云大学互联网学院开学钜惠)

互联网学院简介 阿里云互联网学院是阿里云即将推出的学院制教学,将会充分利用互联网的特点与优势,贴近真实的教学制度,为用户提供严谨、实用的云计算、大数据、云安全与人工智能四大专业的...

mcy0425
2018/03/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cnetos7+docker+rancher构建基于DevOps的全自动CI【01】

来自DevOps实践分享,分享从开发代码到生产环境部署的一条龙操作的实践及经验, 包含工具技术的选型及考量、私有代码库与私有镜像库的应用等。 1、环境选择 安装Rancher环境,一定要在干净的...

Elson
27分钟前
1
0
21分钟教会你分析MaxCompute账单

背景 阿里云大计算服务MaxCompute是一款商业化的大数据分析平台,其计算资源有预付费和后付费两种计费方式。并且产品每天按照project为维度进行计量计费(账单基本情况下会第二天6点前产出)...

zhaowei121
30分钟前
0
0
CTO职场解惑指南系列(一)

基于科技能够改变世界的事实,几乎每个公司的程序员都自带闪光灯。程序员的手和普通人的手自然是有区别的,“我们可是用双手改变了世界” 。(码农真的是靠双手吃饭,呵呵) 这个世界上但凡靠...

阿里云云栖社区
35分钟前
3
0
css实现图片自适应容器宽高

css实现图片自适应容器宽高的做法一般如下所示 <style>div{width: 200px; height: 200px}div img{width: 100%; height: 100%}</style><div><img src="xxxx.png" /></div> 当外层容......

小草先森
35分钟前
3
0
PlatON在CentOS上编译部署

本文作者为万向区块链CTO罗荣阁。 目录 PlatON在CentOS上编译部署 1. CentOS 环境准备 1.1. 使用rpm 安装devtoolset-7 1.2. 使用rpm 安装dos2unix 1.3. 准备PlatON代码 1.4. 确保build脚本正...

万向区块链
43分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部