Hadoop技术生态架构

HDFS

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等。

image-20210131192738051

搜索引擎架构

搜索引擎架构

爬虫:数据收集中心,一个互联网世界的缩影;

索引系统:分析整理爬虫收集的资源,为检索系统提供数据;

检索系统:从预处理好的资源里挑选出用户最满意的结果,最快最好的展现;

补充:倒排索引

1
2
3
4
5
6
7
8
9
# 倒排索引
keyword:数据开发 # 假设在界面上搜索“数据开发”
URL1 -> parse(解析) -> 数据开发, 入门, 精通 # 通过搜索会得到很多URL,对这些URL进行解析得到一些关键字词
URL2 -> parse -> 海量数据, 一站式数据
URL3 -> parse -> 学习, 数据开发
...

数据开发 -> URL1, URL2, URL3, ... # 针对数据开发关键字进行搜索可以得到相应的URL
入门 -> URL1

广告系统概述

比较常见的广告系统有淘宝的直通车、案例妈妈、淘宝客和百度的搜索推广、网盟推广、百度精准广告以及Google的AdWords、AdSense。

一般广告系统收费有:

  • 搜索广告点击收费(CPC)
  • 展示广告展现计费(CPM)
  • 淘宝客(CPS)
    • 按照成交收费

淘宝广告推荐系统架构

image-20210222234750613

业务系统比如说用户系统、订单系统、购物车、商品查询等不同的业务系统。通过这些业务系统产生的数据,线上的数据一般存在Hbase,离线数据一般存放于HDFS或者Hive,离线数据用于算法的训练,根据不同的业务场景,选择不同的算法训练提交结果给对应的引擎。

比如引擎A通过协同过滤,引擎B通过打分策略,引擎C通过相似度等算法得到一个推荐物品子集,分别对A、B、C引擎的推荐结果通过规则过滤去重,得到处理过的候选集,进行全局排序打分,把得分最高的物品优先进行前端展示。

同时通过防作弊算法,过滤掉有刷单等作弊行为的数据,最后对得到的数据,如果是曝光度、点击率等数据,对商家进行收费,如果是订单类数据则针对用户进行收费,形成一个闭环。

推荐系统架构

image-20210131201927742

日志系统

image-20210131202413829

用户产生的日志行为数据提供给推荐系统,输出结果给UI界面展示,然后用户在界面上的点击行为、跳转行为通过埋点获取数据,日志系统收集这些数据,推荐系统又能够拿到用户实时的反馈数据,针对推荐策略进行优化,将结果进一步展示到UI界面,实现闭环,即数据来源于用户又服务于用户。

抽象出的三种推荐方式

image-20210131202827229

优酷推荐引擎

image-20210131202905380