全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 学道会
416 1
2019-07-12
大规模数据处理学习02:
1.对于复杂的处理架构,会使用多个Map和Reduce,而每一个需要依赖其他的map或reduce,所以每一个map或reduce在进行前都会去做很多检查,最后这个系统就会不堪重负。
解决办法:我们用有向图建模,图中的每一个节点都可以被抽象地表达成一种通用的数据集,每一条边都被表达成一种通用的数据变换,如此,就可以用数据集和数据变换描述极为宏大复杂的数据处理流程,而不会迷失在依赖关系中无法自拔
2.对于MapReduce复杂的配置(为了时间性能优化的配置)需要自动化进行性能优化,如果人容易犯错误,就让人少做一点,让机器多做一点;还有一种自动的优化是计算资源的自动弹性分配
3.在数据处理开始前,需要有一个自动优化的步骤和能力,而不是按部就班的就把每一个步骤直接扔给机器去执行
4.用有向图进行数据处理描述的话,实际上数据处理描述语言部分完全可以和后面的运算引擎分离,有向图可以作为数据处理描述语言和运算引擎的前后端分离协议,比如数据描述可以用Python描述,由业务团队使用,计算引擎用C++实现,可以由数据底层架构团队维护并且高度优化,或者我的数据描述在本地写,计算引擎在云端执行
5.批处理处理的是有界离散的数据,比如处理一个文本文件;流处理处理的是无界连续的数据,比如每时每刻的支付宝交易数据,MapReduce的一个局限是它为了批处理而设计的,应对流处理的时候不再那么得心应手

6.要设计一套基本的数据监控能力,对于数据处理的每一步提供自动的监控平台
7.总体架构图:
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-7-12 22:23:08
学习笔记奖!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群