Hadoop应用案例分析:在Yahoo的应用

文章讲的是Hadoop应用案例分析:在Yahoo的应用,关于Hadoop技术的研究和应用,Yahoo!始终处于领先地位,它将Hadoop应用于自己的各种产品中,包括数据分析、内容优化、反垃圾邮件系统、广告的优化选择、大数据处理和ETL等;同样,在用户兴趣预测、搜索排名、广告定位等方面得到了充分的应用。

  在Yahoo!主页个性化方面,实时服务系统通过Apache从数据库中读取user到interest的映射,并且每隔5分钟生产环境中的Hadoop集群就会基于最新数据重新排列内容,每隔7分钟则在页面上更新内容。

  在邮箱方面,Yahoo!利用Hadoop集群根据垃圾邮件模式为邮件计分,并且每隔几个小时就在集群上改进反垃圾邮件模型,集群系统每天还可以推动50亿次的邮件投递。

  目前Hadoop最大的生产应用是Yahoo!的Search Webmap应用,它运行在超过10 000台机器的Linux系统集群里,Yahoo!的网页搜索查询使用的就是它产生的数据。Webmap的构建步骤如下:首先进行网页的爬取,同时产生包含所有已知网页和互联网站点的数据库,以及一个关于所有页面及站点的海量数据组;然后将这些数据传输给Yahoo!搜索中心执行排序算法。在整个过程中,索引中页面间的链接数量将会达到1TB,经过压缩的数据产出量会达到300TB,运行一个MapReduce任务就需使用超过10 000的内核,而在生产环境中使用数据的存储量超过5PB。

  Yahoo!在Hadoop中同时使用了Hive和Pig,在许多人看来,Hive和Pig大体上相似而且Pig Latin与SQL也十分相似。那么Yahoo!为什么要同时使用这些技术呢?主要是因为Yahoo!的研究人员在查看了它们的工作负载并分析了应用案例后认为不同的情况下需要使用不同的工具。

  先了解一下大规模数据的使用和处理背景。大规模的数据处理经常分为三个不同的任务:数据收集、数据准备和数据表示,这里并不打算介绍数据收集阶段,因为Pig和Hive主要用于数据准备和数据表示阶段。

  数据准备阶段通常被认为是提取、转换和加载(Extract Transform Load,ETL)数据的阶段,或者认为这个阶段是数据工厂。这里的数据工厂只是一个类比,在现实生活中的工厂接收原材料后会生产出客户所需的产品,而数据工厂与之相似,它在接收原始数据后,可以输出供客户使用的数据集。这个阶段需要装载和清洗原始数据,并让它遵守特定的数据模型,还要尽可能地让它与其他数据源结合等。这一阶段的客户一般都是程序员、数据专家或研究者。

  数据表示阶段一般指的都是数据仓库,数据仓库存储了客户所需要的产品,客户会根据需要选取合适的产品。这一阶段的客户可能是系统的数据工程师、分析师或决策者。

  根据每个阶段负载和用户情况的不同,Yahoo!在不同的阶段使用不同的工具。结合了诸如Oozie等工作流系统的Pig特别适合于数据工厂,而Hive则适合于数据仓库。下面将分别介绍数据工厂和数据仓库。

  Yahoo!的数据工厂存在三种不同的工作用途:流水线、迭代处理和科学研究。

  经典的数据流水线包括数据反馈、清洗和转换。一个常见例子是Yahoo!的网络服务器日志,这些日志需要进行清洗以去除不必要的信息,数据转换则是要找到点击之后所转到的页面。Pig 是分析大规模数据集的平台,它建立在Hadoop之上并提供了良好的编程环境、优化条件和可扩展的性能。Pig Latin是关系型数据流语言,并且是Pig核心的一部分,基于以下的原因,Pig Latin相比于SQL而言,更适合构建数据流。首先,Pig Latin是面向过程的,并且Pig Latin允许流水线开发者自定义流水线中检查点的位置;其次,Pig Latin允许开发者直接选择特定的操作实现方式而不是依赖于优化器;最后,Pig Latin支持流水线的分支,并且Pig Latin允许流水线开发者在数据流水线的任何地方插入自己的代码。Pig和诸如Oozie等的工作流工具一起使用来创建流水线,一天可以运行数以万计的Pig作业。

  迭代处理也是需要Pig的,在这种情况下通常需要维护一个大规模的数据集。数据集上的典型处理包括加入一小片数据后就会改变大规模数据集的状态。如考虑这样一个数据集,它存储了Yahoo!新闻中现有的所有新闻。我们可以把它想象成一幅巨大的图,每个新闻就是一个节点,新闻节点若有边相连则说明这些新闻指的是同一个事件。每隔几分钟就会有新的新闻加入进来,这些工具需要将这些新闻节点加到图中,并找到相似的新闻节点用边连接起来,还要删除被新节点覆盖的旧节点。这和标准流水线不同的是它不断有小变化,这就需要使用增长处理模型在合理的时间范围内处理这些数据了。例如,所有的新节点加入图中后,又有一批新的新闻节点到达,在整个图上重新执行连接操作是不现实的,这也许会花费数个小时。相反,在新增加的节点上执行连接操作并使用全连接(full join)的结果是可行的,而且这个过程只需要花费几分钟时间。标准的数据库操作可以使用Pig Latin通过上述方式实现,这时Pig就会得到很好的应用。

  Yahoo!有许多的科研人员,他们需要用网格工具处理千万亿大小的数据,还有许多研究人员希望快速地写出脚本来测试自己的理论或获得更深的理解。但是在数据工厂中,数据不是以一种友好的、标准的方式呈现的,这时Pig就可以大显身手了,因为它可以处理未知模式的数据,还有半结构化和非结构化的数据。Pig与streaming相结合使得研究者在小规模数据集上测试的Perl和Python脚本可以很方便地在大规模数据集上运行。

  在数据仓库处理阶段,有两个主要的应用:商业智能分析和特定查询(Ad-hoc query)。在第一种情况下,用户将数据连接到商业智能(BI)工具(如MicroStrategy)上来产生报告或深入的分析。在第二种情况下,用户执行数据分析师或决策者的特定查询。这两种情况下,关系模型和SQL都很好用。事实上,数据仓库已经成为SQL使用的核心,它支持多种查询并具有分析师所需的工具,Hive作为Hadoop的子项目为其提供了SQL接口和关系模型,现在Hive团队正开始将Hive与BI工具通过接口(如ODBC)结合起来使用。

  Pig在Yahoo!得到了广泛应用,这使得数据工厂的数据被移植到Hadoop上运行成为可能。随着Hive的深入使用,Yahoo!打算将数据仓库移植到Hadoop上。在同一系统上部署数据工厂和数据仓库将会降低数据加载到仓库的时间,这也使得共享工厂和仓库之间的数据、管理工具、硬件等成为可能。Yahoo!在Hadoop上同时使用多种工具使Hadoop能够执行更多的数据处理。

  作者简介:陆嘉恒,《Hadoop实战》作者,中国人民大学副教授,新加坡国立大学博士,美国加利福尼亚大学尔湾分校(University of California, Irvine) 博士后。

作者:陆嘉恒

来源:IT168

原文链接:Hadoop应用案例分析:在Yahoo的应用

时间: 2024-08-22 21:29:51

Hadoop应用案例分析:在Yahoo的应用的相关文章

Hadoop应用案例分析:在Facebook的应用

Facebook作为全球知名的社交网站,拥有超过3亿的活跃用户,其中约有3千万用户至少每天更新一次自己的状态;用户每月总共上传10亿余张照片.1千万个视频;以及每周共享10亿条内容,包括日志.链接.新闻.微博等.因此Facebook需要存储和处理的数据量是非常巨大的,每天新增加4TB压缩后的数据,扫描135TB大小的数据,在集群上执行Hive任务超过7500次,每小时需要进行8万次计算,所以高性能的云平台对Facebook来说是非常重要的,而Facebook主要将Hadoop平台用于日志处理.推

Digg 案例分析:为什么技术人群是重要的用户

一直觉得Digg是我错过的了一个Web2.0应用,想去研究研究一下,感谢丁丁提供的译文! Digg 案例分析:为什么技术人群是重要的用户原文作者:Nisan Gabbay***:雷声大雨点大原文链接:Digg Case Study: Why techies are an important audience原文发表时间:2006年10月15日 为什么做这个案例分析从2004年12月面世至今,Digg已经成为Web2.0的成功典型.Digg是一个提供新闻内容的网站,它一反传统的层层审核的编辑制度.

网站日志统计案例分析与实现

1.概要     到这一步,若是按照前面到文章一步走来,不出意外,我想hadoop平台环境应该搭建OK了.下面我以自己工作中实际的案例来梳理一下整个流程.同时参考一些其他的文章来分析,由于很多网站的日志KPI都大同小异,故有些指标直接在文中赘述了. 2.流程 背景 前言 目录 日志分析概述 需求分析 源码 2.1 背景 从2011年开始,中国进入大数据时代如火如荼,以Hadoop为代表的套件,占据了大数据处理的广阔地盘.开源界及厂商,所有数据软件,纷纷 向Hadoop靠拢.Hadoop也从小规模

什么是HADOOP、产生背景、在大数据、云计算中的位置和关系、国内外HADOOP应用案例介绍、就业方向、生态圈以及各组成部分的简介(学习资料中的文档材料)

1. HADOOP背景介绍 1. 1.1什么是HADOOP 1.        HADOOP是apache旗下的一套开源软件平台 2.        HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.        HADOOP的核心组件有 A.       HDFS(分布式文件系统) B.       YARN(运算资源调度系统) C.       MAPREDUCE(分布式运算编程框架) 4.        广义上来说,HADOOP通常是指一个更

必读!大数据:Hadoop,业务分析及更多(1)

翻译:Cady Wang(王楠楠) 你想了解大数据,却对生涩的术语毫不知情?你想了解大数据的市场和应用,却又没有好的案例和解说?别担心,这本来自Wikibon社区的小书想要帮你. 是的,这是一本小书而不是一篇文章,因为它详实细致的让你从一个完全不了解大数据技术及相关应用的门外汉,变成一个熟知其概念和意义的"内行人",所以它很棒! 译者Cady王楠楠花费了很多心血翻译这本小书,不足之处也请朋友们多指正.我们分成数篇连载. --世界大数据观察,宋星 主要内容 · 1来自Wikibon社区的

六个超大规模Hadoop部署案例

据估计,到2015年,全世界一半以上的数据将涉及Hadoop--围绕这个开源平台的生态系统日益庞大,这有力地印证了这个惊人的数字. 然而,有些人表示,虽然Hadoop是眼下热闹非凡的大数据领域最热话题,但它肯定不是可以解决数据中心和数据管理方面所有难题的灵丹妙药.考虑到这一点,我们暂且不想猜测这个平台未来会如何,也不想猜测彻底改变各种数据密集型解决方案的开源技术未来会如何,而是关注让Hadoop越来越火的实际应用案例. 毫无疑问,现在有几个出众的例子,表明Hadoop及相关开源技术(Hive和H

案例分析:如何将免费社区转化为成功的商业模式

社区 Nisan Gabbay注:非常高兴本周的案例分析出自Startup Review的读者Kempton Lam. Kempton是一位管理咨询师,专于创业指导,您可以查看Kempton的背景及博客.Kempton采用了和我相同的案例分析流程,作为编辑,我的工作是确保其与Startup Review保持格式上的一致.如果你有意成为Startup Review的嘉宾作者,请与我联系. 为什么研究这个案例 iStockphoto既是一个摄影师社区,也是一个高质低价的庞大图片库.到2006年10月

广场舞案例分析深入思考二:别样冲突

前面对于Robin广场舞案例从我个人的角度作了深入思考,可能都是一些基础的技巧,但是运用到全面的SEO工作当中还是相当不错的一些技巧,尤其是对没有形成体系的朋友显得尤为重要.最近在不少群里面见到有些朋友认为SEO很简单,个人还是有点担忧,因为SEO真的不是那么简单,而且要真正的学好SEO,这里指的不仅仅是执行的SEO,而是要真正要建立良好的SEO知识结构体系和SEO全局观的SEO. 当然,这两个问题并不是今天我要跟大家谈的想法,后面如果有机会可以跟大家多探讨探讨.今天我要跟大家交流的依然是关于广

案例分析:老张的搬家公司(4)

<老张的搬家公司>第三篇中,我觉得老张很难应用百度凤巢来推广自己的业务,主要原因在于竞争成本.对此,天岸提出了不同看法. 天岸提出的第一点:"除去营销因素之外,有没有考虑到运营因素呢?也许这些出高价的搬家公司的利润很高呢(价格高,相对成本低)?那么理所当然的,点击成本和折算后的转化成本(如果他们有计算的话)对于他们来说是没有多少影响的.本身竞争优势的缺陷也是限制老张们使用更好的营销方法的因素之一吧." 因为这个问题非常好,所以我又舍不得在直接回复了,还是拉出来再成一篇. 老