编程技术网,编程语言,IT新闻,code,代码审查

什么样的大数据平台架构,才是最适合你的?

2018-10-12 15:59

东北二嫂水仙,国术之拳魂,车险排行榜,西安驾校网开车的注意事项,综琼瑶之祖孙斗,文胸尺码34

技术最终为业务服务,没必要一定要追求先进性,各个企业应根据自己的实际情况去选择自己的技术路径。
它不一定具有通用性,但从一定程度讲,这个架构可能比BAT的架构更适应大多数企业的情况,毕竟,大多数企业,数据没到那个份上,也不可能完全自研,商业和开源的结合可能更好一点,权当抛砖引玉。
大数据平台架构的层次划分没啥标准,以前笔者曾经做过大数据应用规划,也是非常纠结,因为应用的分类也是横纵交错,后来还是觉得体现一个 能用 原则,清晰且容易理解,能指导建设,这里将大数据平台划分为 五横一纵 。
具体见下图示例,这张图是比较经典的,也是妥协的结果,跟当前网上很多的大数据架构图都可以作一定的映射。

何谓五横,基本还是根据数据的流向自底向上划分五层,跟传统的数据仓库其实很类似,数据类的系统,概念上还是相通的,分别为数据采集层、数据处理层、数据分析层、数据访问层及应用层。
同时,大数据平台架构跟传统数据仓库有一个不同,就是同一层次,为了满足不同的场景,会采用更多的技术组件,体现百花齐放的特点,这是一个难点。
数据采集层:既包括传统的ETL离线采集、也有实时采集、互联网爬虫解析等等。
数据处理层:根据数据处理场景要求不同,可以划分为HADOOP、MPP、流处理等等。
数据分析层:主要包含了分析引擎,比如数据挖掘、机器学习、 深度学习等。
数据访问层:主要是实现读写分离,将偏向应用的查询等能力与计算能力剥离,包括实时查询、多维查询、常规查询等应用场景。
数据应用层:根据企业的特点不同划分不同类别的应用,比如针对运营商,对内有精准营销、客服投诉、基站分析等,对外有基于位置的客流、基于标签的广告应用等等。
数据管理层:这是一纵,主要是实现数据的管理和运维,它横跨多层,实现统一管理。
1、数据采集层,这是基础。
离线批量采集,采用的是HADOOP,这个已经成为当前流线采集的主流引擎了,基于这个平台,需要部署数据采集应用或工具。
诸如BAT都是自己研发的产品,一般企业,可以采用商用版本,现在这类选择很多,比如华为BDI等等,很多企业技术实力有,但起步的时候往往对于应用场景的理解比较弱,细节做工很差,导致做出来的产品难以达到要求,比如缺乏统计功能等,跟BAT差距很大,传统企业去采购这类产品,要谨慎小心。
一个建议是,当采购产品的时候,除了技术先进性和指标外,更多的应该问问是版本啥时候上线的,是否在哪里成功部署,是否有足够多的客户,如果能做个测试就更好,否则,你就是小白鼠哦,这个坑踩了不少。
能做和做成产品是两个境界的事情,小的互联网企业当然也能做出对于自己好用的采集工具,但它很难抽象并打造出一个真正的产品,BAT自研其实形成了巨大的优势。
实时采集现在也成了大数据平台的标配,估计主流就是FLUME+KAFKA,然后结合流处理+内存数据库吧,这个技术肯定靠谱,但这类开源的东西好是好,但一旦出现问题往往解决周期往往比较长。
除了用FLUME,针对ORACLE数据库的表为了实现实时采集,也可以采用OGG/DSG等技术实现实时的日志采集,可以解决传统数据仓库抽全量表的负荷问题。
爬虫当前也逐渐成为很多企业的采集标配,因为互联网新增数据主要靠它,可以通过网页的解析获取大量的上网信息,什么舆情分析、网站排名啥的,建议每个企业都应该建立企业级的爬虫中心,如果它未在你的大数据平台规划内,可以考虑一下,能拿的数据都不拿,就没什么好说了。
企业级的爬虫中心的建设难度蛮大,因为不仅仅是需要爬虫,还需要建立网址和应用知识库,需要基于网页文本进行中文分词,倒排序及文本挖掘等,这一套下来,挑战很大,当前已经有不少开源组件了,比如solr、lucent、Nutch、ES等等,但要用好它,路漫漫其修远兮。

上一篇:数据库大调查:MySQL狠甩第二名好几条街

下一篇:攀枝花建"新的社会阶层人士"数据库 都有哪些群体?