微店大数据开发平台架构演进
为什么需要大数据开发平台?
微店在16年4月份之前,数据开发流程基本是这样的:
开发人员通过公共账号登录安装了Hive、Hadoop客户端的gateway机器;编写自己的脚本,调试代码,完成后通过crontab配置脚本定时执行;为了防止脚本被其他同事修改,一些谨慎的同事会在每次开发完自己的脚本后同步一份到本机,后面为了实现版本控制,把脚本同步到了git;这存在诸多问题:如:效率低下;脚本或代码没有版本控制,开发人员想回滚到以前的版本很不方便等。为此,开发一个大数据开发平台,提高大数据开发的效率,为线上每天调度的任务保驾护航已迫在眉睫。
大数据开发平台建立在HDFS、YARN、HiveMeta的基础服务之上,目前支持通过Hive、Kylin查找数据,后面所有的数据查询入口将都集成在这里,包括:ES、Redis、Hades等,大数据平台目前支持Shell、Hive、MR、Spark四种任务类型。
大数据平台从数据层面来说,包括数据本身和元数据;从业务层面来说,在数据中心(数据仓库)的基础上,支撑数据分析、数据挖掘,提高其分析、挖掘效率;从管理角度来说,为了提升开发效率,需要利用好组件管理平台,对元数据进行管理,打造数据开发运维平台。
在此基础上,一个完善的大数据架构,至少包括三个方面:
1,开发组件管理平台:用于搭建和管理大数据开发组件,如etl、hdfs、hbase、presto、kerbose等;
2,数据资产(元数据)管理平台:元数据采集、元数据管理、血缘分析、数据质量、数据标准、数据指标、数据生命周期管理等。
3,开发运维平台:数据脱敏、权限管理、调度管理、开发管理、发布管理、运维监控与预警等等。
遗留问题:
检测未跑任务。master挂掉或部署过程中的定时任务不会被触发,需要有机制发现这种任务。重新部署后,正在运行的任务会重新跑。正在运行的任务会被master取消掉,重新分配执行,如果任务执行需要较长的时间,这样做就是无法接受的。检测数据质量。目前输出表仅简单的检测了数据浮动(即数据大小),对于表中的数据内容需要进一步检测,以保证数据产出的合法性。
后续发展方向
资源账单。规范用户Hadoop资源使用。数据地图。方便用户找数据。血缘关系。方便用户追溯数据来源。数据流动。方便数据互通。
因此,我认为大数据架构设计需要兼顾不同需求,根据不同的数据分析、数据挖掘场景,在资源限制与性能要求下,提供不同的平台方案。对于大数据架构师,不仅要熟悉各种组件的使用及其适用场景,还需要熟悉组件管理、元数据管理、开发运维管理等。其搭建的平台,能否提高数据分析效率,能否提高数据挖掘的效率,能否保证数据质量,能否打通整个数据链条等。
文章来源:
https://mp.weixin.qq.com/s?__biz=MzIzMDEyNzM4NQ==&mid=2650956332&idx=1&sn=9fe0952942de8f96d9a1d12f66dcd462&chksm=f34ee05ac439694cb02b8e389f35e201aafea966f51c3a594dacdd29a4d22cde32954bd5bfc4&scene=21#wechat_redirect