整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

16.2.2虚构的使用样例

hadoop 花牛 15℃ 0评论

这一节,我们将描述在大型网站上经常遇到的问题,由于涉及的开销和规 模都太大,这些问题很难通过传统的数据仓库管理技术来解决。Hadoop和

Hive技术针对这些问题提供了一种扩展性更好、性价比更高的解决方案。

1.广告客户的洞察力和广告性能

Hadoop最普遍的一个用途是为大量数据产生概要信息。通常用于大型广告 网络,如Facebook广告网络,GoogleAdSense等等,为广告商提供他们所 发布的广告的常规汇总统计信息,这样做可以有效地帮助广告商调整他们 的广告营销活动。

在大规模数据集上统计广告效果是一种数据密集型操作,Hadoop和Hive 在可扩展性和计算开销上的优势非常适用于这一工作,它们可以在合理的 时间和资金消耗范围内完成这些计算。

许多广告网络为广告商提供了标准的基于CPC和CPM的广告计费单位。 CPC是根据广告的“点击数计费”(cost-per-click):广告商根据访问这个网 站的用户对广告的点击总数付费。CPM是根据在这个网站上看广告的人数 的比例计费(每千次曝光率费率cost-per-mille)。除了这些标准计费单位以 外,在最近几年,支持对个体用户进行剪辑的具有更多动态内容的广告(个 性化广告定制)在在线广告业中流行起来。雅虎通过SmartAds实现个性化 广告定制,Facebook则给广告商提供了 Social Ads。而后者允许广告商把来 自用户朋友网络的信息嵌入到广告中;例如,一则Nike广告可能指向某用 户的一位朋友,而这个朋友近期刚好也喜欢这个品牌,并且在Facebook上 和朋友公开共享这个喜好。另外,Facebook也为广告商提供了参与广告 (Engagement Ad),通过对广告发表意见/与嵌入视频交互,用户可以更有效 地和广告交互。总之,在线广告网络为广告商们提供了各种广告发布途 径,广告商们感兴趣的是其广告营销活动的相关效果数据,而这种多样性 又为计算各种各样的性能数据_增添了难度。

广告商的最基本要求是希望知道观看或点击了他们的广告的总用户数以及 不同用户总数。对于动态广告,他们甚至会对这些汇总信息的细节感兴 趣,如动态广告毎个单元播放的次数或交互性广告用户参与的次数。例 如,一个特定的广告可能向3万个不同用户播放了 10万次。类似地,一段 嵌入到Engagement Ad的视频可能已经被10万个不同的用户观看。另外, 通常我们会针对每则广告、每次广告营销活动和每个账户汇总这些性能数 据给出报表。一个帐号有可能会对应多个广告营销活动,而每个活动可能 运行多则网络广告。最后,广告网络通常会根据不同时间粒度报告这些数 据。典型的时间粒度有天、周、月(起始日期相同)和月(固定天数),甚至有

时候是整个广告营销活动周期。再者,根据不同的数据分片和分块的方 法,可以对汇总数据进行低粒度钻取,一个例子是广告商们可以査看汇总 数据在地理上的分布情况,比如,对于某一则特定广告,亚太地区的浏览 者或点击者占多大比率。

很明显,这里有四种主要的维度层次:账户、广告营销活动和广告维度, 时间段维度;交互类型维度,用户维度。最后一个用于汇报不同的用户人 数,而其他三个则是相应维度的汇总。用户维度也可用来产生浏览和点击 用户的地理分布汇总图。总而言之,广告商们利用这些信息来调整他们的 广告营销活动,从而提高他们在广告网络上的广告效果。除了这些数据的 多维属性之外,从处理的数据量以及每天数据量的增长速度来看,如果没 有Hadoop这样的技术,大型广告网络的可扩展社将遇到困难。举个例子, 写这篇文章的时候,Facebook为了计算广告的性能数据,每天所处理的日 志大约是I TB数量级(非压缩数据)20081月,每天处理的日志数据量 大约是30 GB,可见当前的数据量已经增长了 30倍。随着硬件的增加, Hadoop扩展性增强的特性才使我们对数据的处理能力能适应数据量的增 长,而它的代价只是对任务配置文件进行小小的修改。通常,配置修改是 指增加数据密集型计算Hadoop作业的reducer的个数。目前,这些计算中 最大的任务是运行400reducer(20081月所用的50reducer增加 了 )

2.即席分析和产品反馈

除了产生定期报表之外,数据仓库解决方案的另一种主要应用是支持即席 分析和产品反馈。例如,一个典型的网站对其产品功能做了修改之后,产 品经理或工程师们通常会基于与这个新特性相关的用户交互信息和点击率 来推断这个新特性的影响。产品团队甚至希望对这个改变带来的影响做更 深入的分析,分析有可能针对不同区域和国家进行,例如这个改变是否使 美国用户的点击率增加或印度用户的使用减少。使用Hive和标准SQL语 言,在Hadoop上可以完成很多类似的分析工作。点击率测定可以简单地表 达成广告的曝光数和与此新特性相关链接点击次数之间的join操作。这种 数据能和地理位置信息结合起来用于计算产品某个特性的改变对不同区域 用户产生的影响。因此,通过对这些数据进行聚集运算,我们可以得到平 均点击率在不同地理区域上的分布情况。Hive系统用几行SQL査询语句就 可以简单方便地表达所有这些工作需求(这也将相应地产生多个Hadoop作 业)。如果只需要估算,可以使用Hive本身支持的取样函数取一组样本用户

数据,然后运行同样的査询语句即可。其中有些分析工作需要使用自定义 map和reduce脚本与Hive SQL联合执行,这种脚本也可以轻松嵌入到 Hive査询语句。

一个更加复杂的分析任务是估算在过去一整年里每分钟登录到网站的峰值 用户数。这个工作涉及对网页浏览日志文件采样(因为人气网站的网页浏览 日志总数是很庞大的),根据时间对它们分组,然后运行自定义reduce脚本 找出不同时间点的新用户数。这是一个要求同时使用SQLMapReduce来解决终端用户问题的典型例子,而且利用Hive来解决这样的问题是非常容易的。

3.数据分析

Hive和Hadoop可以轻松地用于为数据分析应用进行训练和打分。这些数 据分析应用能跨越不同领域,如人气网站、生物信息公司和石油勘探公 司。对于在线广告产业来说,这种应用的一个典型实例是预测什么样的广 告特征能使广告更容易被用户注意到。通常,训练阶段涉及确定响应度量 标准和预测特征。在本例中,评测广告效用的一个良好度量标准可以是点 击率。广告的一些有趣的特征可能是广告所属的垂直分类、广告内容、广 告在网页中的位置等。Hive可以简便易行地收集训练数据,然后把数据输 入数据分析引擎(通常是R程序或用户写的MapReduce程序)。在本例中, 不同的广告性能效果数据和属性特征可以被结构化成为Hive的表格。用户 可以方便地对数据进行取样(R程序只能处理有限数据集,因此取样是必须 的),使用Hive査询语句执行合适的聚集和连接操作然后整合成一个结果响 应表,它包含了决定广告效果的最重要的广告特征。然而,取样会有信息 损失,有些更加重要的数据分析应用就用MapReduce框架完成对常用的数 据分析内核程序的并行实现来减少信息损失。

一旦模型训练出来,它就被部署用于根据每天的数据进行打分评估工作。 但是大多数数据分析任务并不执行每日评测打分工作。实际上,其中有很 多数据分析任务是即席的,要求做到一次分析,然后结果作为输入进入产 品设计过程。

转载请注明:全栈大数据 » 16.2.2虚构的使用样例

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址