大数据架构初步
Hadoop技术生态架构
Hbase
侧重于结构化的数据,其数据都存在于HDFS上,可以相当于在HDFS的基础上又进行了封装,新版的Hbase支持对数据的增删改操作,而HDFS是不支持数据的修改的。Hbase上的数据是以key-value的形式存储,Hbase是一种非关系型数据库,即NoSql;
MapReduce
是一种计算框架,延时性较高,适合对离线数据进行计算处理;
Storm
Hadoop生态下的计算框架之一,流式数据处理,延时性低,适合实时计算,只负责计算不负责存储,目前Storm并不常用,如今常用的实时计算框架有Flink、Spark。
Hive
Sql语言转换工具,支持Hsql语句,但有一些细节不一样,能够将Hive的sql语句进行翻译,转换成难理解的MapReduce,实质就是MapReduce的一个封装,简化了MapReduce的工作流程;
Mahout
凌驾于计算框架之上的封装,为了解放生产力,封装了数据挖掘算法模型,基于MapReduce运行;
RDBMS
关系型数据库(MySql等),存储的数据是经过汇总聚合过后的数据,非大数据,可以对数据进行一个实时大屏展示;
Zoopkeeper
进行资源调度,分配,协调Hadoop的生态架构稳定运行;
Online Engine:
大数据生态架构的业务
搜索引擎概述
如今搜索引擎在我们生活中十分常见,比如说百度、搜狐、Bing、Google等。
搜索引擎架构
爬虫:数据收集中心,一个互联网世界的缩影;
索引系统:分析整理爬虫收集的资源,为检索系统提供数据;
检索系统:从预处理好的资源里挑选出用户最满意的结果,最快最好的展现;
补充:倒排索引
1 | # 倒排索引 |
广告系统概述
比较常见的广告系统有淘宝的直通车、案例妈妈、淘宝客和百度的搜索推广、网盟推广、百度精准广告以及Google的AdWords、AdSense。
一般广告系统收费有:
- 搜索广告点击收费(CPC)
- 展示广告展现计费(CPM)
- 淘宝客(CPS)
- 按照成交收费
淘宝广告推荐系统架构
业务系统比如说用户系统、订单系统、购物车、商品查询等不同的业务系统。通过这些业务系统产生的数据,线上的数据一般存在Hbase,离线数据一般存放于HDFS或者Hive,离线数据用于算法的训练,根据不同的业务场景,选择不同的算法训练提交结果给对应的引擎。
比如引擎A通过协同过滤,引擎B通过打分策略,引擎C通过相似度等算法得到一个推荐物品子集,分别对A、B、C引擎的推荐结果通过规则过滤去重,得到处理过的候选集,进行全局排序打分,把得分最高的物品优先进行前端展示。
同时通过防作弊算法,过滤掉有刷单等作弊行为的数据,最后对得到的数据,如果是曝光度、点击率等数据,对商家进行收费,如果是订单类数据则针对用户进行收费,形成一个闭环。
推荐系统架构
日志系统
用户产生的日志行为数据提供给推荐系统,输出结果给UI界面展示,然后用户在界面上的点击行为、跳转行为通过埋点获取数据,日志系统收集这些数据,推荐系统又能够拿到用户实时的反馈数据,针对推荐策略进行优化,将结果进一步展示到UI界面,实现闭环,即数据来源于用户又服务于用户。