System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于hadoop的并发任务处理方法技术_技高网

基于hadoop的并发任务处理方法技术

技术编号:41215697 阅读:12 留言:0更新日期:2024-05-09 23:37
本发明专利技术涉及数据处理技术领域,尤其涉及一种基于hadoop的并发任务处理方法,包括:根据待运行任务的属性进行对应的扩展程序包,并将完成扩展的待运行任务进行包装,以形成扩展任务;根据扩展程序包将待运行任务分离,并形成对应各hadoop集群的分离任务;将分离任务传输至各hadoop集群,并同步运行以获取各分离任务的输出信息;根据扩展程序包内的存储的各分布任务的位置,并利用各分离任务的输出信息回溯待运行任务的完成信息;输出待运行任务的完成信息;利用将一个大任务进行分割并分别进行处理方式,将hadoop任务有效分解,在有效提升了hadoop效率的同时,进一步提升了hadoop任务的可控性。

【技术实现步骤摘要】

本专利技术涉及数据处理,尤其涉及一种基于hadoop的并发任务处理方法


技术介绍

1、在java程序中提交flink任务到带有kerberos认证的hadoop集群时,需要先使用hadoop的api和远程的hadoop集群进行kerberos认证,从而从能够使用flink的sdk将计算任务提交到hadoop集群。由于原有的hadoop的api进行kerberos认证时只能在一个jvm进程中同一时刻支持一个kerberos认证,而在面向客户的企业实际应用中,可能存在多套不同的带有kerberos认证的hadoop集群。

2、中国专利申请公开号:cn113672399a公开了一种基于块任务的多机多进程的同步数据管理系统及方法。包括技术支持单元、多进程同步单元、数据同步单元和数据管理单元;技术支持单元用于支撑系统的连接与运行;多进程同步单元用于对并发的多个进程进行同步管理;数据同步单元用于实现系统内的数据同步;数据管理单元用于对同步集合后的数据进行管理。本专利技术设计的系统可以提高系统的并行效率,可以快速实现海量的数据同步,而后对数据进行处理并供用户调取应用;其方法可以减少数据传输的工作量,降低数据的损坏概率,同时提高数据同步的效率,减轻用户的工作量,降低数据损坏的概率,保证业务的运行进展,有效改善资源利用率,提高系统吞吐量。

3、但是,上述方法存在以下问题:因hadoop中每个集群都有自己的kerberos配置和kerberos凭据,继续使用原本的kerberos认证方式在并发提交的情况下会导致数据竞争和认证信息的覆盖,使得flink任务提交失败、无法正常获取flink任务执行状态以及flink任务无法正常取消的问题。


技术实现思路

1、为此,本专利技术提供一种基于hadoop的并发任务处理方法,用以克服现有技术中因hadoop中每个集群都有自己的kerberos配置和kerberos凭据,继续使用原本的kerberos认证方式在并发提交的情况下会导致数据竞争和认证信息的覆盖,使得flink任务提交失败、无法正常获取flink任务执行状态以及flink任务无法正常取消的问题。

2、为实现上述目的,本专利技术提供一种基于hadoop的并发任务处理方法,包括:

3、根据待运行任务的属性进行对应的扩展程序包,并将完成扩展的待运行任务进行包装,以形成扩展任务;

4、根据扩展程序包将所述待运行任务分离,并形成对应各hadoop集群的分离任务;

5、将所述分离任务传输至各hadoop集群,并同步运行以获取各分离任务的输出信息;

6、在完成各分离任务的运行时,根据所述扩展程序包内的存储的各分布任务的位置,并利用所述各分离任务的输出信息回溯所述待运行任务的完成信息;

7、输出所述待运行任务的完成信息;

8、其中,所述扩展程序包中包括认证信息定义程序以及并发认证程序。

9、进一步地,所述认证信息定义程序包括一个用于缓存的认证信息的类,以及一个改造后的hadoop用户信息模块。

10、进一步地,所述并发认证程序包括一个源码改造程序,它对所述hadoop集群的认证信息进行了程序改造,使其能够支持并发认证。

11、进一步地,在形成扩展任务时,扩展程序包内还创建有一个源码替换程序包,将所述待运行任务中的所述hadoop集群认证信息复制到程序包中,并在所述分离任务中添加一个基于目录的本地变量,这个变量是一个继承自另一个线程中的内部类,它可以为每个线程提供一个原始值,这个原始值包含了各hadoop集群完成的任务中对应的变量。

12、进一步地,在将所述分离任务传输至所述各hadoop集群时,修改hadoop集群中的代码,将代码中使用到的定义在不可继承变量中的各组变量,替换为通过调用定义的可继承变量。

13、进一步地,在完成所述可继承变量的替换时,将所述分离任务打包,并将该定义为字母开头ascii码靠前的名字,用以使替换包中的类优先被jvm加载,从而让修改后的源码生效。

14、进一步地,在提交待运行程序时,进行了针对hadoop参数的若干设置,包括:

15、设置java.security.krb5.conf系统属性为krbpath,用以指定kerberos配置文件的路径;

16、设置hadoop.security.authentication配置项为kerberos,用以使配置项指定hadoop使用kerberos进行认证;

17、设置kerberos.principal配置项为principal,这个配置项指定了kerberos认证的主体名称。

18、进一步地,在完成对hadoop进行的设置时,针对所述各hadoop集群进行设置,包括:

19、调用usergroupinformation类的setconfiguration方法,并将hadoopkerbconf作为参数传入,用以设置usergroupinformation类使用的配置信息。

20、进一步地,在完成hadoop集群的设置时,针对调用usergroupinformation类的loginuserfromkeytabandreturnugi方法,将principal和keytabpath作为参数传入,用以从keytab文件中登录用户,并返回一个usergroupinformation对象,并将这个对象赋值给一个名为usergroupinformation的变量。

21、进一步地,在完成hadoop集群的设置时,调用usergroupinformation对象的doas方法,并将一个privilegedaction类型的lambda表达式作为参数传入,用以登录用户的身份执行指定的操作。

22、与现有技术相比,本专利技术的有益效果在于,通过线程局部变量缓存kerberos的认证信息,从而避免了多线程竞争修改kerberos认证票据信息的类,使得flink任务能够并发提交时能够准确拿到应使用得kerberos票据来与hadoop集群进行认证,同时采用源码替换方法,使得jvm优先加载源码替换类,从而能够达成最少修改的方式实现目标功能。

23、进一步地,利用将一个大任务进行分割并分别进行处理方式,将hadoop任务有效分解,在有效提升了hadoop效率的同时,进一步提升了hadoop任务的可控性。

本文档来自技高网...

【技术保护点】

1.一种基于hadoop的并发任务处理方法,其特征在于,包括:

2.根据权利要求1所述的基于hadoop的并发任务处理方法,其特征在于,所述认证信息定义程序包括一个用于缓存的认证信息的类,以及一个改造后的hadoop用户信息模块。

3.根据权利要求1所述的基于hadoop的并发任务处理方法,其特征在于,所述并发认证程序包括一个源码改造程序,它对所述hadoop集群的认证信息进行了程序改造,使其能够支持并发认证。

4.根据权利要求2或3任一项所述的基于hadoop的并发任务处理方法,其特征在于,在形成扩展任务时,扩展程序包内还创建有一个源码替换程序包,将所述待运行任务中的所述hadoop集群认证信息复制到程序包中,并在所述分离任务中添加一个基于目录的本地变量,这个变量是一个继承自另一个线程中的内部类,它可以为每个线程提供一个原始值,这个原始值包含了各hadoop集群完成的任务中对应的变量。

5.根据权利要求4所述的基于hadoop的并发任务处理方法,其特征在于,在将所述分离任务传输至所述各hadoop集群时,修改hadoop集群中的代码,将代码中使用到的定义在不可继承变量中的各组变量,替换为通过调用定义的可继承变量。

6.根据权利要求5所述的基于hadoop的并发任务处理方法,其特征在于,在完成所述可继承变量的替换时,将所述分离任务打包,并将该定义为字母开头ASCI I码靠前的名字,用以使替换包中的类优先被jvm加载,从而让修改后的源码生效。

7.根据权利要求6所述的基于hadoop的并发任务处理方法,其特征在于,在提交待运行程序时,进行了针对hadoop参数的若干设置,包括:

8.根据权利要求7所述的基于hadoop的并发任务处理方法,其特征在于,在完成对hadoop进行的设置时,针对所述各hadoop集群进行设置,包括:

9.根据权利要求7所述的基于hadoop的并发任务处理方法,其特征在于,在完成hadoop集群的设置时,针对调用UserGroupInformation类的loginUserFromKeytabAndReturnUGI方法,将Principal和KeytabPath作为参数传入,用以从keytab文件中登录用户,并返回一个UserGroupInformation对象,并将这个对象赋值给一个名为userGroupInformation的变量。

10.根据权利要求8或9任一项所述的基于hadoop的并发任务处理方法,其特征在于,在完成hadoop集群的设置时,调用userGroupInformation对象的doAs方法,并将一个PrivilegedAction类型的lambda表达式作为参数传入,用以登录用户的身份执行指定的操作。

...

【技术特征摘要】

1.一种基于hadoop的并发任务处理方法,其特征在于,包括:

2.根据权利要求1所述的基于hadoop的并发任务处理方法,其特征在于,所述认证信息定义程序包括一个用于缓存的认证信息的类,以及一个改造后的hadoop用户信息模块。

3.根据权利要求1所述的基于hadoop的并发任务处理方法,其特征在于,所述并发认证程序包括一个源码改造程序,它对所述hadoop集群的认证信息进行了程序改造,使其能够支持并发认证。

4.根据权利要求2或3任一项所述的基于hadoop的并发任务处理方法,其特征在于,在形成扩展任务时,扩展程序包内还创建有一个源码替换程序包,将所述待运行任务中的所述hadoop集群认证信息复制到程序包中,并在所述分离任务中添加一个基于目录的本地变量,这个变量是一个继承自另一个线程中的内部类,它可以为每个线程提供一个原始值,这个原始值包含了各hadoop集群完成的任务中对应的变量。

5.根据权利要求4所述的基于hadoop的并发任务处理方法,其特征在于,在将所述分离任务传输至所述各hadoop集群时,修改hadoop集群中的代码,将代码中使用到的定义在不可继承变量中的各组变量,替换为通过调用定义的可继承变量。

6.根据权利要求5所述的基于hadoop的并发任务处理方法,其特征在于,在完成所述可继承变量的替换时,将所...

【专利技术属性】
技术研发人员:高海玲高经郡方培云
申请(专利权)人:北京科杰科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1