大数据环境下MapReduce准入控制的设计与实现

2016-03-17 01:55李亚如刘建华
计算机测量与控制 2016年2期
关键词:端口集群服务器

李亚如,刘建华

(1.西安邮电大学 通信与信息工程学院,西安 710061; 2.西安邮电大学 信息中心,西安 710061 )



大数据环境下MapReduce准入控制的设计与实现

李亚如1,刘建华2

(1.西安邮电大学 通信与信息工程学院,西安710061; 2.西安邮电大学 信息中心,西安710061 )

摘要:为了保证Hadoop平台的安全性,确保执行MapReduce作业的TaskTracker节点符合Hadoop平台的安全管理要求,杜绝非法用户对TaskTracker节点访问并对其分配任务,提出了一种对JobTracker节点进行身份认证的方法,设计实现了对JobTracker节点进行身份认证的认证体系;该认证体系主要是基于802.1x进行准入控制,重点分析了MapReduce分布式计算的流程,提出了总体设计方案,完成了相关模块的配置实现,最终结果显示只有通过认证的JobTracker才能通过交换机的可控端口给相应的TaskTracker节点分配任务,有效地避免了非法用户的访问,增强了Hadoop平台的安全性、可靠性,为建设安全的大数据环境提供了很好的技术支持。

关键词:Hadoop;TaskTracker节点;802.1x ;大数据

0引言

随着网络的普及和发展,数据正在以爆炸式的方式生产积累,世界已进入网络化的大数据时代,然而大规模数据的汇集无形中加大了信息泄漏的风险性,因此大数据的安全问题成为新的挑战。Hadoop作为对大数据时代所特有的数据进行存储和处理的框架,以成本低、搭建灵活、便于管理等优势,在互联网的各个领域得到了广泛的应用和发展,但其安全机制薄弱缺乏一个安全认证机制,以致无法保证在集群上进行操作的用户为合法用户[1]。就MapReduce分布式计算框架而言,JobTracker通过分配任务给TaskTracker节点运行,来协调管理全部运行在平台上的作业,如果任意用户都可访问TaskTracker节点并对其分配任务,会导致信息的泄露,产生严重后果,这将直接影响着整个平台的安全性能[2-3]。本文通过对Hadoop的MapReduce分布式计算框架的研究,改良其不足之处,设计实现对MapReduce进行基于802.1x的准入控制,从而避免非法用户访问TaskTracker节点并对其分配任务,对提高Hadoop平台的整体安全性能具有重要的现实意义。

1系统总体设计

Hadoop是一个能够在集群上对大规模数据进行分布式计算和处理的开源框架,实现了Google的Map-Reduce编程模型和框架,能够把应用程序分割成许多小的工作单元,并把这些单元放到集群的节点上执行处理[4]。Hadoop框架最核心的两个设计模块就是HDFS分布式文件系统和MapReduce分布式计算框架。HDFS以流式数据访问的模式实现了大规模数据的存储,MapReduce实现了对海量数据进行并行计算处理的应用[5]。

当client节点向Hadoop集群提交一个MapReduce作业时,JobClient调用runJob()方法创建JobClient实例并通过调用其submitJob()方法提交作业,与此同时JobClient会在client节点将运行作业所需的资源信息打包成jar文件存储到HDFS中。当JobTracker接收到submitJob()方法的调用后,会创建一个正在运行的作业对象,为创建任务运行列表,JobTracker需从共享文件系统(Shared FileSystem)中检索Hadoop已划分好的独立的输入数据分片(input slipt)。为了确保试图在Hadoop集群上对TaskTracker节点执行操作的用户为安全合法用户,JobTracker将每一个分片创建的task任务发送给TaskTracker时需通过认证者进行身份验证,若为合法的安全用户,任务发送成功,若不合法,任务发送失败并重新进行身份验证。当TaskTracker接收到分配的任务后,首先将任务所包含的所有信息从共享文件中检索缓存,然后创建一个TaskRunner实例来执行该任务,TaskRunner将启动一个新的JVM运行Map 任务或Reduce 任务,以确保Map和Reduce的独立性。具体系统的总体设计如图1所示。

图1 具体系统的总体设计

对于hadoop集群执行MapReduce作业的过程来讲,主要分为5个独立的部分:Client节点、JobTracker节点、TaskTracke节点、HDFS和认证者。具体各部分功能概述如表1所示。其中JobTracker节点、TaskTracke节点和认证者构成了认证体系,在认证体系模块中进行详细的介绍。

表1 各部分功能概述

2具体的设计方案

2.1Hadoop集群的配置方案

Hadoop集群是一种典型的主从式架构,它可划分为Master和Slave两个角色, 其中在Master节点上运行着NameNode、JobTracker,而在每个Slave节点上,都部署一个DataNode和TaskTracker。Hadoop是基于Java编程语言的可运行在大型主机群上的应用程序,因此对Hadoop进行安装之前首先要配置SSH和支持Java运行环境的JDK,其中SSH和JDK的配置安装没有先后顺序。配置完成SSH和JDK后,再进行Hadoop的安装配置,最后完成Hadoop集群的搭建。

2.1.1SSH和JDK的配置

Hadoop通过SSH(Secure Shell)来管理其守护进程,因此必须安装SSH。在完全分布的模式下,Hadoop控制脚本依赖SSH来执行针对整个集群的操作,为了支持无缝工作,需要在各个节点之间执行指令的时候进行无密码登陆的形式,所以在配置SSH需要无密码公钥认证的形式。

首先确保 Hadoop集群的各个节点中SSH 已经被安装。为了实现无密码登录,在集群的master节点下生成一组无密码登录的密钥,在默认的情况下将authorized_keys文件复制到各个授权的slave节点的/.ssh 目录下。这样配置之后,master节点可以无密码登录所有的slave节点。

配置支持Java运行环境的JDK之前,先对集群的各个节点安装jdk1.8.0_51并保证其安装路径一致,在此基础上对/.bashrc文件中的环境变量JAVA_HOME、CLASSPATH、PATH和JRE_HOME进行配置。

2.1.2Hadoop的配置

搭建Hadoop集群首先在Master节点上安装Hadoop,本系统使用的Hadoop版本为hadoop-1.2.1。安装完成之后需要在hadoop/conf目录下进行配置,其常用的3个配置文件为core-site.xml文件、hdfs-site.xml文件、mapred-site.xml文件,分别完成对HDFS地址和端口、HDFS数据副本数量、MapReduce的地址和端口的配置。启动 Hadoop之前,需要对Hadoop 的HDFS文件系统进行格式化,在Master节点hadoop的安装目录下输入bin/hadoop namenode -format命令格式化文件系统,自此 Hadoop 的文件配置全部完成。

2.1.3Hadoop集群的搭建

完成Master节点的Hadoop安装配置后,将该节点的hadoop文件夹拷贝至其他Slave节点处即可完成集群配置,在Master节点hadoop的安装目录下执行bin/start-all.sh命令启动 Hadoop集群。

2.2认证体系的配置方案

在Hadoop平台执行MapReduce作业的过程中,JobTracker节点作为请求者向TaskTracker节点发送分配任务时,根据802.1x认证程序,输入认证信息发起802.1x认证,认证者通过非可控端口收到请求者提交的认证数据信息,发送至TaskTracker节点上的认证服务器进行验证,服务器将接收到的用户信息与数据库中的用户信息进行比对,如果用户信息一致则认证成功,可控端口打开任务发送成功,如果认证失败,交换机的端口保持关闭状态,任务分配失败。

802.1x是一种基于物理端口或逻辑端口(如VLAN)的认证协议,是一种对用户身份进行认证的方法和策略。进行802.1x认证的最终目的就是限制未授权的用户或设备通过端口接入网络[6-7]。它的体系结构包括二个模块:即请求模块、认证模块,其中认证模块包括认证者和认证服务器。具体的认证体系结构如图2所示。

图2 认证体系结构

2.2.1请求模块的配置

请求模块一般是支持802.1x认证的用户终端设备,用户通过启动客户端软件发起802.1x认证,由认证系统对其进行身份认证来实现基于端口的接入控制[8-9]。在MapReduce作业执行的过程中JobTracker节点作为请求者访问被分配任务的TaskTracker节点,因此在JobTracker节点进行配置以实现对802.1x认证标准的支持。

2.2.2认证模块的配置

在hadoop 集群中执行MapReduce作业的过程中,交换机和被分配任务的TaskTracker节点充当了认证体系中的认证模块。交换机作为认证者通常为两层可网管的交换机,其作用就是在端口上启用802.1x进行认证、指定认证服务器的信息以及根据认证结果控制端口状态等。

TaskTracker节点作为认证服务器为认证系统提供认证服务的实体,本系统使用freeradius服务器来实现认证服务器的认证和授权功能。freeradius是一款开源的、免费的服务器软件,不仅具有一般radius服务器所具有的认证、授权和计费功能,还可以灵活的配置和发送请求[10]。在TaskTracker节点上安装freeradius软件,并对其进行相关的配置,从而实现在Hadoop平台下的认证服务器。由于需要在服务器系统通过获取mysql数据库中存储的用户名和密码等认证信息,以此来校验JobTracker节点发送来的认证信息,所以需先安装mysql数据库。安装完数据库之后再安装freeradius并对其进行配置。配置完成后,启动服务器,在终端输入radtest test test 192.168.0.147 100 testing123,可以看到服务器收到了请求,并返回成功接收信息。如图3所示。

图3 配置成功后服务器状态

3实验结果与分析

根据上述的设计方案,利用实验室的资源搭建了一个Hadoop集群的实验平台,实现对TaskTracker节点进行访问控制的验证。整个实验平台由3台普通的pc机和一个可网管的锐捷交换机组成,操作系统选择ubuntu,支持Java运行环境的JDK版本为jdk-8u51-linux,Hadoop软件版本为Hadoop-1.2.1,实现认证功能的服务器软件为freeradius。

在Hadoop的实验平台,将pc1作为JobTracker节点,pc2和pc3作为TaskTracker节点。平台结构如图4所示。

图4 平台结构示意图

在master节点的hadoop安装目录下使用bin/start-all.sh命令开启hadoop集群,然后可以通过 web 模式看到MapReduce基本信息的管理界面如图5所示,通过该界面我们可以看到MapReduce 系统的运行状态,启动时间等基本信息,以及集群正在运行的 maps 和 reduces 数目,活跃节点数,Maptask 的容量,Reducetask的容量等的摘要信息。

图5 MapReduce 管理界面

为了实现对TaskTracker节点进行访问控制的验证,开启TaskTracker节点的 freeradius服务器来进行实验测试。我们采用系统的 wordcount程序对输入文件进行单词个数统计,并汇总所有统计结果输出。输入实验测试信息,弹出用户输入凭据,如图6所示。

图6 用户输入凭据

输入正确的用户信息后,点击连接。实验运行结束,可以通过 web 模式看到实验结果信息的管理界面,如图7所示。

图7 实验结果界面

通过在Hadoop的实验平台运行wordcount程序作业对TaskTracker节点进行身份认证的实验,实现了Hadoop平台中对TaskTracker节点进行身份认证的安全控制。从实际效果来看,系统整体运行状况平稳,达到了系统设计目标。

4结束语

Hadoop作为一个能够对海量数据进行分布式存储和计算的平台,在各个领域得到了广泛的应用。MapReduce分布式计算作为Hadoop的核心技术之一,主要对海量数据进行分布式计算处理。但是目前在MapReduce计算的环境中缺乏一个安全机制,无法保证对TaskTracker节点进行任务分配的是合法安全的用户,本设计通过使用802.1x协议的网络准入控制对访问者进行身份验证,有效地避免了非法用户访问TaskTracker节点,增强了Hadoop平台的安全性、可靠性,为建设安全的大数据环境提供了很好的技术支持。

参考文献:

[1]李晓蕾. 基于Hadoop社交网络分析平台的设计与实现[J]. 计算机测量与控制,2014(12):4094-4097.

[2]郑晓薇,项明,张大为,等. 基于节点能力的Hadoop集群任务自适应调度方法[J]. 计算机研究与发展,2014(3):618-626.

[3]曹旭. Hadoop平台下海量日志数据处理模型的研究及改进[D].杭州:浙江理工大学,2013.

[4]何翔,李仁发,唐卓. 一种异构环境下的基于MapReduce任务调度改进机制[J]. 计算机应用研究,2013(11):3370-3373,3379.

[5]任萱萱. 基于Hadoop平台的作业调度研究[D].天津:天津师范大学,2011.

[6]王昌旭,周振柳,许榕生. 网络接入安全控制研究[J]. 计算机应用与软件,2008(11):92-94.

[7]朱兵,周爽,张攀. 基于主机信息的802.1x的改进方案设计[J]. 信息安全与技术,2010(7):114-116.

[8]鹿凯宁,韦乃文. 802.1x协议安全性能的改进[J]. 电子测量技术,2007(1):107-109.

[9]黄永锋,王滨,许晓东. RADIUS在802.1x中的应用[J]. 计算机工程与设计,2006(5):798-801.

[10]杨凌凤. 使用USBKey提高FreeRadius证书认证的安全性[J]. 计算机安全,2008(2):42-44.

Design and Implementation of Mapreduce Access Control in Big Data Environment

Li Yaru1,Liu Jianhua2

(1.School of Communication and Information Engineering,Xi'an University of Posts and Telecommunications,Xi'an710061, China; 2.Information Center, School of Communication and Information Engineering,Xi'an University of Posts and Telecommunications,Xi'an710061, China )

Abstract:In order to ensure the security of Hadoop platform,to ensure that the TaskTracker node of the MapReduce operation is in accordance with the safety management requirements of the Hadoop platform, Put an end to the illegal users access to TaskTracker node and the assigned task, A method of authentication for JobTracker node is proposed, Design and implementation of the authentication system for JobTracker nodes. The certification system is mainly based on 802.1x performs admission control, Focus on the analysis of the process of MapReduce distributed computing, Put forward the overall design scheme, Complete the configuration of the relevant module, The final result shows that the TaskTracker node assignment can be assigned to the corresponding JobTracker node through the control of the switch, Effectively avoid the illegal user access, Enhanced security and reliability of the Hadoop platform, For the construction safety of big data environment provides a good technical support.

Keywords:Hadoop;TaskTracker node;802.1x;big data

文章编号:1671-4598(2016)02-0114-04

DOI:10.16526/j.cnki.11-4762/tp.2016.02.031

中图分类号:TP273

文献标识码:A

作者简介:李亚如(1988-),女,山西晋城人,硕士研究生,主要从事网络与信息安全方向的研究。刘建华(1963-),男,陕西西安人,教授,高级工程师,主要从事信息安全方向的研究。

收稿日期:2015-12-03;修回日期:2015-12-30。

猜你喜欢
端口集群服务器
一种端口故障的解决方案
通信控制服务器(CCS)维护终端的设计与实现
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
端口阻塞与优先级
Python与Spark集群在收费数据分析中的应用
中国服务器市场份额出炉
勤快又呆萌的集群机器人
得形忘意的服务器标准
计算机网络安全服务器入侵与防御