CN104750482A - 一种构建基于MapReduce的动态脚本执行引擎的方法 - Google Patents

一种构建基于MapReduce的动态脚本执行引擎的方法 Download PDF

Info

Publication number
CN104750482A
CN104750482A CN201510109676.9A CN201510109676A CN104750482A CN 104750482 A CN104750482 A CN 104750482A CN 201510109676 A CN201510109676 A CN 201510109676A CN 104750482 A CN104750482 A CN 104750482A
Authority
CN
China
Prior art keywords
script
closure
map
execute phase
reduce
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510109676.9A
Other languages
English (en)
Other versions
CN104750482B (zh
Inventor
任永强
潘柏宇
卢述奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Unification Infotech (beijing) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Unification Infotech (beijing) Co Ltd filed Critical Unification Infotech (beijing) Co Ltd
Priority to CN201510109676.9A priority Critical patent/CN104750482B/zh
Publication of CN104750482A publication Critical patent/CN104750482A/zh
Application granted granted Critical
Publication of CN104750482B publication Critical patent/CN104750482B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开一种构建基于MapReduce的动态脚本执行引擎的方法,该方法包括以下步骤:定义MapReduce中的Map执行阶段和Reduce执行阶段为相同框架的子类;在作业配置阶段、Map执行阶段和Reduce执行阶段分别添加脚本动态编译和执行的过程,并将任务执行的各个步骤定义成闭包;通过Shell命令启动并读取脚本并执行相应阶段的任务。本发明提供了一种MapReduce任务的开发方案和框架,首先该方案和框架可以在充分利用Hadoop API的前提下大大提高开发效率,快速响应需求变化,与敏捷开发的价值观相当契合。其次,该框架屏蔽了Hadoop各个不同版本之间API的割裂状况,使开发上得心应手。

Description

—种构建基于MapReduce的动态脚本执行引擎的方法
[0001]
技术领域
[0002] 本发明涉及系统开发技术领域,特别涉及一种构建基于MapReduce的动态脚本执行引擎的方法。
[0003]
背景技术
[0004] 利用Apache Hadoop的MapReduce (一种大规模数据编程模型)框架能够将一个作业分发到分布式系统中多进程中。多任务的执行,大大提高对大任务的处理能力和执行效率。目前其主要的开发方法分为以下两种:
1.利用Hadoop自身提供的API开发,这个过程是MapReduce开发的最基本流程。将开发流程分为三个基本的部分,任务设置提交阶段(Main)、Map执行阶段和Reduce执行阶段。以上三个部分缺一不可。以上三个部分开发完成后还要进行三个步骤:编译、打包和上传到客户机执行。如果遇到三个部分的其中一个阶段出现执行异常,那么还要再次编译,打包,上传客户机执行,其过程比较繁琐。其次Hadoop发布的API经过不同的分支版本间迭代,各个包中的方法在不同版本中的使用方法差异较大,对开发人员要求较高。
[0005] 2.利用Hadoop Streaming框架允许任何程序语言实现的程序在HadoopMapReduce中使用,方便已有程序向Hadoop平台移植。Hadoop Streaming的原理是用Java实现一个包装用户程序的MapReduce程序,该程序负责调用MapReduce Java接口获取key/value对输入。创建一个新的进程启动包装的用户程序,将数据通过管道传递给包装的用户程序处理,然后调用MapReduce Java接口将用户程序的输出切分成key/value对输出。只要按照标准输入输出格式进行编程,就可以满足Hadoop MapReduce的要求。因此单机程序稍加改动就可以在集群上进行使用。但Hadoop Streaming有使用的局限性,其一:只能处理文本数据,无法设置数据格式。其二:Streaming的Mapper和Reducer阶段都只能向标准输出写数据,不能设置多路输出。其三-Streaming的多路输入不能设置用不同的Mapper执行。
[0006]
发明内容
[0007] 为了解决上述技术问题,本发明提供一种构建基于MapReduce的动态脚本执行引擎的方法,该方法中基于MapReduce的动态脚本引擎功能是将MapReduce开发过程中的三个阶段按照一个规范在一个简单的脚本中完成。并且不需要编译,打包,直接在客户机的VI编辑器下就能完成开发和任务的提交执行。并克服了 Hadoop Streaming的不足之处,能够灵活的自定义数据格式,自定义输入和输出,自定义输入对应执行的Mapper。
[0008] 本发明公开的一种构建基于MapReduce的动态脚本执行引擎的方法,该方法包括以下步骤:
定义MapReduce中的Map执行阶段和Reduce执行阶段为相同框架的子类;
在作业配置阶段、Map执行阶段和Reduce执行阶段分别添加脚本动态编译和执行的过程,并将任务执行的各个步骤定义成闭包;
通过Shell命令启动并读取脚本并执行相应阶段的任务。
[0009] 进一步的,所述Map执行阶段的过程包括:
调用setup初始化资源;
根据数据的行数循环调用map进行数据的处理;
通过cleanup进行资源的释放。
[0010] 进一步的,所述Reduce执行阶段的执行过程包括:
调用setup初始化资源;
根据Shuffle和排序阶段处理后的key/values的个数循环调用reduce进行数据的处理;
通过cleanup进行资源的释放。
[0011] 进一步的,所述闭包用于传递参数,是一种可以事先定义,并在需要时执行的代码块或对象,且在定义的过程中,闭包可使用一个或者多个输入参数进行定义。
[0012] 进一步的,所述闭包定义规范如下:
(1)定义任务的设置和提交;
(2)定义Map执行阶段中的setup,初始化Map执行阶段的资源;
(3)定义Map执行阶段中的cleanup,清理Map执行阶段申请的资源;
(4)定义Map执行阶段的执行过程;
(5)定义Reduce执行阶段的setup,初始化Reduce执行阶段的资源;
(6)定义Reduce执行阶段的cleanup,清理Reduce执行阶段的资源;
(7)定义Reduce执行阶段的执行过程。
[0013] 进一步的,所述通过Shell命令启动并读取脚本并执行相应阶段的任务具体包括:
在脚本引擎启动时,任务脚本是以文本的方式读入引擎,做一次动态编译,执行脚本中的jobConf闭包进行任务的设置,然后提交任务;
脚本的文本存入MapReduce的系统环境变量中,且脚本的文本将随着系统环境变量的参数分发到各个TaskTracker (Hadoop程序在一个机器上的进程名称)的机器中。
[0014] 进一步的,所述通过Shell命令启动并读取脚本并执行相应阶段的任务还包括: 在Map执行阶段的setup执行时预先读出脚本的文本,动态编译脚本,执行Map执行阶段闭包,并得到mapper和mapCleanup两个闭包的句柄;
接下来在调用map时转而调用mapper闭包的句柄完成map的处理,最后在cleanup阶段调用mapCleanup的句柄。
[0015] 进一步的,所述通过Shell命令启动并读取脚本并执行相应阶段的任务还包括: 在Reduce执行阶段的setup执行时预先读出脚本的文本,动态编译脚本,执行
reduceSetup闭包,并得到reducer和reduceCleanup两个闭包的句柄;
接下来在调用reduce时转而调用reducer闭包的句柄完成reduce的处理,最后在cleanup阶段调用reduceCleanup的句柄。
[0016] 进一步的,脚本引擎的脚本选用的是与Java能够完美集成的Groovy脚本,Groovy脚本在Mapper或Reducer初始化阶段时进行编译。
[0017] 与现有技术相比,本发明公开的技术方案具有以下优点:
该发明公开的技术方案提供了一种MapReduce任务的开发方案和框架,该方案提供的框架可以在充分利用Hadoop API的前提下大大提高开发效率,快速响应需求变化,与敏捷开发的价值观相当契合。且该框架屏蔽了 Hadoop各个不同版本之间API的割裂状况,使开发上得心应手。
[0018]
附图说明
[0019] 图1为本发明实施例中的方法流程图;
图2为本发明实施例中的Map执行阶段的执行过程流程图;
图3为本发明实施例中Reduce执行阶段的执行过程流程图。
[0020]
具体实施方式
[0021] 下面根据附图对本发明实施例的具体实施方式进行详细描述:
实施例一:
本发明公开的一种构建基于MapReduce的动态脚本执行引擎的方法,如图1所示,该方法包括以下步骤:
5101:定义MapReduce中的Map执行阶段和Reduce执行阶段为相同框架的子类; MapReduce 中的 Map 阶段是 org.apache, hadoop.mapreduce.Mapper 的子类;
Reduce 阶段是 org.apache, hadoop.mapreduce.Reducer 的子类;
5102:在作业配置阶段、Map执行阶段和Reduce执行阶段分别添加脚本动态编译和执行的过程,并将任务执行的各个步骤定义成闭包;
脚本引擎在设计时遵循MapReduce的整个执行过程。不会影响到任务提交,代码分发,中间数据处理和读取排序等过程。只是在作业配置,MapTask’ReduceTask的三个阶段分别添加了脚本动态编译和执行的过程。
[0022] S103:通过Shell命令启动并读取脚本并执行相应阶段的任务。
[0023] 如图2所示,所述Map执行阶段的执行过程包括:
调用setup O初始化资源;
根据数据的行数循环调用map O进行数据的处理;
通过cleanup O进行资源的释放。
[0024] 如图3所示,所述Reduce执行阶段的执行过程包括:
调用setup O初始化资源;
根据Shuffle和排序阶段处理后的key/values的个数循环调用reduce O进行数据的处理;
通过cleanup O进行资源的释放。
[0025] 进一步的,所述闭包用于传递参数,是一种可以事先定义,并在需要时执行的代码块或对象,且在定义的过程中,闭包可使用一个或者多个输入参数进行定义。
[0026] 脚本引擎充分利用了动态脚本闭包的特点,将任务执行的各个步骤定义成闭包。闭包可以是对象,也可以是一种表示可执行代码块的方法。可以像方法一样传递参数。由于闭包是代码块,因此可以事先定义,并在需要时执行。像方法一样,在定义的过程中,闭包也可以使用一个或者多个输入参数。
[0027] 进一步的,所述闭包定义规范具体如下:
闭包def jobconf = {args -> }定义任务的设置和提交。
[0028] 闭包def mapSetup = {ctx -> }定义Map执行阶段的setup,初始化Map执行阶段的资源。
[0029]闭包 def mapCleanup ={ctx -> }定义 Map 执行阶段的 cleanup,清理 Map 执行阶段申请的资源。
[0030] 闭包def mapper= { k , v , ctx - > }定义Map的执行过程,其中参数k表示输入的key,V表示输入的value。
[0031]闭包 def reduceSetup= {ctx -> }定义 Reduce 执行阶段的 setup,初始化Reduce执行阶段的资源。
[0032]闭包 def reduceCleanup= {ctx -> }定义 Reduce 执行阶段的 cleanup,清理Reduce执行阶段的资源。
[0033] 闭包def reducer= { k , vlist , ctx - > }定义Reduce的执行过程,其中参数k,表示输入的key,vlist表示value的集合。
[0034] 上述定义的各个阶段执行的闭包通过引擎提供的addXXX函数来添加到引擎的执行上下文中。
[0035] 如:addJobConf O表示将jobconf闭包添加到引擎中。addMapper O表示将mapper闭包添加到引擎中。
[0036] 脚本引擎是一套已经编译好的API集合,在实际应用中被命名为SweetyEngine.jar。脚本引擎通过一个Shell命令启动读取脚本并执行相应阶段的任务。其命令的格式如下:
hadoop jar SweetyEngine.jar -jn HadoopJob -mrs Complex, groovy -sargs〃$input_show $input_click $input_over $output〃
脚本引擎提供了如下参数对任务的各自属性进行设置:
-jn:设置任务名称
-mrs:设置任务执行的脚本
-S:数据输入对应的HDFS文件系统路径
-ο:数据输出对应的HDFS文件系统路径
-1ibjars:任务执行时需要的第三方jar
-nor:设置了此参数表示不需要Reduce阶段
-sargs:自定义参数
其中-S,-O可以再-sargs中设置。
[0037] 进一步的,所述通过Shell命令启动并读取脚本并执行相应阶段的任务具体包括:
在脚本引擎启动时,任务脚本是以文本的方式读入引擎,做一次动态编译,执行脚本中的jobConf闭包进行任务的设置,然后提交任务;
脚本的文本存入MapReduce的系统环境变量中,且脚本的文本将随着系统环境变量的参数分发到各个TaskTracker的机器中。
[0038] 进一步的,所述通过Shell命令启动并读取脚本并执行相应阶段的任务还包括: 在Map执行阶段的setup执行时预先读出脚本的文本,动态编译脚本,执行Map执行阶段闭包,并得到mapper和mapCleanup两个闭包的句柄;
接下来在调用map时转而调用mapper闭包的句柄完成map的处理,最后在cleanup阶段调用mapCleanup的句柄。
[0039] 进一步的,所述通过Shell命令启动并读取脚本并执行相应阶段的任务还包括: 在Reduce执行阶段的setup执行时预先读出脚本的文本,动态编译脚本,执行
reduceSetup闭包,并得到reducer和reduceCleanup两个闭包的句柄;
接下来在调用reduce时转而调用reducer闭包的句柄完成reduce的处理,最后在cleanup阶段调用reduceCleanup的句柄。
[0040] 进一步的,脚本引擎的脚本选用的是与Java能够完美集成的Groovy脚本,Groovy脚本在Mapper或Reducer初始化阶段时进行编译。
[0041] 脚本引擎的脚本选用的是与Java能够完美集成的Groovy脚本。脚本的文本能动态编译成字节码并在虚拟机中执行。脚本编译的时机是在Mapper或Reducer初始化阶段进行。其方法是在Mapper初始化时通过MapReduce的运行上下文中得到ClassLoader。通过这个ClassLoader然后初始化引擎,将引擎绑定MapReduce上下文,编译脚本,运行脚本,完成Map阶段的执行。Reduce过程与Map过程相同。
[0042] 与现有技术相比,本发明公开的技术方案具有以下优点:
一个标准的MapReduce作业的执行包括的流程是添加脚本执行的过程的流程具体为:作业配置;作业提交;Map Task的分配与执行;处理中间结果;Reduce Task的分配与执行;输出最终结果数据;作业完成。
[0043] 本发明提供的一种构建基于MapReduce的动态脚本执行引擎的方法中的脚本引擎在设计时遵循MapReduce的整个执行过程。不会影响到任务提交,代码分发,中间数据处理和读取排序等过程。只是在作业配置,MapTask’ReduceTask的3个阶段分别添加了脚本动态编译和执行的过程。在脚本引擎启动时,任务脚本是以文本的方式读入引擎,然后做一次动态编译,执行脚本中的jobConf闭包进行任务的设置,然后提交任务。这时脚本的文本将存入MapReduce的系统环境变量中。这样脚本的文本将随着系统环境变量的参数分发到各个TaskTracker的机器中。
[0044] 本发明公开的技术方案提供了一种MapReduce任务的开发方案和框架,该方案提供的框架可以在充分利用Hadoop API的前提下大大提高开发效率,快速响应需求变化,与敏捷开发的价值观相当契合。且该框架屏蔽了 Hadoop各个不同版本之间API的割裂状况,使开发上得心应手。
[0045] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0046] 以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (9)

1.一种构建基于MapReduce的动态脚本执行引擎的方法,其特征在于,该方法包括以下步骤: 定义MapReduce中的Map执行阶段和Reduc执行阶段为相同框架的子类; 在作业配置阶段、Map执行阶段和Reduce执行阶段分别添加脚本动态编译和执行的过程,并将任务执行的各个步骤定义成闭包对象; 通过Shell命令启动并读取脚本并执行相应阶段的任务。
2.如权利要求1所述的方法,其特征在于,所述Map执行阶段的过程包括: 调用mapSetup闭包对象初始化资源; 根据数据的行数循环调用map进行数据的处理; 通过mapCleanup进行资源的释放。
3.如权利要求1所述的方法,其特征在于,所述Reduce执行阶段的执行过程包括: 调用setup初始化资源; 根据Shuffle和排序阶段处理后的key/values的个数循环调用reduce闭包对象进行数据的处理; 通过cleanup进行资源的释放。
4.如权利要求1所述的方法,其特征在于,所述闭包用于传递参数,是一种可以事先定义,并在需要时执行的代码块或对象,且在定义的过程中,闭包可使用一个或者多个输入参数进行定义。
5.如权利要求1或4所述的方法,其特征在于,所述闭包定义规范如下: (1)定义任务的设置和提交; (2)定义Map执行阶段中的mapSetup闭包,初始化Map执行阶段的资源; (3)定义Map执行阶段中的mapCleanup闭包,清理Map执行阶段申请的资源; (4)定义Map执行阶段的执行过程,执行编译后的Map闭包对象; (5)定义Reduce执行阶段的reduceSetup,初始化Reduce执行阶段的资源; (6)定义Reduce执行阶段的reduceCleanup,清理Reduce执行阶段的资源; (7)定义Reduce执行阶段的执行过程,执行编译后的Reduce闭包对象。
6.如权利要求1所述的方法,其特征在于,所述通过Shell命令启动并读取脚本并执行相应阶段的任务具体包括: 在脚本引擎启动时,任务脚本是以文本的方式读入引擎,做一次动态编译,执行脚本中的jobConf闭包进行任务的设置,然后提交任务; 脚本的文本存入MapReduce的系统环境变量中,且脚本的文本将随着系统环境变量的参数分发到各个TaskTracker的机器中。
7.如权利要求1所述的方法,其特征在于,所述通过Shell命令启动并读取脚本并执行相应阶段的任务还包括: 在Map执行阶段的mapSetup执行时预先读出脚本的文本,动态编译脚本,执行Map执行阶段闭包,并得到mapper和mapCleanup两个闭包的句柄; 接下来在调用map时转而调用mapper闭包的句柄完成map的处理,最后在cleanup阶段调用mapCleanup的句柄。
8.如权利要求1所述的方法,其特征在于,所述通过Shell命令启动并读取脚本并执行相应阶段的任务还包括: 在Reduce执行阶段的setup执行时预先读出脚本的文本,动态编译脚本,执行reduceSetup闭包,并得到reducer和reduceCleanup两个闭包的句柄; 接下来在调用reduce时转而调用reducer闭包的句柄完成reduce的处理,最后在cleanup阶段调用reduceCleanup的句柄。
9.如权利要求1-8中任意一项权利要求所述的方法,其特征在于,脚本引擎的脚本选用的是与Java能够完美集成的Groovy脚本,Groovy脚本在Map或Reduce初始化阶段时进行编译。
CN201510109676.9A 2015-03-13 2015-03-13 一种构建基于MapReduce的动态脚本执行引擎的方法 Active CN104750482B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510109676.9A CN104750482B (zh) 2015-03-13 2015-03-13 一种构建基于MapReduce的动态脚本执行引擎的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510109676.9A CN104750482B (zh) 2015-03-13 2015-03-13 一种构建基于MapReduce的动态脚本执行引擎的方法

Publications (2)

Publication Number Publication Date
CN104750482A true CN104750482A (zh) 2015-07-01
CN104750482B CN104750482B (zh) 2018-04-10

Family

ID=53590237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510109676.9A Active CN104750482B (zh) 2015-03-13 2015-03-13 一种构建基于MapReduce的动态脚本执行引擎的方法

Country Status (1)

Country Link
CN (1) CN104750482B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718244A (zh) * 2016-01-18 2016-06-29 上海交通大学 一种流水化数据洗牌传输的Spark任务调度与执行方法
CN109254838A (zh) * 2018-08-21 2019-01-22 中邮科通信技术股份有限公司 一种基于JAVA BeanShell的自动化任务

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296743B2 (en) * 2007-12-17 2012-10-23 Intel Corporation Compiler and runtime for heterogeneous multiprocessor systems
CN103150161A (zh) * 2013-02-06 2013-06-12 中金数据系统有限公司 基于MapReduce 计算模型的任务封装方法及装置
CN103176903A (zh) * 2013-03-12 2013-06-26 百度在线网络技术(北京)有限公司 MapReduce分布式系统程序的测试方法及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296743B2 (en) * 2007-12-17 2012-10-23 Intel Corporation Compiler and runtime for heterogeneous multiprocessor systems
CN103150161A (zh) * 2013-02-06 2013-06-12 中金数据系统有限公司 基于MapReduce 计算模型的任务封装方法及装置
CN103176903A (zh) * 2013-03-12 2013-06-26 百度在线网络技术(北京)有限公司 MapReduce分布式系统程序的测试方法及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LINUX: "《使用命令行编译打包运行自己的MapReduce程序 Hadoop2.4.1》", 《HTTP://WWW.LINUXIDC.COM/LINUX/2015-02/113489.HTM》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718244A (zh) * 2016-01-18 2016-06-29 上海交通大学 一种流水化数据洗牌传输的Spark任务调度与执行方法
CN105718244B (zh) * 2016-01-18 2018-01-12 上海交通大学 一种流水化数据洗牌传输的Spark任务调度与执行方法
CN109254838A (zh) * 2018-08-21 2019-01-22 中邮科通信技术股份有限公司 一种基于JAVA BeanShell的自动化任务

Also Published As

Publication number Publication date
CN104750482B (zh) 2018-04-10

Similar Documents

Publication Publication Date Title
US9772862B2 (en) Integration project center
CN105468428B (zh) 一种安卓源代码编译方法及系统
CN106446019B (zh) 一种软件功能处理方法和装置
CN104298534A (zh) 基于Lua语言的编程方法和装置
CN107479866A (zh) 基于重构技术实现开放终端应用数据与功能的方法
CN111198863A (zh) 一种规则引擎及其实现方法
CN104750482A (zh) 一种构建基于MapReduce的动态脚本执行引擎的方法
CN105204837B (zh) 一种逻辑编程的实现方法和装置
Erraissi et al. Meta-modeling of Zookeeper and MapReduce processing
CN106293687A (zh) 一种打包流程的控制方法,及装置
de Carvalho Silva et al. A platform of scientific workflows for orchestration of parallel components in a cloud of high performance computing applications
Stollberg et al. Efficient business service consumption by customization with variability modelling
Cai et al. A pattern-based code transformation approach for cloud application migration
CN106293651A (zh) 一种通用接口的实现方法及装置
CN102693150B (zh) 基于计费专有领域的虚拟机的处理方法及装置
Yan et al. A productive cloud computing platform research for big data analytics
CN105005497A (zh) 一种Java卡虚拟机中本地函数的调用方法及装置
CN104408619A (zh) Ic卡支付终端交易流程配置、实现方法及装置和业务系统
Avati et al. Declarative Big Data Analysis for High-Energy Physics: TOTEM Use Case
Church et al. A survey of approaches and frameworks to carry out genomic data analysis on the cloud
US20110022501A1 (en) Service change component generation system, method and recording medium
CN106897049A (zh) 一种安装包的打包方法和装置
CN108228708B (zh) 大数据etl系统及其调度方法
CN104933098A (zh) 一种基于消除重复记录的数据清洗平台设计方法
CN107479864B (zh) MapReduce计算框架的平台移植方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100080, No. 8 Haidian street, Beijing, Haidian District Steel International Plaza, 6 floor

Patentee after: YOUKU INFORMATION TECHNOLOGY (BEIJING) Co.,Ltd.

Address before: 100080, No. 8 Haidian street, Beijing, Haidian District Steel International Plaza, 6 floor

Patentee before: HEYI INFORMATION TECHNOLOGY (BEIJING) Co.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200416

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 100080, No. 8 Haidian street, Beijing, Haidian District Steel International Plaza, 6 floor

Patentee before: YOUKU INFORMATION TECHNOLOGY (BEIJING) Co.,Ltd.