数智萤火虫|大数据运营技术与工具:大规模数据分析的微积分
_本文原题为:大数据运营技术与工具:大规模数据分析的微积分
本文属于李福东《大数据运营》第8章内容的重构升级版 , 了解更多请关注wx公号:李福东频道 , 或下载知识星球APP , 找“84404036” 。
内容摘要
离线计算框架MapReduce属于最典型的大数据分析技术之一 , 它以大数据块为操作单位 , 首先以映射(Map)的方式对数据进行切分操作(微分) , 然后再对集合内数据进行收缩(Reduce)聚合运算(积分) 。
大规模数据分析的微积分
“主机+磁盘阵列”的系统结构实现了计算能力与存储能力的分离 , 适用于数据存取次数多、单个数据量小的事务型应用 。
但是 , 大数据时代都是海量数据(PB级+)的处理 , “主机+磁盘阵列”式的系统架构会导致主机集群与磁盘阵列之间消耗大量的网络带宽 , 这种架构方式大大降低了系统的处理效率 , 无法满足大数据时代的要求 。
为了解决大规模数据的处理效率问题 , 需要开启不同的思维模式 。
比如 , 能否将数据存储在主机内部 , 减少数据存取的外部IO(输入输出) , 而不是主机外部的磁盘阵列上?
再比如 , 是否可以以大数据块为存取单位 , 减少数据存取次数 , 而不是以小数据字节为单次数据存取单位?
沿着以上的问题和思路 , 谷歌公司提出了GFS、MapReduce、BigTable这样的大规模分布式数据处理方案 , 解决互联网Web大规模数据的存储和快速检索问题 。
GFS以大数据块为单位进行数据存储 , 而MapReduce则相当于基于GFS之上的数据分析引擎 , 按照分析需求对大数据块进行处理 , 处理思路类似于高等数学中的微积分 。
MapReduce的数据处理过程如图8-3-4所示:
文章图片
从图8-3-4可以看出 , 输入文件1到输入文件3是以文件形式存在的原始数据 , 原始数据经由Map(映射)、Sort(排序)和Reduce(聚合)三个子过程 , 最后输出满足统计要求的结果文件 。
为了更加直观地看到MapReduce的数据处理过程 , 下面以电信运营商海量上网记录统计为例 , 从时间和地域维度统计某个时段的上网数据流量 。
移动用户上网记录的原始数据如下所示:
文章图片
以上以5条上网记录为原始数据源 , 我们的目标是按日期统计上网流量 。
为简单起见 , 上网记录样本数据中仅保留了本案例所需的上网流量(最左一列8位数字)、上网日期(中间一列)和手机号码(最右一列) 。
假如以第1条和第2条上网记录作为输入文件1的内容 , 第3条和第4条上网记录作为输入文件2的内容 , 第5条上网记录是输入文件3的内容 , 如下所示:
文章图片
三个输入文件分别首先经过Map(映射)操作 , 从输入文件指定位置提取键值对到不同的Map集合中 , 作为Sort的输入 。
本例中的日期为“键” , 本例中的“值”为上网流量 , 如下所示:
文章图片
提取后的键值对包括5个 , 分别如下:
文章图片
这些键值对经由Sort(排序)操作将其放入相应的分组中 , 分组结果如下所示:
文章图片
Sort操作后的结果又成为Reduce的输入 , 其中Reduce1的输入为Sort1 , Reduce2的输入为Sort2 , Reduce实际上是执行聚合(sum)操作 , 根据预先编制的Reduce程序 , 需要对多个值求和 , 结果如下:
推荐阅读
- Python之王|Pandas数据合并与拼接的5种方法
- 「杨辉」中科院学者涉嫌剽窃科研想法、数据造假,听一场报告就能发Cell?
- 科技小数据|产业观察:如何通俗地理解5G及其应用
- 雷科技|为解决App连接问题,特斯拉迁移数据至中国,开车不再“卡顿”
- 大数据系统|倾力分享!,2020小红书kol推广8种玩法
- 小熊带你玩科技|全新等离子体光子芯片:利用光进行超高速数据传输
- 蓝色星晨|以对比1977年的气候变化数据,科学家在南极最大冰架上钻取样品
- 灵锦文化|网络安全需求有望进一步加速释放,《数据安全法》出台
- 鲍跃忠新零售工作室|数据的价值在于链接
- 金十数据|向芯片业注入2614亿!或担忧“中国芯”崛起,美国提出2项新法案