发明内容
针对相关技术中的问题,本发明提出一种基于Hadoop集群的控制方法和系统,能够实现了对主客体的访问行为的监控,同时,在不影响Hadoop的运行效率的情况下,对该Hadoop集群进行访问监控、访问控制、日志审计,从而保证了Hadoop的安全性。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种基于Hadoop集群的控制方法。
该基于Hadoop集群的控制方法包括:拦截客户端的访问请求;根据客户端的访问请求,获取客户端的访问记录,并将访问请求转发至Hadoop集群,以及对Hadoop集群进行监控。
根据本发明的一个实施例,进一步包括:对访问请求的合法性进行验证;在访问请求合法的情况下,将访问请求转发至Hadoop集群;在访问请求不合法的情况下,将访问请求发送至系统管理员,并进行报警。
根据本发明的一个实施例,访问记录包括:访问时间、客户端IP地址、访问结果、访问行为、访问主体、访问客体。
根据本发明的一个实施例,进一步包括:客户端通过HTTP协议发送访问请求。
根据本发明的一个实施例,进一步包括:客户端通过RPC协议发送访问请求。
根据本发明的另一方面,提供了一种基于Hadoop集群的控制系统。
该基于Hadoop集群的控制系统包括:
拦截模块,用于拦截客户端的访问请求;
发送监控模块,用于根据所述客户端的访问请求,获取所述客户端的访问记录,并将所述访问请求转发至所述Hadoop集群,以及对所述Hadoop集群进行监控。
根据本发明的一个实施例,进一步包括:验证模块,用于对所述访问请求的合法性进行验证;第一发送模块,用于在所述访问请求合法的情况下,将所述访问请求转发至Hadoop集群;第二发送模块,用于在所述访问请求不合法的情况下,将所述访问请求发送至系统管理员,并进行报警。
根据本发明的一个实施例,所述访问记录包括:访问时间、客户端IP地址、访问结果、访问行为、访问主体、访问客体。
根据本发明的一个实施例,进一步包括:第三发送模块,用于所述客户端通过HTTP协议发送所述访问请求。
根据本发明的一个实施例,进一步包括第四发送模块,用于所述客户端通过RPC协议发送所述访问请求。
本发明的有益技术效果在于:
本发明通过监控模块接收访问请求,并且对访问请求进行分析,以获得访问记录,从而实现了对主客体的访问行为的监控,同时,在不影响Hadoop的运行效率的情况下,对该Hadoop集群进行访问监控、访问控制、日志审计,从而保证了Hadoop的安全性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种基于Hadoop集群的控制方法。
如图1所示,根据本发明实施例的基于Hadoop集群的控制方法包括:
步骤S101,拦截客户端的访问请求;
步骤S103,根据客户端的访问请求,获取客户端的访问记录,并将访问请求转发至Hadoop集群,以及对Hadoop集群进行监控,其中,通过对访问请求进行分析,以获得访问记录,并且访问记录通过日志的方式进行记录,以便用户通过日志审计的方式查看访问记录,从而实现主客体的访问监控,以及通过查看用户的访问权限,从而判断是否进行转发该访问请求,从而实现了访问控制。
在该实施例中,如图2所示,该Hadoop集群包括以下组件:
HDFS(Hadoop Distributed File System,分布式文件系统)、MapReduce(分布式计算框架)、HBase(分布式存储系统)、zookeeper(分布式协作服务)、Hive(数据仓库)、Pig(ad-hoc脚本)、Sqoop(数据ETL/同步工具)、Flume(日志收集工具)、Mahout(数据挖掘算法库)、Ambari(安装部署配置工具),上述组件的作用具体如下:HDFS为Hadoop集群中数据存储管理的基础,能够检测和应对硬件故障,同时在低成本的通用硬件上运行,此外,该HDFS还简化了文件的一致性模型。通过流式数据访问,提供高吞吐量应用程序访问功能,另外,该HDFS还提供了一次写入多次读取的机制,数据以快的形式同时分布在集群不同的物理机器上;MapReduce是一种分布式计算模型,用于大数据量的计算,它屏蔽了分布式计算框架的细节,将计算抽象成Map和Reduce两部分,其中,Map是对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果,Reduce则对上述中间结果中相同的“键”的所有“值”进行规约,以得到最终结果;HBase采用了BigTable的数据模型,该HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,从而将数据存储和并行计算结合到一起;Zookeeper运行在计算机集群上面,用于管理Hadoop操作;Hive用于运行存储在Hadoop集群上的查询语句,进而将开发人员编写的数据查询语句翻译为MapReduce的任务;Pig为用户提供多种接口;Sqoop用于在Hadoop与传统的数据库间进行数据的传递;Flume为扩展、适合复杂环境的海量日志的收集系统,当然,也可根据实际需求,收集其他类型的数据;Mahout用于帮助开发人员快捷地创建智能应用程序;Ambari为Hadoop的管理工具(Web工具),可以快捷的创建、管理、监控Hadoop集群。
此外,本发明通过在分布式文件系统HDFS前设置一个控制模块,该控制模块可以拦截所有用户的访问请求,对该用户的访问权限进行分析,在不满足用户的访问权限的情况下,将该访问请求发送给系统管理员,并进行报警,以体现用户具有不安全访问,在满足用户的访问权限的情况下,对该访问请求进行分析,以获得用户的访问记录,随后将该访问请求发送至分布式文件系统HDFS,例如,通过该控制模块对该访问请求进行解析,形成一条条记录,也就是主客体的访问行为,其中,访问记录可包括:时间、IP、访问行为、访问结果等,然后利用上述记录进行绘图,从而实现了监控Hadoop里面所有主客体的访问控制行为,从而利用该控制模块的转发机制让所有访问请求都通过该控制模块,进而能够监控Hadoop集群中所有主客体的访问控制行为,此外,该监控模块也不依赖Hadoop集群资源,该监控装置可独立运行,从而进一步保障了该Hadoop集群的高效运行。
通过本发明的上述方案,通过监控模块接收访问请求,并且对访问请求进行分析,以获得访问记录,从而实现了对主客体的访问行为的监控,同时,在不影响Hadoop的运行效率的情况下,对该Hadoop集群进行访问监控、访问控制、日志审计,从而保证了Hadoop的安全性。
根据本发明的一个实施例,进一步包括:对访问请求的合法性进行验证;在访问请求合法的情况下,将访问请求转发至Hadoop集群;在访问请求不合法的情况下,将访问请求发送至系统管理员,并进行报警。
在该实施例中,用户在接收到该访问请求后,对该访问请求的合法性进行验证,以及查看访问用户的访问权限,从而避免了恶意访问的情况,进而保证了Hadoop集群的安全性。
根据本发明的一个实施例,访问记录包括:访问时间、客户端IP地址、访问结果、访问行为、访问主体、访问客体,其中,客户端IP地址为用户的访问地址,访问行为为用户的访问方式,例如,访问方式包括DAC为自主访问控制、MAC为强制访问控制、RBAC为基于角色的访问控制等,访问主体为客户端的标识,访问客体为Hadoop集群的标识,从而能够通过该访问主体和访问客体确定访问的过程,例如,客户端A对Hadoop集群A进行访问。当然可以理解,可根据实际需求对访问记录进行设置,例如,根据本发明的一个实施例,该访问记录还包括:访问方式,本发明对此不作限制。
根据本发明的一个实施例,进一步包括:客户端通过浏览器发送访问请求。
在该实施例中,该Hadoop集群的通讯方式,可通过HTTP协议与该Hadoop集群进行通讯,因此,在客户端中封装了HTTP协议,同时,在客户端访问Hadoop的过程中,每次文件的操作都需调用对应的函数,因此,我们可通过上述函数的调用识别客户端和Hadoop的通信协议,例如:当通过HTTP协议调用Hadoop时,通过API接口(Application ProgrammingInterface,应用程序编程接口)实现对该分布式文件系统HDFS的操作,用户可用过该控制模块对该分布式文件系统HDFS进行操作,通过定义格式利用HTTP协议(HyperTextTransfer Protocol超文本传输协议)传递用户名和密码,以此访问该监控模块,该监控模块解析HTTP标头(header)获取用户名和密码,同时将上述用户名和密码与ACL表匹配,判断该用户名和密码是否正确以及其对应的权限。
根据本发明的一个实施例,进一步包括:客户端通过RPC协议发送访问请求。
在该实施例中,该Hadoop集群的通讯方式,可通过RPC协议(Remote ProcedureCall Protocol远程过程调用协议)与该Hadoop集群进行通讯,因此,客户端本身封装了RPC协议,同时,在客户端访问Hadoop的过程中,每次文件的操作都需调用对应的函数,因此,我们可通过上述函数的调用识别客户端和Hadoop的通信协议,例如:当通过RPC协议调用Hadoop时,通过定义格式修改用户环境或客户端系统环境变量,当对客户端系统环境进行修改时,需要重启机器,随后后台获取传过的环境变量,解析出用户名和密码,从而匹配用户名密码是否正确。
根据本发明的一个实施例,如图3所示,该分布式文件系统HDFS包括:一个主管理节点(NameNode节点)、多个备用管理节点(NameNode备用节点)、多个数据节点(DataNode节点),以及和多个数据节点连接的多个磁盘(Disk),其中,当NameNode节点出现故障时,切换至NameNode备用节点,从而通过设备NameNode备用节点可以保证该Hadoop集群的正常运行,此外,所有文件的读写操作都要通过NameNode节点进行分配,再由客户端将文件或数据分散给对应的DataNode节点,此外,将该监控模块设置在NameNode节点前,可以起到监控所有主体对文件或数据的访问请求。
根据本发明的另一方面,提供了一种基于Hadoop集群的控制系统。
该基于Hadoop集群的控制系统包括:
拦截模块41,用于拦截客户端的访问请求;
发送监控模块42,用于根据所述客户端的访问请求,获取所述客户端的访问记录,并将所述访问请求转发至所述Hadoop集群,以及对所述Hadoop集群进行监控。
根据本发明的一个实施例,进一步包括:验证模块(未示出),用于对所述访问请求的合法性进行验证;第一发送模块(未示出),用于在所述访问请求合法的情况下,将所述访问请求转发至Hadoop集群;第二发送模块(未示出),用于在所述访问请求不合法的情况下,将所述访问请求发送至系统管理员,并进行报警。
根据本发明的一个实施例,所述访问记录包括:访问时间、客户端IP地址、访问结果、访问行为、访问主体、访问客体。
根据本发明的一个实施例,进一步包括:第三发送模块(未示出),用于所述客户端通过HTTP协议发送所述访问请求。
根据本发明的一个实施例,进一步包括第四发送模块(未示出),用于所述客户端通过RPC协议发送所述访问请求。
本发明通过监控模块接收访问请求,并且对访问请求进行分析,以获得访问记录,从而实现了对主客体的访问行为的监控,同时,在不影响Hadoop的运行效率的情况下,对该Hadoop集群进行访问监控、访问控制、日志审计,从而保证了Hadoop的安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。