用Nova实现Hadoop海量数据工作流管理

2019-03-28 13:30|来源: 网络

  今天的大型互联网公司往往都需要处理持续大量涌来的数据,对数据加以分析挖掘,从中产生价值。这些动作包括:

  1、分析处理用户行为日志,包括点击、搜索,以为搜索、内容和广告提供精细化的匹配和排序算法。2、从爬虫产生的web页面流中构建、更新搜索索引。3、处理半结构化数据,比如新闻、博客与微博。

  这些处理过程正不断在新一代的灵活而且可扩展的数据管理平台上实现,比如PIG和Hadoop。PIG是供Hadoop的map-reduce系统使用的结构化数据流语言运行时。Nova,是一个数据和工作和流管理系统,它持续不断地把到来的数据推送到在Hadoop集群的PIG程序图中。

▲Yahoo中国研究院高级技术经理韩轶平

  在支持有状态增量处理方面,Nova类似于数据流处理系统,但不同之处在于,它使用类似于基于磁盘处理的方式来处理海量数据。批次式增量处理对于互联网公司很适合,因为可以应对不断道来的数据,并受益于增量算法,同时不需要满足有超低延时性需求的处理。

  以下是精彩演讲内容:

  今天的话题是介绍一下这两年建立的Nova系统,是基于Hadoop海量数据工作流平台。这个工作在2001把其中增量计算的一部分成果在杂志上有发表。

  什么叫持续的数据流

  它是以连续或者间隔的方式,通过推送或采集的形式到达的数据。里面有两个纬度:可以连续、源源不断的,可以批量的方式推断。获取可以推送也可以采取的方式。系统日志是一直在增长中,常见的有搜索日志等。内容有新闻、上传图片、文字信息、视频信息,很多以持续信息流出现的,不断被采集到数据分析引擎里面,其他E-mail、短信、微博也是持续的数据流,在不停地产生中,如果进行大型的分析处理的话,要持续分析处理。

  今天的互联网当中,如果说是数据驱动的互联网,持续的数据流占绝大部分的比例,或者最重要的一些数据。

  持续数据流有那些场景?

  搜索内容广告精细匹配和排序。无论是网页搜索还是传统型的广告,包括内容推荐都需要对持续的用户行为的日志进行分析,甚至对其他的对用户社交的更新进行分析。

  用户行为分析和建模,我负责雅虎个性化搜索平台,通过用户在互联网上,包括雅虎和雅虎以外各种用户行为分析,对用户行为进行建模,进行个性化的操作。

  媒体内容处理分析,刚才提到对文章的过滤、对文章自然语言的分析,对视频的分析,对视频过滤导波视频检测。

  社交网络分析,对社交网络相关关联性的关系分析。基本涵盖了绝大多数的热点行业。

  当前的现状是什么样的?

  在开发Nova系统之前我们面临的现状,雅虎在互联网行业、大数据处理上是比较领先的公司,很早用一些平台进行大数据分析。我们当时看到了一些现象,数据处理和管理的逻辑十分混杂。如果做一些离线、在线的数据处理,我们有一个数据分析的任务,写一个程序、写一个脚本,在这个脚本里面有几部分工作组成:

  第一、对数据进行解析、整合、求交,很多是数据管理的事情。比如说连续数据流程,要选择合适的时间段,对于数据碎片进行配片、求交。还有数据管理的逻辑,这两个东西往往在开发当中混在一起,往往有管理数据代码又有分析代码。我一直推导的一个理念是希望把这两者分开,让我们的建模人员或者研究人员专心一意做算法,极大简化开发的过程,任务管理能够变得更清晰。

  第二,每个应用实现都是一个特设的个例。每一个组、每一个产品、每个部门都在用自己开发的程序。比如说不同组用不同的数据结构存储数据,不同的组同一个数据员搜索日志。升级也不一样,互相之间不太好协调。每当有一个新的任务出现时,要重新思考、重新设计,是非常低效的过程。在这种应用下,大量的存储都是无效的。我们搜索日志,大家做自己的分析,很多东西都会重复,甚至很多情况大家会克隆一份数据,或者自己保存一份数据,大量的计算和存储都被重复的浪费掉,对应的一个问题,因为很离散的环境,全球的优化很难实现。我们开发技术的目的,是云架构,提供云平台,希望能够做一些优化,使整个计算、存储更有效率。这种全球化的要求很难实现。

  我们希望设计一个系统,主要提供三个大的功能区域:

  第一,工作流管理。也就是说,能够把我们离线数据处理的时候,所有各种各样的工作流、各种任务管理起来,有一个整合的管理平台。

  第二,希望通过数据流的管理。我们设计这个系统的主要目的是针对互联网最常见的持续数据流,不仅把工作流管理起来,也能够把数据流用统一的界面、统一的平台管理起来。真正做到任务、计算数据在一块。

  第三,增量计算。我们做日志分析,总是增量出现,很难用全量的方式计算。增量计算在很多时候确实能够带来效率的提升。如果需要重复的计算,每次把数据计算一遍肯定会浪费。我们能够应用简化增量过程。

  我列了一些我们当时设计的时候设计目标:

  第一,我们希望设计的是一个针对持续批量数据流的处理力。持续数据流可以分为两大类型:连续的数据流、批量处理的数据流。我们设计这个系统的目标针对离线的批量数据流。

  第二,统一的数据流和工作流管理。不仅仅像常见的管理一样,希望统一起来管理。

  第三,数据生命周期管理。数据都是有生命周期的,一直觉得没有必要永久性的数据,当没有人使用、历史过久以后,希望给退休掉。这样生命周期管理,在Nova系统之前,都是应用程序给管理的,把生命周期的管理和运算逻辑、数据处理逻辑混在一起。我们希望都退休,所以不需要这些东西。

  第四,平台负责优化。这个概念跟昨天早上淘宝的讲得,有比较大的差异。在中国公司希望能够通过人力取代一些系统上的投入。对我们来说,作为人力成本相对比较高的公司,而且应用规模很大,希望通过平台优化,减少人力成本的开销,简化人。因为像研究人员都很高成本的,希望把精力放在核心代码上,而不是在一些处理逻辑方面。

  第五,跨应用的存储和计算优化,希望通过提供一个统一的平台,提供一种跨应用或者跨任务的统一计算和存储的优化。

相关问答

更多

如何学习更多的物流管理

女同志可能从搬货开始体力什么的很吃亏,那就从货开始呗。多看,不同属性的货的包装,体积,重量,一直看到能不用度量瞟一眼看出重量体积。每天看,为下一步打好基础。模拟装载配比,这些现在是有软件,但个人建议用脑用手用笔。根据车型,内净空,反复模拟装车配载比,反过来印证第一步的轻货,重货 泡货。区分哪些是好货,哪些是垃圾货。把货的属性看懂了再说其他

Pimcore工作流管理(Pimcore Workflow Management)

很高兴看到您正在尝试使用工作流管理。 我已经写了一些关于这个功能的介绍,它们可以在这里找到: 第1部分 - 基本介绍https://www.gatherdigital.co.uk/community/post/pimcore-workflow-management-pt1/66 第2部分 - 如何配置操作https://www.gatherdigital.co.uk/community/post/pimcore-workflow-management-pt2/67 第3部分 - 如何使用事件扩展操 ...

基于Java的简单工作流管理器/数据工作流,具有启动ext的能力。(Simple java based workflow manager / data workflow with ability to start ext. application, call web services etc)

Apache Camel是一个开源集成框架,可以帮助您实现这一目标。 您可以使用Apache Camel构建自己的简单工作流管理器,其中每个流程都实现处理器 。 您的数据可以使用camel Exchange通过处理器传递。 查看驼峰示例以获取更多信息。 有关如何编写自定义处理器的信息,请阅读此处 。 您可以动态地将处理器添加到Camel RouteBuilder,使用Quartz Scheduler等安排它,这将或多或少地满足您的所有要求。 以下是骆驼的好介绍 : http : //www.kai ...

SharePoint 2016工作流管理器安装错误(SharePoint 2016 workflow manager installation error)

我不能评论,所以留下这个答案。 您安装工作流程管理器的操作系统是什么? 我在安装Server 2016时遇到了同样的问题,它有.NET 4.6来解决我必须在运行Server 2012 R2的单独服务器上安装工作管理器的问题。 我相信这是一个服务器2016问题,而不是.net 4.6问题。 产品“Workflow Manager 1.0刷新(CU2)”的相同依赖关系失败。 因为它不相信Workflow Manager 1.0已经安装,所以重新启动会对此进行排序。 I can't comment so ...

pimcore工作流管理 - 禁用保存和发布(pimcore workflow management - disabling Save and publish)

如果要禁用按钮,则必须覆盖pimcore object.js(pimcore / static6 / js / pimcore / object / object.js)和tree.js(pimcore / static6 / js / pimcore / object / tree.js)。 首先创建插件。 然后在static中创建object.js(记住将plus.xml添加到js路径中)并添加代码: pimcore.registerNS("pimcore.object.object"); ...

AppFabric工作流服务和工作流管理器之间的区别(Difference between AppFabric workflow service and workflow manager)

这是困难的一个。 AppFabric工作流服务(实际上是WCF工作流服务)托管在WorkflowServiceHost中,但说实话,我们可以看到AppFabric工作流托管并没有真正发展。 特别是通过BizTalk AppFabric连接与BizTalk工具(适配器和映射器)结合使用,构建一些东西是很好的。 Workflow Manager是SharePoint Server 2013附带的技术,以及Windows Server Service Bus。 说实话,它是一个V1,但这可能是将要发展的 ...

工作流管理服务“吃掉”内存(Workflow Management Service “eats up” memory)

我遇到了类似的问题,这是我的详细调查结果。 http://serena-yeoh.blogspot.com/2013/08/solving-workflow-management-service.html 您需要确保没有已删除的服务或服务在Instances表中无法再激活。 I ran into similar problems and here are my detail findings. http://serena-yeoh.blogspot.com/2013/08/solving-work ...