向hadoop集群提交作业的方法、设备和系统与流程

文档序号:18238710发布日期:2019-07-24 08:52阅读:263来源:国知局
本发明涉及网络技术,特别涉及向hadoop集群提交作业的方法、设备和系统。
背景技术
::Hadoop是一个由Apache基金会所开发的分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。目前,调试hadoop是一个非常复杂的过程,需要经过编写、编译、打包等以提交作业、运行作业、查看作业运行结果等一系列步骤。其中,提交作业的方式可包括:通过集成开发环境(IDE,IntegratedDevolopmentEnvironment)工具提交作业的方式,以及,通过插件提交作业的方式等。以Eclipse为例,通过IDE工具提交作业的方式可包括以下步骤1)~4)。1)在本地环境中搭建一个hadoop集群,并启动另一种资源协调者(YARN,YetAnotherResourceNegotiator)、分布式文件系统(HDFS,HadoopDistributedFileSystem)等相关服务进程。2)在Eclipse上创建一个Java工程,并导入hadoop的应用程序编程接口(API,ApplicationProgrammingInterface),即hadoop安装文件lib目录下的Jar文件。3)编写作业程序,如编写一个WordCount作业,统计文件中单词出现的次数,并将其编译打包成Jar文件,放在Java工程下。4)编写一个Main方法,构建一个Job对象,设定HDFS、JobTracker、Jar文件等参数,然后运行这个Main方法,图1为现有Main方法的示意图。通过插件提交作业的方式与通过IDE工具提交作业的方式相类似,区别仅在于需要在Eclipse中安装一个hadoop插件,从而可以通过该hadoop插件自动地将作业编译打包成Jar文件,进而提交至hadoop集群,无需手动打包。但是,上述两种方式在实际应用中均会存在一定的问题,如:IDE工具和hadoop集群必须处于同一个网络环境中,如当hadoop集群处于虚拟私有云(VPC,VirtualPrivateCloud)子网中时,则无法通过上述两种方式来提交作业,从而降低了作业提交的成功率。技术实现要素:本发明提供了向hadoop集群提交作业的方法、设备和系统,能够提高作业提交的成功率。具体技术方案如下:一种hadoop集群中的管理设备,包括:第一处理模块;所述第一处理模块,用于当集成开发环境IDE设备需要向处于不同网络环境中的hadoop集群提交作业时,通过与所述IDE设备进行协作,打通所述IDE设备和所述hadoop集群所处的网络环境,并将所述IDE设备提交的作业转发给所述hadoop集群中运行所述作业的工作设备。一种集成开发环境IDE设备,包括:IDE模块和第二处理模块;所述第二处理模块,用于当需要向处于不同网络环境中的hadoop集群提交作业时,通过与所述hadoop集群中的管理设备进行协作,打通所述IDE设备和所述hadoop集群的网络环境;所述IDE模块,用于将生成的作业提交给所述hadoop集群中运行所述作业的工作设备。一种向hadoop集群提交作业的系统,包括:如上所述的管理设备,以及,如上所述的IDE设备。一种向hadoop集群提交作业的方法,包括:当集成开发环境IDE设备需要向处于不同网络环境中的hadoop集群提交作业时,所述hadoop集群中的管理设备通过与所述IDE设备进行协作,打通所述IDE设备和所述hadoop集群所处的网络环境,并将所述IDE设备提交的作业转发给所述hadoop集群中运行所述作业的工作设备。一种向hadoop集群提交作业的方法,包括:当IDE设备需要向处于不同网络环境中的hadoop集群提交作业时,通过与所述hadoop集群中的管理设备进行协作,打通与所述hadoop集群的网络环境,并将生成的作业提交给所述hadoop集群中运行所述作业的工作设备。基于上述介绍可以看出,采用本发明所述方案,当IDE设备和hadoop集群处于不同的网络环境时,可打通二者的网络环境,并基于打通后的网络环境,通过IDE工具来向hadoop集群提交作业,从而克服了现有技术中当IDE设备和hadoop集群处于不同的网络环境时无法提交作业的问题,进而提高了作业提交的成功率。【附图说明】图1为现有Main方法的示意图。图2为本发明所述hadoop集群中的管理设备实施例的组成结构示意图。图3为本发明所述IDE设备与hadoop集群的网络分布示意图。图4为本发明所述IDE设备实施例的组成结构示意图。图5为本发明所述Main方法的示意图。图6为本发明所述WordCount作业的运行结果的示意图【具体实施方式】现有技术中,无法通过IDE工具向处于VPC子网中的hadoop集群提交作业,主要是因为它们处于不同的网络环境,因此,如果想要通过IDE工具来向处于VPC子网中的hadoop集群提交作业,则需要打通二者的网络环境,让IDE工具所在设备即IDE设备与hadoop集群处于同一局域网。为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。实施例一图2为本发明所述hadoop集群中的管理设备(master)实施例的组成结构示意图,如图2所示,包括:第一处理模块21。第一处理模块21,用于当IDE设备需要向处于不同网络环境中的hadoop集群提交作业时,通过与IDE设备进行协作,打通IDE设备和hadoop集群所处的网络环境,并将IDE设备提交的作业转发给hadoop集群中运行作业的工作设备(slave)。如前所述,hadoop集群可处于VPC子网中,打通后的网络环境可为虚拟专用网络(VPN,VirtualPrivateNetwork)子网,即利用VPN技术构建一个VPN子网,让IDE设备和hadoop集群处于同一个子网中。当然,以上均为举例说明,并不用于限制本发明的技术方案,如当hadoop集群处于其它子网中时,本发明所述方案同样适用,而且所构建的子网也不限于VPN子网,可根据实际需要而定。当hadoop集群处于VPC子网中、所构建的子网为VPN子网时,图3为本发明所述IDE设备与hadoop集群的网络分布示意图,如图3所示,其中涉及三个网络,分别为公网、VPN子网以及VPC子网。相应地,第一处理模块21中可包括:VPN服务端单元211和VPC处理单元212。VPN服务端单元211,用于通过公网地址与IDE设备中的VPN客户端单元建立连接,构建出一个VPN子网,并向VPN客户端单元返回VPC子网的网段地址以及VPN服务端单元211的VPN子网地址,以便VPN客户端单元构建以下路由:目的地址为VPC子网的网段地址的报文均发往VPN服务端单元211的VPN子网地址。VPN服务端单元211上设置有iptables规则,按照所述规则,将所有源地址为VPN子网的网段地址且目的地址为工作设备的VPC子网地址的报文,均发往VPC处理单元212。VPC处理单元212具有转发功能(IPforwarding),将接收自VPN服务端单元211的、IDE工具中的IDE模块通过VPN客户端单元提交的作业转发给hadoop集群中运行作业的工作设备。也就是说,VPN客户端单元和VPN服务端单元211分别具备一个公网地址和一个VPN子网地址,通过公网地址,VPN客户端单元可以访问VPN服务端单元211,从而构建出一个VPN子网。由于VPN子网和VPC子网所处的网段不同,直接通过VPN子网还无法访问处于VPC子网中的hadoop集群,因此可在VPN服务端单元211上设置iptables规则,从而让所有源地址为VPN子网的网段地址且目的地址为工作设备的VPC子网地址的报文,均发往VPC处理单元212对应的VPC子网地址,即图3中所示的网卡nic3的IP地址192.168.0.1,这样,通过IDE设备上的nic2就能够以IP地址10.0.0.6访问管理设备上的nic3的IP地址192.168.0.1,如何设置iptables为现有技术。但是,上述方式只是打通了IDE设备与管理设备上的nic3,为了让IDE设备能够访问hadoop集群中的工作设备,还需要开启VPC处理单元212的转发功能,即通过nic3转发目的地址为hadoop集群中的工作设备的VPC子网地址的报文。需要解释一下,为什么不直接打通公网地址与VPC子网呢?原因是事先无法知道公网地址是什么,如果将所有公网地址报文均导入管理设备上的nic3,这样无论通过什么公网地址都可以访问VPC子网,无法保证VPC子网的安全性。而通过VPN技术构建子网能够使用固定网段的IP地址,从而可以只让这个网段的源地址访问VPC子网,而且VPC子网具有安全校验功能,只有通过证书校验的VPN客户端才能够加入VPN子网,进而保证了VPC子网的安全性。通过上述处理,只是在IP层打通了IDE设备与hadoop集群,而访问hadoop集群一般使用的是域名,因此还需要在VPC子网内搭建域名服务器以进行域名解析。本发明所述方案中可采用bind套件工具,在管理设备上搭建域名服务器,相应地,如图2所示,管理设备中还可进一步包括:域名服务模块22。域名服务模块22,用于分别保存管理设备和工作设备的域名及对应的VPC子网地址;当接收到IDE模块通过VPN客户端单元和VPN服务端单元211发送来的管理设备的域名时,将管理设备的域名对应的VPC子网地址返回给IDE模块;当接收到IDE模块通过VPN客户端单元和VPN服务端单元211发送来的运行作业的工作设备的域名时,将运行作业的工作设备的域名对应的VPC子网地址返回给IDE模块。VPN服务端单元211可进一步用于,将源地址为VPN子网的网段地址且目的地址为管理设备的VPC子网地址的报文,发往VPC处理单元212;管理设备的VPC子网地址等同于VPC处理单元212对应的VPC子网地址。VPC处理单元212可进一步用于,当接收到IDE模块通过VPN客户端单元和VPN服务端单元211发送来的作业的参数信息时,通过对作业的参数信息进行分析,确定出运行作业的工作设备,并将运行作业的工作设备的域名返回给IDE模块。实施例二图4为本发明所述IDE设备实施例的组成结构示意图,如图4所示,包括IDE模块41和第二处理模块42。第二处理模块42,用于当需要向处于不同网络环境中的hadoop集群提交作业时,通过与hadoop集群中的管理设备进行协作,打通IDE设备和hadoop集群的网络环境;IDE模块41,用于将生成的作业提交给hadoop集群中运行作业的工作设备。hadoop集群可处于VPC子网中,打通后的网络环境可为VPN子网,相应地,第二处理模块42中可包括:VPN客户端单元421。VPN客户端单元421,用于通过公网地址与管理设备中的VPN服务端单元211建立连接,构建出一个VPN子网,并根据VPN服务端单元211返回的VPC子网的网段地址以及VPN服务端单元211的VPN子网地址构建以下路由:目的地址为VPC子网的网段地址的报文均发往VPN服务端单元211的VPN子网地址。其中,VPN服务端单元211上设置有iptables规则,按照所述规则,将所有源地址为VPN子网的网段地址且目的地址为工作设备的VPC子网地址的报文,均发往管理设备中的VPC处理单元212,VPC处理单元212具有转发功能,将接收自VPN服务端单元211的IDE模块41通过VPN客户端单元421提交的作业,转发给hadoop集群中运行作业的工作设备。此外,IDE模块41还可进一步用于,通过VPN客户端单元421和VPN服务端单元211,将管理设备的域名发送给管理设备中的域名服务模块22,并接收域名服务模块22返回的管理设备的域名对应的VPC子网地址;根据管理设备的域名对应的VPC子网地址,将作业的参数信息发送给VPC处理单元212,并接收VPC处理单元212对作业的参数信息进行分析后返回的运行作业的工作设备的域名;将运行作业的工作设备的域名发送给域名服务模块22,并接收域名服务模块22返回的运行作业的工作设备的域名对应的VPC子网地址,根据运行作业的工作设备的VPC子网地址,将作业提交给运行作业的工作设备。实施例三本实施例中公开了一种向hadoop集群提交作业的系统,包括:如实施例一中所述的管理设备以及如实施例二中所述的IDE设备。基于实施例一和实施例二中的介绍,并参照图3中所示,本实施例所述系统的工作流程可包括以下步骤1)~4)。1)VPN客户端单元421获取VPN配置信息,如可包括VPN服务端单元211的公网地址以及认证证书等,如何获取为现有技术,并通过公网地址与VPN服务端单元211建立连接。之后,VPN服务端单元211可向VPN客户端单元421推送VPC子网的网段地址192.168.0.0/24、VPN服务端单元211的VPN子网地址10.0.0.1以及域名服务模块22的VPC子网地址等信息。VPN客户端单元421可根据接收到的信息构建一个路由,即目的地址为192.168.0.0/24的报文均发往nic2:10.0.0.1。2)IDE模块41获取hadoop集群配置信息,并创建一个Java工程,将hadoop集群配置信息导入Java工程。hadoop集群配置信息中可包括hadoop集群的运行参数以及hadoop集群中的管理设备和工作设备的域名等,如何获取为现有技术。3)IDE模块41编写作业程序,如之前所述的WordCount作业,并将其编译打包成Jar文件,放在Java工程下。4)IDE模块41编写一个Main方法,指定3)中得到的Jar文件,然后运行这个Main方法,即可向hadoop集群提交作业。具体地,IDE模块41可将管理设备的域名发送给域名服务模块22,询问域名服务模块22以获取管理设备的域名对应的VPC子网地址;之后,IDE模块41可根据获取到的VPC子网地址,将作业的参数信息发送给VPC处理单元212,作业的参数信息具体包括哪些内容可根据实际需要而定,VPC处理单元212对作业的参数信息进行分析后,确定出运行作业的工作设备,并将运行作业的工作设备的域名返回给IDE模块41,即通知IDE模块41需要将作业提交给哪些工作设备;之后,IDE模块41可将运行作业的工作设备的域名发送给域名服务模块22,并获取域名服务模块22返回的运行作业的工作设备的域名对应的VPC子网地址,进而将作业提交给运行作业的工作设备。其中,IDE模块41和VPC处理单元212以及域名服务模块22等之间的通信均需要借助于VPN客户端单元421以及VPN服务端单元211。另外,可按照现有技术,在IDE模块41的标准输出中查看作业运行结果。图5为本发明所述Main方法的示意图,图6为本发明所述WordCount作业的运行结果的示意图。实施例四本实施例中公开了一种向hadoop集群提交作业的方法,包括:当IDE设备需要向处于不同网络环境中的hadoop集群提交作业时,hadoop集群中的管理设备通过与IDE设备进行协作,打通IDE设备和hadoop集群的网络环境,并将IDE设备提交的作业转发给hadoop集群中运行作业的工作设备。当hadoop集群处于VPC子网中、打通后的网络环境为VPN子网时,打通IDE设备和hadoop集群的网络环境,并将IDE设备提交的作业转发给hadoop集群中运行作业的工作设备的具体实现可包括:管理设备通过公网地址与IDE设备建立连接,构建出一个VPN子网,并向IDE设备返回VPC子网的网段地址以及管理设备的VPN子网地址,以便IDE设备构建以下路由:目的地址为VPC子网的网段地址的报文均发往管理设备的VPN子网地址;管理设备上设置有iptables规则,按照规则,将所有源地址为VPN子网的网段地址且目的地址为工作设备的VPC子网地址的报文,均发往管理设备的VPC子网地址,且管理设备开启有转发功能,能够将发往管理设备的VPC子网地址的、IDE设备提交给运行作业的工作设备的作业,转发给运行作业的工作设备。实施例五本实施例中同样公开了一种向hadoop集群提交作业的方法,包括:IDE设备需要向处于不同网络环境中的hadoop集群提交作业,通过与hadoop集群中的管理设备进行协作,打通与hadoop集群的网络环境,并将生成的作业提交给hadoop集群中运行作业的工作设备。当hadoop集群处于VPC子网中、打通后的网络环境为VPN子网时,打通与hadoop集群的网络环境,并将生成的作业提交给hadoop集群中运行作业的工作设备的具体实现可包括:IDE设备通过公网地址与管理设备建立连接,构建出一个VPN子网,并根据管理设备返回的VPC子网的网段地址以及管理设备的VPN子网地址构建以下路由:目的地址为VPC子网的网段地址的报文均发往管理设备的VPN子网地址。其中,管理设备上设置有iptables规则,按照规则,将所有源地址为VPN子网的网段地址且目的地址为工作设备的VPC子网地址的报文,均发往管理设备的VPC子网地址,且管理设备开启有转发功能,能够将发往管理设备的VPC子网地址的、IDE设备提交给运行作业的工作设备的作业,转发给运行作业的工作设备。总之,采用本发明所述方案,当IDE设备和hadoop集群处于不同的网络环境时,可打通二者的网络环境,并基于打通后的网络环境,通过IDE工具来向hadoop集群提交作业,从而克服了现有技术中当IDE设备和hadoop集群处于不同的网络环境时无法提交作业的问题,进而提高了作业提交的成功率。在本发明所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1