再看《大数据下的数据分析平台架构》:
来源于Admaster数据挖掘总监 谢超
看名字Admaster,是一个广告推荐公司。
就是帮广告公司分销广告的公司。
广告公司接到各种企业来的广告,而自己本身没有能力做网络推销
那么只有依托Admaster这类可以精准定位产品用户的公司,来帮其分发广告
Admaster可以说是二道贩子,但是随着互联万的越来越成熟,这类公司反而更容易称为主流
回到主题上来,这文章主要讲解的是大数据下的数据分析平台架构。
首先,离开场景讨论架构,那都不切实际。
因此首先要明确,我们的场景是什么
作者在他的文中,解释了几个常见的需要用到大数据分析架构的应用场景:
1. 按照数据分析的实时性,分为实时数据分析和离线数据分析
传统的实时数据分析,通过精心设计的RDBMS集群可以完成,比如 EMC的 GreenPlum, SAP HANA
但对于数秒内返回上亿行数据的分析结果,这时候就要引入Storm, Spark 等新型实时流处理技术了。
这一点鉴于当时作者的写作时间来看,他也是没预料到生态发展这么快。
而离线大数据分析,依然是Hadoop的强项。
因为大量数据的转换,传统的ETL造成的开销太大,因此采用kafka, Chukwa, Timetunnel这类工具,才能实现在每秒数百MB的数据采集操作,将数据上载到Hadoop的分布式存储上,
调用MapReduce 来处理。
同样的,现在已经可以说由 Spark 替代了
2. 按照大数据的数据量,分为内存级别,BI级别,海量级别
内存级别就是分布式内存计算。总量不超过集群的总内存量。
可以是各种NoSQL, MongoDB, Redis, Memcached 的集群应用
也可以是Spark 集群的并行计算。
BI级别,就是传统的数据仓库那个量,但是比 NoSQL 这种只将数据存入内存的场景,数据显然多很多。但是这类应该放入 传统的BI,作者放在这里,应该只是为了提供比较
海量级别,就是传统的BI无法处理的数据量了。一般的BI数据仓库,TB级以上就算很大了。但是互联网企业中,海量的意思,可能是PB,也就是1024个BI数据仓库的规模。因此传统BI的工具,比如 SSIS, Informatic, Data Stage, BO 等ETL, 报表工具就无法完成计算与存储了。此时,hadooop 的HDFS 就应运而生了。分布式存储,意味着增加机器就能线性扩容。
3. 按照数据分析的算法复杂度:
简单的排序分析,总数据量不大于内存,使用 Redis 就能轻松完成了
大规模的人脸识别,图形渲染,自然是使用并行处理集群
流量统计,推荐引擎,趋势分析,用户行为分析,分布式索引等统计分析,机器学习等问题
则可以使用 MapReduce 算法改写。
还有一类 大数据OLAP分析,使用NoSQL, RDBMS并不是处理强项,
甚至使用Hive也是仅能解决数据量大小的问题,而不是彻底解决灵活维度分析的难点
所以还是需要使用 Hadoop MapReduce开发程序
但是在这里,Spark 的出现可以有效缓解以上“阵痛”。作者的这篇文章是写于 2011 年。
而 Spark 则出身于2009年, 但被世人所知是2012年,那年开始在 Bay Area 推广。
所以MapReduce不再是唯一的大数据 OLAP 选择
更别说之后,生态圈又出现了 Apache Kylin, Kyvos, AtScale 等等
Google 上(没有在百度搜过)输入 Big Data OLAP tool 会出现一堆
只有熟悉了整个大数据生态圈,才会挑合适的工具来完成适合你业务场景的平台架构
努力吧!