Hadoop分布式文件系统的访问方法、系统和装置制造方法

文档序号:7779909阅读:298来源:国知局
Hadoop分布式文件系统的访问方法、系统和装置制造方法
【专利摘要】本发明公开了Hadoop分布式文件系统的访问方法、系统和装置:当需要访问Hadoop分布式文件系统时,访问设备从预先设置的M个接口服务器中选出一个接口服务器,并将访问请求发送给所选出的接口服务器,所述M为正整数;所选出的接口服务器调用自身安装的Hadoop客户端,通过所述Hadoop客户端访问所述Hadoop分布式文件系统,完成本次访问请求。应用本发明所述方案,能够降低实现成本。
【专利说明】Hadoop分布式文件系统的访问方法、系统和装置

【技术领域】
[0001] 本发明涉及数据处理技术,特别涉及Hadoop分布式文件系统的访问方法、系统和 装直。

【背景技术】
[0002] Hadoop是一个分布式系统基础架构,用户可以在不了解分布式底层细节的情况 下,开发分布式程序,充分利用集群的威力高速运算和存储。
[0003] Hadoop 分布式文件系统(HDFS,Hadoop Distributed File System)是 Hadoop 使 用的分布式文件系统,是一种具有高容错性和高吞吐量,适合存储和处理大数据的分布式 文件系统。
[0004] 在涉及到大数据服务和处理的产品中,使用HDFS是一种高效、快速成熟的解决方 案,利用HDFS的特点,存储海量数据并对外提供服务。
[0005] 现有技术中,对HDFS的访问主要采用以下两种方式:
[0006] 1)通过 Hadoop 客户端(Hadoop Client)调用的方式,Hadoop Client 是 Hadoop 配套提供的读写和控制工具,使用方式是命令行调用;
[0007] 2)利用Libhdfs,采用编程的方式来对HDFS进行访问,但是Libhdfs底层也需要 依赖 Hadoop Client。
[0008] 可见,无论是采用方式1)还是方式2)来对HDFS进行访问,均需要在访问设备上 安装Hadoop Client。图1为现有访问设备与HDFS之间的关系示意图。如图1所示,其中 的每个访问设备上均需要安装有Hadoop Client。
[0009] 这样,在实际应用中就会存在以下问题:当访问设备的数量较多,如超过几百甚至 达到上千时,一旦需要对Hadoop Client进行版本升级等,实现成本将会非常高。


【发明内容】

[0010] 有鉴于此,本发明提供了 Hadoop分布式文件系统的访问方法、系统和装置,能够 降低实现成本。
[0011] 为了达到上述目的,本发明的技术方案是这样实现的:
[0012] 一种Hadoop分布式文件系统的访问方法,包括:
[0013] 当需要访问Hadoop分布式文件系统时,访问设备从预先设置的Μ个接口服务器中 选出一个接口服务器,并将访问请求发送给所选出的接口服务器,所述Μ为正整数;
[0014] 所选出的接口服务器调用自身安装的Hadoop客户端,通过所述Hadoop客户端访 问所述Hadoop分布式文件系统,完成本次访问请求。
[0015] -种Hadoop分布式文件系统的访问系统,包括:P个访问设备和Μ个接口服务器; 其中,所述Ρ为大于1的正整数,所述Μ为正整数;
[0016] 所述访问设备,用于当需要访问所述Hadoop分布式文件系统时,从所述Μ个接口 服务器中选出一个接口服务器,并将访问请求发送给所选出的接口服务器;
[0017] 所述接口服务器,用于当接收到来自所述访问设备的访问请求时,调用自身安装 的Hadoop客户端,通过所述Hadoop客户端访问所述Hadoop分布式文件系统,完成本次访 问请求。
[0018] -种访问设备,包括:
[0019] 第一处理模块,用于当需要访问Hadoop分布式文件系统时,从预先设置的Μ个接 口服务器中选出一个接口服务器,并将所选出的接口服务器通知给第二处理模块,所述Μ 为正整数;
[0020] 所述第二处理模块,用于将访问请求发送给所选出的接口服务器。
[0021] 一种接口服务器,包括:
[0022] 第三处理模块,用于接收来自访问设备、针对Hadoop分布式文件系统的访问请 求,并发送给第四处理模块;
[0023] 所述第四处理模块,用于调用所述接口服务器中安装的Hadoop客户端,通过所述 Hadoop客户端访问所述Hadoop分布式文件系统,完成本次访问请求。
[0024] 可见,采用本发明所述方案,访问设备可通过接口服务器来完成对Hadoop分布式 文件系统的访问,从而仅需要在接口服务器上安装Hadoop客户端,不需要在访问设备上安 装Hadoop客户端,而对于一套Hadoop分布式文件系统,通常只需要部署很少的几个接口 服务器即可满足要求,因此当需要对Hadoop客户端进行版本升级等时,实现成本将会非常 低,即相比于现有技术,显著降低了实现成本。

【专利附图】

【附图说明】
[0025] 图1为现有访问设备与HDFS之间的关系示意图。
[0026] 图2为本发明HDFS的访问方法实施例的流程图。
[0027] 图3为本发明HDFS的访问方法较佳实施例的流程图。
[0028] 图4为本发明HDFS的访问系统实施例的组成结构示意图。
[0029] 图5为本发明访问设备实施例的组成结构示意图。
[0030] 图6为本发明接口服务器实施例的组成结构示意图。

【具体实施方式】
[0031] 针对现有技术中存在的问题,本发明中提出一种改进后的HDFS访问方案,在访问 设备层和HDFS层之间增加了一个接口服务器(Interface Server)层,访问设备对HDFS的 访问可通过Interface Server来实现,不需要直接与HDFS进行交互。
[0032] 为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所 述方案作进一步的详细说明。
[0033] 图2为本发明HDFS的访问方法实施例的流程图。如图2所示,包括以下步骤21? 22〇
[0034] 步骤21 :当需要访问HDFS时,访问设备从预先设置的Μ个Interface Server中选 出一个Interface Server,并将访问请求发送给所选出的Interface Server,Μ为正整数。
[0035] Μ的具体取值可根据实际需要而定,通常,对于一套HDFS系统,只需要部署很少的 几个Interface Server即可满足性能要求。
[0036] 当需要访问HDFS时,访问设备可根据负载均衡策略,从11个Interface Server中 选出一个 Interface Server。
[0037] 所述负载均衡策略的具体实现方式可根据实际需要而定,比如,访问设备可将自 身标识作哈希运算,并将哈希运算结果映射到一个Interface Server上,该Interface Server 即为选出的 Interface Server。
[0038] 之后,访问设备可与所选出的Interface Server建立连接,如何建立连接为现有 技术,并利用所建立的连接,将访问请求发送给所选出的Interface Server。特殊地,如果 访问设备与所选出的Interface Server建立连接失败,贝U可按照某种策略重新选出一个 (如随机选出一个)Interface Server并与之建立连接。
[0039] 访问设备可通过网络访问或工具调用等多种方式来访问Interface Server,即 与Interface Server进行交互,从而扩展了 HDFS的应用场景。较佳地,访问设备可基于 远程过程调用协议(RPC, Remote Procedure Call Protocol),将访问请求发送给所选出的 Interface SerVer,RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层 网络技术的协议。
[0040] 步骤22 :所选出的Interface Server调用自身安装的Hadoop Client,通过 Hadoop Client访问HDFS,完成本次访问请求。
[0041] 在实际应用中,Μ个Interface Server在接收来自访问设备的访问请求之前,可 分别进行如下处理:建立与HDFS的N个连接句柄,并将N个连接句柄放入一个连接池中,N 为正整数,即每个Interface Server均会维护一个连接池。
[0042] 相应地,所选出的Interface Server调用自身安装的Hadoop Client之前,可先 从自身的连接池中选出一个连接句柄;这样,Hadoop Client即可利用所选出的连接句柄访 问HDFS ;在完成本次访问请求之后,所选出的Interface Server需要将所选出的连接句柄 放回自身的连接池,供下一次使用。
[0043] 各Interface Server可在自身启动时,即建立与HDFS的N个连接句柄,N的具体 取值可根据实际需要而定,通常大于1,这样,当接收到来自访问设备的访问请求时,即可直 接使用连接池中的连接句柄,而不需要临时再去建立连接句柄,从而减少了时延,进而提高 了访问请求的处理速度。
[0044] 所述访问请求可为读请求或写请求,当为读请求时,Hadoop Client从HDFS中获 取访问设备请求读取的数据,并返回给访问设备;当为写请求时,Hadoop Client将访问设 备请求写入的数据写入到HDFS中,并可向访问设备返回写入成功消息。
[0045] 如前所述,在完成本次访问请求之后,所选出的Interface Server需要将所选出 的连接句柄放回自身的连接池;如果本次访问失败,也需要通知访问设备,并且,也需要将 所选出的连接句柄放回连接池。
[0046] 基于上述介绍,图3为本发明HDFS的访问方法较佳实施例的流程图。如图3所示, 包括以下步骤31?36。
[0047] 步骤31 :各Interface Server启动,分别建立与HDFS的N个连接句柄,并将N个 连接句柄放入自身的连接池中。
[0048] 步骤32 :当需要访问HDFS时,访问设备根据负载均衡策略,从各Interface Server中选出一个Interface Server并与之建立连接。
[0049] 步骤33 :利用所建立的连接,访问设备将访问请求发送给所选出的Interface Server。
[0050] 步骤34 :所选出的Interface Server从自身的连接池中选出一个连接句柄。
[0051] 步骤35 :所选出的Interface Server调用自身安装的Hadoop Client,并利用所 选出的连接句柄,对于读请求,从HDFS中获取访问设备请求读取的数据,并返回给访问设 备,对于写请求,将访问设备请求写入的数据写入到HDFS中,并向访问设备返回写入成功 消息。
[0052] 步骤36 :所选出的Interface Server将所选出的连接句柄放回自身的连接池。
[0053] 本发明同时公开了一种HDFS的访问系统、一种访问设备以及一种接口服务器,以 下分别进行介绍。
[0054] 图4为本发明HDFS的访问系统实施例的组成结构示意图。如图4所示,包括:P个 访问设备41和Μ个Interface Server42 ;其中,P为大于1的正整数,Μ为正整数(通常大 于1)。
[0055] 访问设备41,用于当需要访问HDFS时,从Μ个Interface Server42中选出一个 Interface Server42,并将访问请求发送给所选出的Interface Server42;
[0056] Interface Server42,用于当接收到来自访问设备41的访问请求时,调用自身安 装的Hadoop Client,通过Hadoop Client访问HDFS,完成本次访问请求。
[0057] 具体地,
[0058] 访问设备41与所选出的Interface Server42建立连接;利用所建立的连接,并基 于RPC,将访问请求发送给所选出的Interface Server42。
[0059] 另外,Interface Server42还可进一步用于,在接收来自访问设备41的访问请求 之前,建立与HDFS的N个连接句柄,并将N个连接句柄放入一个连接池中,N为正整数;
[0060] 在调用Hadoop Client之前,从连接池中选出一个连接句柄,以便Hadoop Client 利用所选出的连接句柄访问HDFS ;在完成本次访问请求之后,将所选出的连接句柄放回连 接池。
[0061] 图5为本发明访问设备实施例的组成结构示意图。如图5所示,包括:
[0062] 第一处理模块51,用于当需要访问HDFS时,从预先设置的Μ个Interface Server 中选出一个Interface Server,并将所选出的Interface Server通知给第二处理模块52, Μ为正整数;
[0063] 第二处理模块52,用于将访问请求发送给所选出的Interface Server。
[0064] 具体地,
[0065] 第一处理模块51可根据负载均衡策略,从Μ个Interface Server中选出一个 Interface Server。
[0066] 第二处理模块52与所选出的Interface Server建立连接;利用所建立的连接,并 基于RPC,将访问请求发送给所选出的Interface Server。
[0067] 图6为本发明接口服务器实施例的组成结构示意图。如图6所示,包括:
[0068] 第三处理模块61,用于接收来自访问设备、针对HDFS的访问请求,并发送给第四 处理模块62 ;
[0069] 第四处理模块62,用于调用接口服务器中安装的Hadoop Client,通过Hadoop Client访问HDFS,完成本次访问请求。
[0070] 其中,
[0071] 第三处理模块61还可进一步用于,在接收来自访问设备的访问请求之前,建立与 HDFS的N个连接句柄,并将N个连接句柄放入一个连接池中,N为正整数;
[0072] 相应地,第四处理模块62还可进一步用于,在调用Hadoop Client之前,从连接池 中选出一个连接句柄,以便Hadoop Client利用所选出的连接句柄访问HDFS ;在完成本次 访问请求之后,将所选出的连接句柄放回连接池。
[0073] 上述系统和装置实施例的具体工作流程请参照前述方法实施例以及较佳实施例 中的相应说明,此处不再赘述。
[0074] 总之,采用本发明所述方案,访问设备可通过Interface Server来完成对HDFS的 访问,从而仅需要在Interface Server上安装Hadoop Client,不需要在访问设备上安装 Hadoop Client,而对于一套HDFS系统,通常只需要部署很少的几个Interface Server即 可满足要求,因此当需要对Hadoop Client进行版本升级等时,实现成本将会非常低,即相 比于现有技术,显著降低了实现成本;而且,访问设备可根据自身需要进行服务扩展,不需 要依赖于Hadoop Client ;另外,通过建立连接池,可显著提高访问请求的处理速度,试验显 示,对于HDFS的读写效率能够提升50%以上。
[0075] 综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。
【权利要求】
1. 一种Hadoop分布式文件系统的访问方法,其特征在于,包括: 当需要访问Hadoop分布式文件系统时,访问设备从预先设置的Μ个接口服务器中选出 一个接口服务器,并将访问请求发送给所选出的接口服务器,所述Μ为正整数; 所选出的接口服务器调用自身安装的Hadoop客户端,通过所述Hadoop客户端访问所 述Hadoop分布式文件系统,完成本次访问请求。
2. 根据权利要求1所述的方法,其特征在于,所述从Μ个接口服务器中选出一个接口服 务器包括: 所述访问设备根据负载均衡策略,从所述Μ个接口服务器中选出一个接口服务器。
3. 根据权利要求1所述的方法,其特征在于,所述将访问请求发送给所选出的接口服 务器包括: 所述访问设备与所选出的接口服务器建立连接; 利用所建立的连接,并基于远程过程调用协议,将所述访问请求发送给所选出的接口 服务器。
4. 根据权利要求1所述方法,其特征在于, 该方法进一步包括:所述Μ个接口服务器在接收来自访问设备的访问请求之前,分别 进行如下处理:建立与所述Hadoop分布式文件系统的Ν个连接句柄,并将所述Ν个连接句 柄放入一个连接池中,所述N为正整数; 所述所选出的接口服务器调用自身安装的Hadoop客户端之前,进一步包括:所选出的 接口服务器从自身的连接池中选出一个连接句柄; 所述通过所述Hadoop客户端访问所述Hadoop分布式文件系统包括:所述Hadoop客户 端利用所选出的连接句柄访问所述Hadoop分布式文件系统; 所述完成本次访问请求之后,进一步包括:所选出的接口服务器将所选出的连接句柄 放回自身的连接池。
5. 根据权利要求1?4中任一项所述的方法,其特征在于,所述完成本次访问请求包 括: 当所述访问请求为读请求时,所述Hadoop客户端从所述Hadoop分布式文件系统中获 取所述访问设备请求读取的数据,并返回给所述访问设备; 当所述访问请求为写请求时,所述Hadoop客户端将所述访问设备请求写入的数据写 入到所述Hadoop分布式文件系统中。
6. -种Hadoop分布式文件系统的访问系统,其特征在于,包括:P个访问设备和Μ个接 口服务器;其中,所述Ρ为大于1的正整数,所述Μ为正整数; 所述访问设备,用于当需要访问所述Hadoop分布式文件系统时,从所述Μ个接口服务 器中选出一个接口服务器,并将访问请求发送给所选出的接口服务器; 所述接口服务器,用于当接收到来自所述访问设备的访问请求时,调用自身安装的 Hadoop客户端,通过所述Hadoop客户端访问所述Hadoop分布式文件系统,完成本次访问请 求。
7. 根据权利要求6所述的系统,其特征在于, 所述访问设备与所选出的接口服务器建立连接;利用所建立的连接,并基于远程过程 调用协议,将所述访问请求发送给所选出的接口服务器。
8. 根据权利要求6或7所述的系统,其特征在于, 所述接口服务器进一步用于,在接收来自所述访问设备的访问请求之前,建立与所述 Hadoop分布式文件系统的N个连接句柄,并将所述N个连接句柄放入一个连接池中,所述N 为正整数; 在调用所述Hadoop客户端之前,从所述连接池中选出一个连接句柄,以便所述Hadoop 客户端利用所选出的连接句柄访问所述Hadoop分布式文件系统;在完成本次访问请求之 后,将所选出的连接句柄放回所述连接池。
9. 一种访问设备,其特征在于,包括: 第一处理模块,用于当需要访问Hadoop分布式文件系统时,从预先设置的Μ个接口服 务器中选出一个接口服务器,并将所选出的接口服务器通知给第二处理模块,所述Μ为正 整数; 所述第二处理模块,用于将访问请求发送给所选出的接口服务器。
10. 根据权利要求9所述的访问设备,其特征在于, 所述第一处理模块根据负载均衡策略,从所述Μ个接口服务器中选出一个接口服务 器。
11. 根据权利要求9或10所述的访问设备,其特征在于, 所述第二处理模块与所选出的接口服务器建立连接;利用所建立的连接,并基于远程 过程调用协议,将所述访问请求发送给所选出的接口服务器。
12. -种接口服务器,其特征在于,包括: 第三处理模块,用于接收来自访问设备、针对Hadoop分布式文件系统的访问请求,并 发送给第四处理模块; 所述第四处理模块,用于调用所述接口服务器中安装的Hadoop客户端,通过所述 Hadoop客户端访问所述Hadoop分布式文件系统,完成本次访问请求。
13. 根据权利要求12所述的接口服务器,其特征在于, 所述第三处理模块进一步用于,在接收来自访问设备的访问请求之前,建立与所述 Hadoop分布式文件系统的N个连接句柄,并将所述N个连接句柄放入一个连接池中,所述N 为正整数; 所述第四处理模块进一步用于,在调用所述Hadoop客户端之前,从所述连接池中选出 一个连接句柄,以便所述Hadoop客户端利用所选出的连接句柄访问所述Hadoop分布式文 件系统;在完成本次访问请求之后,将所选出的连接句柄放回所述连接池。
【文档编号】H04L29/08GK104144202SQ201310673855
【公开日】2014年11月12日 申请日期:2013年12月11日 优先权日:2013年12月11日
【发明者】吴云佳 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1