广告行业的大数据处理架构实践

广告行业的大数据处理架构实践

如果您希望阅读更多的大数据机器学习的文章,请关注公众号:QCon大数据机器学习

时间:2015年5月26日 晚20点

讲师介绍:AdMaster技术副总裁,资深大数据技术专家。关注高可靠、高可用、高扩展、高性能系统服务,关注Hadoop/Storm/Spark/ElasticSearch等离线、流式及实时分布式计算技术。曾在联想研究院、百度基础架构部、Carbonite China工作;拥有超过10年云存储、云计算开发及架构工作经验,多年Hadoop实战经验,专注于分布式存储、分布式计算、大数据分析等方向,有多个发明专利,《一种分布式文件系统及其数据访问方法》和《一种数据备份的版本管理方法及装置》等。曾多次被CSDN、51CTO、IT168、InfoQ、阿里技术邀请为嘉宾分享Hadoop大数据在互联网的应用。

内容大纲:

(1)、混合异构数据介绍

(2)、混合异构数据平台架构

(3)、混合异构数据分析

(4)、广告数据平台与混合异构数据的融合

(5)、广告反作弊实践分析

(6)、AdMaster数据处理平台架构实践

======讲座实录======

大家晚上好,非常感谢大家的支持。

这是今天我分享的提纲,如果后面大家有问题可以再增加的。谢谢!

首先我们来看看混合异构数据的特点,最重要的两个特点是混合异构数据具有不同的数据类型以及用户有着不同的访问速度需求。

大家看到我给混合异构数据进行了一个简单分类,分为在线数据和离线数据,中间是用虚线分开,意思是说他们没有严格意义的划分。最重要的看需求来切分。

接下来我们来看看混合异构数据的流程,首先我们先来看很重要的部分-数据采集

数字、字符等称为格式化数据;

文本、图形、图像、声音、视频等称为非格式化数据;

融合分析这些数据的第一步是数据的预处理,传统企业信息系统中ETL是群内各位最熟悉的一种预处理过程。当我们进入大数据之后,仅仅进行数据的抽取、转换和加载往往会带来灾难,我们必须花费很大的努力去做数据清洗,确保宝贵的大数据算力和存储资源用在了有价值的分析计算之上。

这是混合异构数据平台的一般架构。

咱们群里对此系统应该都非常熟悉了,这里重点说两个系统一个是Flink,一个Elasticsearch。

Flink是一个高效、分布式、基于Java实现的通用大数据分析引擎,它具有分布式 MapReduce一类平台的高效性、灵活性和扩展性以及并行数据库查询优化方案,它支持批量和基于流的数据分析,且提供了基于Java和Scala的API。

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

接下来我给大家介绍广告数据平台与混合异构数据的融合

首先我们来看看广告营销数据的一些概念

我们收到的广告来源主要有展示广告,各种SNS,以及搜索引擎等

我们一般分两大类,一个是全流程营销,一个实时竞价营销。

RTB(Real-Time Bidding) 实时竞价,是一种利用第三方技术在数以百万计的网站上针对每一个用户展示行为进行评估以及出价的竞价技术,它的核心是DSP平台(需求方平台)。

Ad Exchange 是互联网广告交易平台,像股票交易平台一样,实现以每个用户为单位的竞价交易,AdExchange联系的是广告交易的买方和卖方,也就是广告主方和广告位拥有方。

DSP(Demand-Side Platform) 即需求方平台。它是一个广告主服务平台,广告主可在DSP平台上设置广告的目标受众、投放地域、广告出价等等。

SSP(Sell-Side Platform) 即供应方平台。能够让出版商也介入广告交易,从而使它们的库存广告可以获得较高的单位展示费用和售出率,从而实现收益最大化。

DMP(Data-Management Platform) 数据管理平台,是把分散的第一、第三方数据进行整合纳入统一的技术平台,并对这些数据进行标准化和细分,从而把这些细分结果推向现有的互动营销环境里。

上面图是各个部分的关系,出版商和广告主是核心人物

接下来我给大家讲几个广告里结算的方式:

1.CPM(Cost Per Mille,或者Cost Per Thousand;CostPer Impressions)这是听的最多的。

大家注意,这里M不是指Million。是指千人成本。

2.CPC(Cost Per Click;Cost Per ThousandClick-Through) 按点击计费。

3.CPA(Cost Per Action)按广告投放实际效果计费。

当然还有CPV,CPD,CPS等等,这里我就不详细说了。

我们了解到广告精准投放主要是指3W原则

而要做这样的效果主要是由以下方法来分析的

其实这是一个典型的推荐系统的流程。

而主要用到的方法是如下:

核心算法主要用到有SVM,自然语言处理,聚类分析,回归分析,时间序列分析。

举一个时间序列:同一个人在不同的时间段具有不同的角色,举例子一个男人在上班的时候是职员,回家后就是父亲的角色了。如果在上班的时候你给他推荐儿童用品,他一般不会购买的,但回家后你再推荐他就可能会购买了。

广告数据的数据类型多样,算法以及时效也多种,跟混合异构数据架构是融合在一起的。

所以接下来我们看看系统里用的最多的分析方式:

对于OLAP,百度大数据部,阿里的ADS等都在追求在1000亿级数据时候实现秒级查询。

架构跟以前都有很大不一样的,最重要有一块都是基于SSD来做的。

由于昨天看到有同学在问反作弊的问题,我这里特地加了一节《广告反作弊实践分析》

我们总结有两个词无中生有,鱼目混珠。

所以基于上面两大类我们有如下方法的区分是否作弊:

细化一下主要是URL,时间,地域,频次,行为等方法来识别。

前面讲了那么多理论,接下来以AdMaster的数据分析为例给大家介绍一下数据的采集、清洗、存储、分析、展现等整个流程。

由于中国的基础网络环境的互联互通还不完善,各类营销数据的产生环境也相对纷乱,因此AdMaster在国内首先部署了多点分布式数据采集架构。多点分布式采集架构的难点在于调度策略,大数据时代的负载均衡调度已经不仅仅是DNS轮询或者传统的多机热备,我们还通过一些机器学习的方法预测潜在的并发突增,通过7层数据包的解析在链路物理层开始对数据异常模式进行学习和识别,从而动态调度、配置负载均衡策略,提高数据质量降低误差。AdMaster在这个领域的思路与 软件定义网络SDN 不谋而合。

给大家分享几个做WebService系统优化的几个点:cat /proc/sys/net/ipv4/tcp_mem

cat /proc/net/sockstat

cat /proc/sys/net/ipv4/tcp_max_orphans

net.netfilter.nf_conntrack_max

net.netfilter.nf_conntrack_tcp_timeout_established

举例来说当你看到/var/log/message报kernel: Out of socket memory这样的错误。

一般通过如下方法解决:cat /proc/net/sockstat

sockets: used 16886

TCP: inuse 82422 orphan 65658 tw 2094alloc 82426 mem 3213

UDP: inuse 1 mem 0

RAW: inuse 0

FRAG: inuse 0 memory 0

看具体哪个值需要调整我们才去修改系统内核参数。

广告主在营销和运营中产生了大量的数据,数据来自于广告投放、搜索引擎、到站访问、社交媒体、电商客服等数据。随着移动互联网的出现,未来诸如门店、渠道、会员、折扣、调研等线下的数据也会接入线上,这些数据过去出于散落在各处的状态。AdMaster希望协助广告主将这些数据统一采集、清洗、存储并分析。

这里重点提一下Redis和MongoDB的存储我们由原来的SATA硬盘全部换成了SSD硬盘。

这是我们基于Hadoop自研发的ADH版本,专门针对广告营销数据行业的。

由于每天新增 5TB 级数据,每天对千亿条记录进行几千种维度的计算

这里我给大家介绍几个对Hadoop优化的几个重要参数:/sys/kernel/mm/redhat_transparent_hugepage/enabled

/sys/kernel/mm/redhat_transparent_hugepage/defrag

dfs.socket.timeout

dfs.datanode.max.xcievers

dfs.datanode.socket.write.timeout

dfs.namenode.handler.count

在线数据分析里我给大家介绍一个非常成功的案例就是AdMaster给可口可乐做的“昵称瓶”活动

大家可能都了解在2013年,可口可乐出过一批带各式昵称的可乐。像“高富帅”、“白富美”、“月光族”、“喵星人”等。

AdMaster主要通过捕捉社交媒体过亿数据,提取最频繁使用的热词,然后从多个维度进行定量比较(例如声量、互动性以及发帖率),初步选出300个热词。

AdMaster帮助可口可乐全程监测了”昵称瓶”在社交媒体上的表现,分析数据显示,在这次的夏季活动中,社交元素由始至终进行了完整的贯穿。归功于社会化媒体的“滚雪球式”传播,广告宣传达到了近20亿次,吸引了超过100万个关键意见领袖自发代表品牌传播这些热词。在参与本次活动的人群中,仅新浪微博上,36.9%的人觉得可乐非常亲民可爱,更有25%的人直接表达了自己购买可乐的意愿。相比普通的活动,这种比例是非常高的。

从销售结果来说,这次“接地气”的活动完美收官。据可口可乐(中国)2013年6月初到7月底的销售统计数据,昵称装可口可乐的销量较去年同期增长两成,超出了此前预期制定的10%的销量增长目标。

这个案例具体用到如下模型:

人群管理通过打标签、标准化、多维细分,最后通过Lookalike辐射到更多受众

这是AdMaster常见的应用场景。这是一个我们将文本自然语言数据和广告和站点访问日志结合的应用,用于提取匿名用户的访问浏览兴趣,并针对页面的内容进行关键词的抽取。

在提取了大量用户的访问浏览兴趣之后,并配合调研、社交和电商等基础数据,我们可以通过聚类的方法,将类似的访问者进行多个维度的切分,并且预估用户潜在的兴趣爱好和需求。一些广告主已经逐渐意识到受众细分的重要性,他们也提供一些脱敏的CRM数据,在和AdMaster采集的数据进行连接后,更好地优化受众的分类模型。

数据分析出来后,数据可视化显得就非常重要了:

主要有这三方面:1、数据呈现方式

2、展示层与数据层松耦合,多种数据源接入

3、极高的可靠性和容错机制

最后讲大数据都会提到数据隐私问题,我给大家分享AdMaster给出的一个方式:

核心在于找一个可信的第三方数据托管

大家都是把通过SHA2不可逆的方式把数据上传至第三方数据,计算完各自把数据报表取回后,将放在第三方的数据彻底销毁。

好的,刚好一小时,欢迎大家提问和指正。谢谢!

==========问答时间==========

Q1.反作弊主要还是规则引擎吗?有没有用到机器学习方面的算法?

Answer:

都有的,我们有数据模型团队(有专门的研究院算法团队),通过我们已有样本库通过机器学习来计算分析,并且还用到了GPU。

Q2.ADH的数据任务调度系统,可以介绍下大概怎样调度的嘛?

Answer:

通过下面三个方面来调度

A、Job 配额计算、配额查询

B、项目的配额分配和更新

C、查询任务优先级管理

@小海菜 还不完全是的。我们内部会把CPU、内存、硬盘、带宽、时间等各种参数统一一种方式进行配额分配

@Ryan_Y不是指的container,是指的我们自己将CPU、内存、硬盘、带宽、时间、优先级等换算成的一种资源,有点类似于积分的概念,任务要跑的快,消耗的资源(积分)就大。

Q3.在展示层,部分指标数据来自异步离线计算结果部分来自事实计算,如何能统一展示不让用户有误解呢,比如点击数100实时计算的,但是展示数离线计算还比较延迟可能显示20这样用户看到数据会有疑惑,还请老师给个方向

Answer:

这个问题很不错。目前我们用流式计算来解决,但是如果数据分布在全国各地,需要把数据同步到中心机房再统一计算就会出现这样的问题。所以我们需要将同步速度提高,如通过UDT的传输方式解决公网的问题,这样才能从根本解决问题。如果只是在展示层做,有一个小方法就是将时间尺度延后一定时间,看起来还是连续的,只时数据整个延迟一些。

Q4. 大家都是把通过SHA2不可逆的方式把数据上传至第三方数据,计算完各自把数据报表取回后,将放在第三方的数据彻底销毁。 ==> 难道存储和计算都是在第3方平台做的?

Answer:

是加密脱敏后将需要的数据存储在第3方平台,用第3方的计算平台的,双方不拥有对方的数据源。

Q5. admaster是如何采集社交媒体数据的?是有商业接口还是模拟登陆采集页面?是否需要遵循对方的robots.txt协议?

Answer:

微博我们用的是商业接口,我们跟微博是高级合作伙伴,但是像新闻、BBS这一类的我们采取的爬虫的方式来获取数据的,我们严格遵循对方的robots.txt协议。

现在 微博、论坛(如天涯)活跃度等都大不如前了,从这些点取数据下来分析,价值/意义体现在?

只是我们关注的点不一样了。

另外我们在微信这块也投入了很大资源,比如说我们在跟腾讯的广点通合作。

嗯,是有这些的,但是目前还是比较大的媒体在这方面投入资源,因为分行业了,比如说汽车之家、知乎、宝宝树一类的

Q6.一个小问题,卢用说的RDD序列化优化指的是哪方面?我最近遇到这个瓶颈,从java换成使用kyro感觉也没有多大提升Answer:

RDD序列化优化主要是指数据存储的方式根据不同应用做相就的调整。从java换成使用kyro性能没有提升,你们应用场景是计算重,还是数据交换多呢?

另外我们也正在做基于SSD的OLAP实时系统,欢迎大家一起探讨。

时间: 2024-10-22 16:26:31

广告行业的大数据处理架构实践的相关文章

大数据技术原理与应用——大数据处理架构Hadoop

Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构. Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中. Hadoop的核心是分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce. Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力. Hadoop的特性 Hadoop是一个能够对大量数据进

dkhadoop大数据处理架构详解

大数据的时代已经来了,信息的爆炸式增长使得越来越多的行业面临这大量数据需要存储和分析的挑战.Hadoop作为一个开源的分布式并行处理平台,以其高拓展.高效率.高可靠等优点越来越受到欢迎.这同时也带动了hadoop商业版的发行.这里就通过大快DKhadoop为大家详细介绍一下hadoop大数据平台架构内容.目前国内的商业发行版hadoop除了大快DKhadoop以外还有像华为云等.虽然发行方不同,但在平台架构上相似,这里就以我比较熟悉的dkhadoop来介绍.1.大快Dkhadoop,可以说是集成

二、Hadoop大数据处理架构

一.概述 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.是一个能够对大量数据进行分布式处理的软件框架.由Java开发,但开发其应用可以使用多种语言,C,C++,跨平台性非常好. 两大核心:解决了分布式存储和分布式处理两大问题 HDFS(Hadoop Distributed File System) MapRedue Hadoop 2.0 (Apache免费开源,企业版可以选择Cloudera,更方面都更优异(安装,计算等)) MapReduce(离线计算,批处理,基于磁盘),

大数据技术原理与应用:【第二讲】大数据处理架构Hadoop

2.1 Hadoop概论 创始人:Doug Cutting 1.简介: 开源免费; 操作简单,极大降低使用的复杂性; Hadoop是Java开发的; 在Hadoop上开发应用支持多种编程语言.不限于Java: Hadoop两大核心:HDFS+MapReduce HDFS:海量数据存储 MapReduce:海量数据的处理 2.起源: 原本是文本搜索库,模仿谷歌的搜索引擎: 融入了谷歌相关技术:分布式文件系统GFS:分布式并行编程框架MapReduce: 3.成名史:数据排序 的傲人成绩 4.特性:

【大数据处理架构】2. 用sbt 构建工具 到spark cluster

我们使用 sbt 创建.测试.运行和提交作业.该教程会解释你在我们的课程中将会用到的所有 sbt 命令.工具安装页说明了如何安装 sbt.我们一般将代码和库做成jar包,通过spark-submit 提交到spark 集群上运行. 1)下载安装: http://www.scala-sbt.org/ 2)创建工程: 比如现在的工程名为"sparksample".那么 2 3 4 5 cdsparksample mkdirproject mkdirsrc/main/scala 一般的工程文

Hadoop大数据处理读书笔记

几个关键性的概念 云计算:是指利用大量计算节点构成的可动态调整的虚拟化计算资源,通过并行化和分布式计算技术,实现业务质量可控的大数据处理的计算技术. NameNode:是HDFS系统中的管理者,它负责管理文件系统的命名空间,维护文件系统的文件树以及所有的文件和目录的元数据.这些信息存储在NameNode维护的两个本地磁盘文件:命名空间镜像文件和编辑日志文件.同时,NameNode中还保存了每个文件与数据块所在的DataNode的对应关系,这些信息被用于其他功能组件查找所需文件资源的数据服务器.

大数据处理的关键架构

大数据如火如荼的火热着,互联网上资源又让人眼花缭乱不知如何下手,对于新手和准备成为大数据工程师的童鞋更是如此,此博文总结了网上一些知识,希望对大家有帮助. 下图是大数据处理的各个架构层: 以下一一简介各个层,使大家对这块知识有个总体把握: 一.数据存储层 宽泛地讲,据对一致性(consistency)要求的强弱不同,分布式数据存储策略,可分为ACID和BASE两大阵营. ACID是指数据库事务具有的四个特性:原子性(Atomicity).一致性(Consistency).隔离性(Isolatio

WOT干货大放送:大数据架构发展趋势及探索实践分享

WOT大数据处理技术分会场,PingCAP CTO黄东旭.易观智库CTO郭炜.Mob开发者服务平台技术副总监林荣波.宜信技术研发中心高级架构师王东及商助科技(99Click)顾问总监郑泉五位讲师,分别针对时下热门的HTAP数据库TiDB.去ETL化的IOTA架构.数据工厂架构.实时敏捷大数据理念实践.基于场景的大数据营销等话题,展开实践分享. 作者:查士加来源:51CTO 2018年5月18-19日,由51CTO主办的全球软件与运维技术峰会在北京召开.来自全球企业的技术精英汇聚北京,畅谈软件技术

广告行业中那些趣事系列6:BERT线上化ALBERT优化原理及项目实践(附github)

摘要:BERT因为效果好和适用范围广两大优点,所以在NLP领域具有里程碑意义.实际项目中主要使用BERT来做文本分类任务,其实就是给文本打标签.因为原生态BERT预训练模型动辄几百兆甚至上千兆的大小,模型训练速度非常慢,对于BERT模型线上化非常不友好.本篇研究目前比较火的BERT最新派生产品ALBERT来完成BERT线上化服务.ALBERT使用参数减少技术来降低内存消耗从而最终达到提高BERT的训练速度,并且在主要基准测试中均名列前茅,可谓跑的快,还跑的好.希望对需要将BERT线上化感兴趣的小