前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据时代,移动计算 OR 移动数据

大数据时代,移动计算 OR 移动数据

作者头像
kk大数据
发布2019-08-14 15:32:12
1.8K0
发布2019-08-14 15:32:12
举报
文章被收录于专栏:kk大数据kk大数据

这是kk第002篇文章

本文共1880字,阅读约10分钟

一秒钟看完全文:数据是庞大的,程序比数据小的多,将程序分发到数据所在的地方进行计算。

1

面临的挑战

随着互联网时代的不断发展,传感器以及各种数字化的终端广泛普及,一个万物互联的时代正在形成。同时,随着社会不断的发展,数字化已经成为构建现代社会的基础力量,需要计算处理的数据量也在急速膨胀。

据 I D C 发布《 数据时代 2025 》的报告显示,全球每年产生的数据将从 2018 年的 33ZB 增长到 175ZB,相当于每天产生 491EB的数据。

传统的计算处理模型已经不能适用于大数据时代的计算要求。

因为一个程序所能调度的网络带宽(通常为数百MB)、内存容量(通常几十 GB)、磁盘大小(通常数TB)、CPU 运算速度都是有限的。你能想象一个程序读取PB级别的数据进行计算是怎样的一个场景吗?

2

与网站系统架构有何不同

这个问题的解决其实跟大型网站的分布式架构思路是一样的,采用分布式集群的解决方案,用数千台甚至上万台计算机构建一个大数据计算处理集群,从而利用更多的网络带宽、内存空间、磁盘容量、CPU 核心去计算处理。

但是,大数据计算处理的场景跟完整的实时请求处理场景又有很大的不同。

大型网站的技术挑战主要来自庞大的用户,高并发的访问和海量的数据,但通常网站实时处理针对的是单个用户的请求操作,比如淘宝的“双十一”活动,每个用户之间的请求都是独立的。

只要网站的分布式系统能将不同用户的不同业务请求分配到不同的服务器上,这些分布式的服务器之间耦合足够小,就可以通过添加更多的服务器去处理更多的用户请求及由此产生的用户数据,这也是网站系统架构的核心原理。

大数据计算通常针对的是网站的存量数据,也就是网站用户在一段时间内产生的数据。

这些数据之间是有大量关联的,可以从海量数据中挖掘更多有价值的信息。

比如该如何为用户精准推荐他们可能感兴趣的商品;比如分析同一件商品的历史销量走势,制定更加完善的运营策略。

网站大数据系统要做的就是将这些统计规律和关联关系计算出来,并由此进一步改善网站的用户体验和运营决策。

3

移动计算

我们熟知的摩尔定律:“ 集成电路上可容纳的元器件的数目,约每隔18个月便会增加一倍,性能也将提升一倍 ”。

从提出这个定律开始的1965年,就一直前瞻性的预判着这个行业后面50年的走向。

在很长一段时间内,当一台计算机的处理能力不能满足计算的要求的时候,我们就会使用更强大的计算机。

商业级的服务器不够用,就升级小型机;小型机不够用,就升级中型机;还不够,就升级大型机,升级超级计算机。

但是这种思路并不适合互联网的发展要求,Google、Facebook、阿里巴巴这些网站每天需要处理数十亿次请求、产生上百 PB 数据,不可能有一台计算机能够支撑起这么大的计算需求的。

于是不得不换一种思路解决问题,当一台计算机的计算能力不能满足这种需求的时候,就增加一台计算机,还不够的话,就再增加一台,并不断催生出了互联网企业广泛使用的负载均衡、分布式缓存、分布式数据库、分布式服务器等种种分布式系统技术。

当这些分布式技术已经可以满足互联网的日常业务需求时,对离线数据和存量数据的处理就被提了出来,当时这些分布式技术并不能很好的解决这些数据处理的问题,于是大数据的实现方案就被提出了。

这套方案的核心的思路是:既然数据是庞大的,而程序要比数据小得多,将数据输入给程序是不划算的,那么就反其道而行之,将程序分发到数据所在的地方进行计算,也就是所谓的移动计算比移动数据更划算。

4

如何实现

那么,到底移动计算程序到数据所在位置进行计算是如何实现的呢?

1. 将待处理的大规模数据,以分布式的方式存储在服务器集群的所有服务器上,主要使用 HDFS 分布式文件存储系统,将文件分成很多块(Block),以块为单位存储在集群的服务器上。

2. 使用大数据计算框架支持的编程模型进行编程,比如 Hadoop 的 MapReduce 编程模型,或者 Spark 的 RDD 编程模型。

3. 大数据引擎根据集群里不同服务器的计算能力,在每台服务器上启动若干分布式任务进程,这些进程会等待给它们分配执行任务

4. 执行引擎会解析程序要处理数据的输入路径,根据输入数据量的大小,将数据分成若干片(Spit),每一个数据片都分配给一个任务执行进程去处理

5.任务执行进程读取自己需要处理的数据,并把数据输入给应用程序相应的方法去执行,从而实现在分布式服务器集群中移动计算,并行处理的目标。

这只是大数据计算实现过程的简单描述,具体过程会在写到HDFS、MapReduce 和 Spark 的时候详细讨论。

5

小小的题外话

炎热的夏天,出门去公司写代码已是相当不易,每天还要处理这么多琐碎的事,那么你是否碰到过,想让同事帮你处理个事情,但是他们都互相踢皮球给对方,影响到你的心情呢?

公众号回复,“踢皮球”,给你一些小建议

与你共勉

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 KK架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档