用户时代,小米数据工场如何做技术架构与数据处理
小米数据工场主要承担着为全公司各团队及小米的生态链企业,提供数据采集、计算、存储等基础能力,以及机器学习、挖掘的工具和方法的任务。
作者:51CTO技术栈
来源:51CTO技术栈
2017-05-22 14:02:00

小米数据工场的技术架构

小米数据工场主要承担着为全公司各团队及小米的生态链企业,提供数据采集、计算、存储等基础能力,以及机器学习、挖掘的工具和方法的任务。

整个底层基础平台建立在 Hadoop 体系之上。考虑到扩展性,数据工场天生基于 Scala 设计成分布式架构。由于小米及其生态链企业业务场景丰富 ,因此在技术选型方面全生态都会涉及,如消息流、批处理、实时计算等技术都需要用到,HBase、Hive、Spark、Storm 、Impala 都在不同的场景下使用。

最底层使用 HDFS,上面使用 Hive、Spark 和 Mapreduce 这些混合到一个亚运集群上。而且 Impala 小米很早就在用,是一个很重的计算角色。

0

小米数据工场总体结构

如上图,上半部分是小米自研的数据工厂,是为最顶部业务层提供服务的。数据工厂主要是提供数据可视化、计算任务管理、数据管理、权限管理、任务调度、数据共享等服务。

公司越大就更希望数据能够开放给公司的各个部门,数据可相互利用。但不能没有任何限制的去使用,所以需要对数据权限做管理。

任务调度是整个工厂里面最重的部分。数据共享就是类似非常火的用户画像类数据,还有其他公共数据如 IP 库,这些数据具有公共特点,不用重复计算,就可以通过数据共享的方式在各个团队之间使用。

数据管理

分为数据预览、元数据、数据源三部分。

数据预览,是每个团队用来互相了解数据。

元数据,就是数据使用过程中要把非结构化的数据转换成结构化的数据。元数据管理就是去了解每个字段的含义和机器解析。机器解析包括 Mapreduce 程序可直接读文件可解析,如用 Impala、Spark 和 Hive 同样也能解析,而不需要每个使用者再去格式化,再去解析这个数据。但面临的问题是数据一旦出现格式的转变或者某些字段的调整,以前任务可能都会出现问题,所以一定要统一管理的地方。

数据源,数据管理非常核心的是数据集成,能够把各个地方的数据集成到平台上来。

HDFS 目录管理

有公共数据空间、业务数据空间、团队数据空间、个人数据空间、Yarn计算空间五部分。

公共数据空间,是用来把公共数据放到上面,把维护权限和读的权限分开。这样大部分都是读这个空间,空间数据安全性等级相对来讲比较低,可以付给更多人。

业务数据空间,因为每个业务数据的增长量是不一样的,甚至有些业务会出现如刚上来一个新功能,数据量迅速的增大,有的甚至会出现某个团队的数据增加,导致把整个集群空间全吃掉,又没有事先打招呼。这种情况下做好业务间的限额配额非常重要,防止某一个团队的增长导致整个集群出现一些问题。

团队数据空间,就是把权限控制到个人,用来帮助做团队之间的数据协作。如把线上任务放到团队账号中去,团队账号的权限要做好控制,权限不随便开放。当团队人员发生变动后,整个团队任务不用再去切换账户而导致交接的复杂性。

个人数据空间,数据工程师、开发工程师等是需要做一些调试或做自己的计算,这就要给这些人一定空间的同时对其数据做配额。这是为了防止这些人过多的使用资源和为了空间不够需要清理数据时,哪些数据要清理,哪些数据不能清理一目了然。这样限制空间的情况下,废弃文件或者垃圾文件的积累会相对较少。

Yarn计算空间,做配额限制是为了杜绝空间滥用的问题。比如:之前发生过一件事,某人在 Reduce 里面写了一个死循环,不停的输出数据,导致整个集群很快出现报警。后来才发现是这个计算造成的一些问题,最后差点导致那些日志上传、数据的写入都出问题,幸亏处理的比较及时。

所以,Yarn 计算空间是需要做一个配额限制,防止对整个集群造成过大的影响。

小米数据处理方式

除了底层的能力,小米数据工场也为公司及生态链企业提供一些具体的基础数据服务,用于小米信用卡的风控和额度评估、广告精准投放、限时抢购时用数据打击黄牛等等。通过数据工场提供的数据能力,企业不仅能够对业务进行数据分析,也实实在在将数据应用到核心业务场景中。

小米数据存储格式

统一采用的 Parquet,优点在于其使用的是列式存储,支持Mapreduce、Hive、Impala、Spark 和读取快、占用空间少。

客户端数据接入

客户端指的是 Wap、App 等数据,存在方式有 SDK 和服务端 Log 两种模式。下图为两种模式的优劣势。

1

客户端数据接入两种模式优劣势

服务器端数据源

除前端数据源外,整个处理数据时还会有大量服务器端数据源需要处理。业务数据库类,用 ETL 工具做导入。服务器端日志,用 Scribe 将数据写入 HDFS.

元数据管理

当公司业务变多后,每一个数据的处理方式都有可能不一样,这时候就凸显出元数据管理的重要性。如视频播放日志,分析师希望用 Hive,用 Impala 直接写 SQL 去计算,但数据挖掘工程师就要去写 Mapreduce,写 Spark 的方式去读,去解析。

元数据管理就是要做数据统一,既能够满足 Hive、Spark、Impala,还能满足 Mapreduce.这样一来节省大家对数据理解、执行的时间。

2

元数据管理

如上图,小米数据工厂是每一份数据的描述都需要在数据工厂上提交,之后数据工厂会在 MetaStore 中做建表的同时带上元数据的行为,供 Hive、Spark、Impala 使用。数据管理还会生成 Jave Class,给 Mapreduce 使用。当去解析用某个数据的时候,可以直接用这样的方式把它解析成 Jave 类。

计算管理

数据管理相对来讲是一次性的活,计算就是很复杂的事情。计算任务数一天达到几千或过万时,就会变得非常复杂。对于计算管理这块的优化,小米做了如下一些工作:

5

Docker

为了管理好这些纷繁的计算框架和模型,在计算的执行方面,小米使用 Docker 来解决对环境的不同需求和异构问题,并且与 Hive、Impala、Spark 这些不同的计算模型都进行了对接,去适配不同应用场景计算不同数据的模型。

另外,在不同业务场景下,同一个计算逻辑也可以选用不同的计算模型,Docker 的使用也避免了资源的浪费。比如:一个计算任务每天凌晨运行,为了追求吞吐量,可以放到 Hive 里跑;还是同样一个计算模型,现在就要跑,可以不用更改,就放到 Impala 里运行。

Docker 不仅解决了环境的异构,也解决了资源问题。

另外,Docker 的环境适应性很强,做横向扩展会比较容易。对于数据隐私方面,小米考虑得非常重。采用 Docker 与自身安全策略的综合,小米用户数据的隐私和安全性也得到了极其严格的控制。

总结

无论你用什么样的技术,一定要做好数据的积累,这是一家数据公司非常重要的部分。不仅要提前规划好数据,还要避免逻辑孤岛,还需要注意 ID 问题,也就是关联的问题。不要当采集了数据,却发现没有采用户 ID,当算到用户级别的时候,那就尴尬了。

以前讲的是流量时代,讲的是 PV 如何,而现在越来越多的业务都回到了用户时代。核心问题就是我们要做好用户的数据积累,尤其是用户模型建立。模型包括画像、用户点点滴滴行为等。这些行为在业务发展之后,尤其是要做数据挖掘,做推荐系统时,会非常有帮助。

关注中国IDC圈官方微信:idc-quan或微信号:821496803 我们将定期推送IDC产业最新资讯

查看心情排行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2018-03-14 10:59:51
市场情报 MIUI小米音乐与太合音乐达成战略合作,共同为优秀音乐人赋能
3月14日,小米音乐宣告正式与太合音乐集团成功签署合作协议,达成了包括音乐版权、演出票务合作、粉丝运营等全方面合作。该协议的签署预示着小米与太合音乐集团达成战略合 <详情>
2018-03-13 15:02:00
云资讯 微软选择小米只是为了狙击阿里?背后原因与云计算有关
与谷歌(Google)和亚马逊(Amazon)等竞争对手相比,微软在中国市场做出了更明智的举动。谷歌2010年突然离开中国,为百度打开了大门,而亚马逊未能在阿里巴巴占据中国电子 <详情>
2018-03-13 10:53:00
区块链 小米是迅雷区块链最大的利空
在即将上市的这个时间点上,我倒是不觉得小米会涉足区块链和ICO这样的敏感业务,毕竟小米其实早就已经是区块链领域的巨头了。从实际控制人的角度来说,雷军对迅雷的控制, <详情>
2018-03-06 15:39:55
互联网 彭博社:小米进军美国不只是为卖手机 还是为IPO造势
据彭博社北京时间3月6日报道,小米创始人兼董事长雷军在两会期间对记者表示,小米计划在今年年底或明年初进军美国市场,在当地销售智能手机。 <详情>
2018-03-05 10:44:09
互联网 IDC:可穿戴设备市场恢复活力,苹果逆转小米和Fitbit重返第一
IDC今天发布的可穿戴设备市场报告显示,2017年第四季度购物季苹果公司以21%的市场份额成功夺回市场第一地位,年度市场份额统计也以15.3%的份额领跑。 <详情>
2018-03-01 14:23:54
互联网 传小米或将在A股和港股同时上市 雷军或将成中国首富
千亿美金估值意味着,一旦成真,小米将成为2014年阿里巴巴赴美上市以来,上市规模最大的科技类公司。 <详情>
2018-02-28 09:45:00
大数据资讯 微软携手小米,就人工智能、云计算和硬件达成合作
小米和微软签署了战略框架谅解备忘录(MoU),将在人工智能、云计算、硬件等方面展开更密切的合作。 <详情>
2018-02-23 11:06:00
云资讯 小米微软签署战略性合作备忘录 涉及云服务、人工智能等
小米与微软正在共同探索,进一步利用微软智能云Azure平台和服务,在国际市场上为小米提供用户数据存储、带宽、计算等服务。 <详情>
2018-01-17 11:11:13
市场情报 MIUI9完成全部机型升级推送了!MIUI10还会远么
1月17日,MIUI9稳定版迎来了最后一批机型推送升级,除了个别机型,几乎覆盖了小米和红米系列的全部机型,甚至包括五年前发布的小米2/2s.本次升级推送具体机型包括:小米2/2 <详情>
2018-01-02 10:42:03
市场情报 博通吞并高通一旦成行,小米、OPPO、vivo恐将减缓发展脚步
据悉,博通吞并高通的事件已经开始向着恶意收购的方向发展了。由于高通的很大一部分股东都是机构投资者,所以博通打算说服这些机构投资者从而实现高通董事会成员改选,进而 <详情>

51CTO技术栈

阅读量
阅读排行榜