一种自适应硬件配置的大数据集群部署方法

文档序号:10597245阅读:324来源:国知局
一种自适应硬件配置的大数据集群部署方法
【专利摘要】本发明公开了一种自适应硬件配置的大数据集群部署方法,通过puppet?agent向puppet?master发出同步请求,认证通过后探测服务器硬件配置信息并发送到master;master生成伪代码发送给agent;agent执行属于自己节点的伪代码内容,完成集群的自动化部署,结束本次同步。本发明实现大数据环境的自动化批量部署,从硬件信息探测获取到软件安装和配置文件生成都是编程实现,无需手动安装软件和更改配置文件的繁琐工作,是一种自适应硬件配置的大数据集群自动化部署方法。该方法减轻了大数据集群搭建部署的工作量,节约了集群部署的时间成本,并且方便后续的统一管理和运维。
【专利说明】
一种自适应硬件配置的大数据集群部署方法
技术领域
[0001 ]本发明涉及一种自适应硬件配置的大数据集群部署方法。
【背景技术】
[0002] 大数据集群包括了数据批处理和实时流式处理框架,还包括认证和权限控制等系 统,涉及的组件繁多,例如hadoop、hive、kafka、storm、spark、zooke eper、kerberos、 sentry等等,并且不同组件之间可能存在相互依赖关系。大数据集群的部署主要包括了这 些组件的安装和依赖关系的配置。
[0003] Puppet是一种集群配置管理工具。该工具一般采用主机-代理架构,使用其内置的 puppet建模语言对集群资源,包括用户账号、特定文件和文件夹、软件包和服务等的最终状 态以及依赖关系进行描述,以完成自动化集群部署和配置。
[0004] 由于分布式集群中服务器担任的角色不一,不同集群使用的服务器品牌也不尽相 同,所以在集群部署安装时必须考虑到硬件配置,如cpu核心数、内存、文件系统划分等。传 统的人工手动部署方法,需要反复地进行人工修改,效率低且易出错。

【发明内容】

[0005] 为了克服现有技术的缺点,本发明提供了一种自适应硬件配置的大数据集群部署 方法。
[0006] 本发明所采用的技术方案是:一种自适应硬件配置的大数据集群部署方法,包括 如下步骤:
[0007]步骤一、puppet_agent 向puppet-master发出同步请求;
[0008]步骤二、puppet-master 对puppet-agent 进行认证;
[0009] 步骤三、puppet-agent探测服务器硬件配置信息并发送到puppet-master;
[0010] 步骤四、puppet-master结合puppet-agent发送的信息解析manifest中对应的节 点的配置内容,生成伪代码发送给puppet-agent;
[0011]步骤五、puppet-agent接收伪代码,各个puppet-agent执行属于自己节点的伪代 码内容,完成集群的自动化部署,结束本次同步。
[0012] 与现有技术相比,本发明的积极效果是:本发明实现大数据环境的自动化批量部 署,从硬件信息探测获取到软件安装和配置文件生成都是编程实现,无需手动安装软件和 更改配置文件的繁琐工作,是一种自适应硬件配置的大数据集群自动化部署方法。该方法 减轻了大数据集群搭建部署的工作量,节约了集群部署的时间成本,并且方便后续的统一 管理和运维。
【附图说明】
[0013] 本发明将通过例子并参照附图的方式说明,其中:
[0014] 图1为一种自适应硬件配置的大数据集群部署方法流程框图;
[0015]图2为一种在puppet中自定义fact变量获取硬件配置的方法流程框图。
【具体实施方式】
[0016] -种自适应硬件配置的大数据集群部署方法,如图1所示,包括如下步骤:
[0017] 步骤一、puppet_agent 向puppet-master发出同步请求;
[0018] 步骤二、puppet-master 对puppet-agent 进行认证:
[0019] 如果是第一次请求同步,需要puppet-master对puppet-agent进行认证。本实施例 采用自动注册认证方式,在发出同步请求后自动完成认证。自动注册方式需要删除puppet 的mas ter和agent端的已有证书,然后修改puppet-mas ter中puppet的配置文件 autosign, conf,内容改为:*。这样在同步请求发出后,可自动完成认证。
[0020] 步骤三、puppet-agent探测服务器硬件配置信息并发送到puppet-master:
[0021 ] puppet-agent调用facter,facter探测出主机的一些硬件信息,并保存为fact变 量,然后将这些信息发送给puppet-master。其中包括在puppet-master端自定义的fact变 量,以hadoop模块为例,定义f act变量的文件hadoop ? rb在同步前保存在puppet-master端, 该文件会在puppet-agent调用facter探测硬件前由mas ter端传送到agent端的puppet目 录:/var/lib/puppet/lib/facter/中。该步骤的成功执行需依赖一种在puppet中自定义 fact变量获取硬件配置的方法,该方法的流程如图2所示,具体步骤如下:
[0022] 1)在puppet 的 hadoop 模块中创建? rb 文件,位置为/etc/puppet/modules/hadoop/ 1 ib/facter/hadoop . rb,利用facter工具获取服务器硬件配置信息,存为变量。以 hadoop .rb文件中定义hadoop_hdfs_data_dirs变量为例,以下内容定义了hadoop_hdfs_ data_dirs变量,如果文件系统中存在/data[0_9]*格式的目录,那么hadoop_hdf s_data_ dirs 的值为/data [0-9] */hadoop/dfs/data,否则hadoop_hdfs_data_dirs 的值为/data/ hadoop/dfs/data 〇
[0024] 该实施例中,集群namenode节点hadoop_hdfs_data_dirs的值为/data/hadoop/ dfs/data,所有 datanode 节点 hadoop_hdfs_data_dirs 的值为/data9/hadoop/dfs/data,/ data4/hadoop/df s/data,/data8/hadoop/df s/data,/datalO/hadoop/df s/data,/data7/ hadoop/df s/data,/data3/hadoop/df s/data,/data2/hadoop/df s/data,/data5/hadoop/ dfs/data,/datal/hadoop/dfs/data,/data6/hadoop/dfs/data。可以看出,通过自定义 fact变量,达到了自适应服务器硬件配置的效果。
[0025] 2)在hadoop模块中使用上述自定义变量。定义变量hadoop_hdfs_data_dirs的目 的是为了hadoop的配置文件hdf s-site ? xml中df s ? datanode ? data ? dir的值能够根据硬件 配置动态生成,于是需要把定义的变量用在该配置文件的模板文件hdfs-site. xml. erb中, 位置为/61:(3/卩即卩61:/1]10(111168/11&(1〇0卩八6111卩1&七68/11(11^-8;^6.叉1111.61'13。该模板文件中使用 变量hadoop_hdf s_data_dirs的位置如下所示。
[0027] 3)在集群所有节点中的puppet .conf中添加 pluginsync,以支持以上自定义fact 变量方式。puppet-mas ter端,在puppet ? conf 的[main]中添加 :pluginsyn c = true ;在 puppet-agent 端,在puppet ? conf 的[agent ]中添加 :plug insync = true 〇
[0028] 步骤四、puppet-master结合puppet-agent发送的信息解析manifest中对应的节 点的配置内容,生成伪代码(catalog)发送给puppet-agent:
[0029] puppet-master根据puppet-agent的主机名找到manifest中对应的节点配置,并 对已经通过puppet建模语言编程实现的节点配置内容进行解析。同时,把fact变量替换成 puppet-agent传过来的实际值。解析结果为puppet内置的伪代码(catalog),然后把伪代码 发送到相应的puppet-agent。
[0030]步骤五、puppet-agent接收伪代码,各个puppet-agent执行属于自己节点的伪代 码内容,同时进行配置文件传输,完成集群的自动化部署。结束本次同步。
[0031 ] puppet-agent在执行时判断有没有File文件,如果有,贝lj向puppet-master请求, 完成文件的传输。针对不同的puppet-agent,在puppet-mas ter端的模板文件11(^8-site ? xml ? erb会根据相应puppet-agent探测并传送过来的fact变量值生成配置文件11(11^-site. xml,并传送到相应puppet-agent的指定位置。执行完毕后结束同步,所有puppet-agent 同步结束后 ,即 完成了 大数据集群的 部署。
[0032]以上步骤中puppet-master和所有puppet-agent通信都采用ssl连接,所以首次请 求连接时需要进行认证,以确保后续传输数据的安全。
[0033]本发明主要使用puppet和facter编程实现了大数据集群部署,无需根据硬件配置 进行人工手动修改,达到了自适应硬件配置的目的,节约了工程实施的人力和时间成本。需 要说明的是,上述实施例中只是以hadoop模块为例来说明本发明,实际工程部署时,还涉及 其他模块,如hi ve、hbase、storm等,综合这些模块安装和依赖配置,即能完成大数据集群的 搭建部署。
【主权项】
1. 一种自适应硬件配置的大数据集群部署方法,其特征在于:包括如下步骤: 步骤一、puppet-agent 向 puppet-master发出同步请求; 步骤二、puppet-master 对puppet-agent 进行认证; 步骤三、puppet-agent探测服务器硬件配置信息并发送到puppet-master; 步骤四、puppet-master结合puppet-agent发送的信息解析manifest中对应的节点的 配置内容,生成伪代码发送给puppet-agent; 步骤五、puppet-agent接收伪代码,各个puppet-agent执行属于自己节点的伪代码内 容,完成集群的自动化部署,结束本次同步。2. 根据权利要求1所述的一种自适应硬件配置的大数据集群部署方法,其特征在于:所 述认证为自动注册认证方式,自动注册时删除puppet的master和agent端的已有证书,然后 修改puppet-master中puppet的配置文件autosign· conf,内容改为 "*"。3. 根据权利要求1所述的一种自适应硬件配置的大数据集群部署方法,其特征在于: puppet-agent通过调用facter探测服务器硬件配置信息,然后将硬件配置信息保存为fact 变量。4. 根据权利要求3所述的一种自适应硬件配置的大数据集群部署方法,其特征在于:所 述fact变量的自定义方法包括如下步骤: 1) 在口卯口61:的113(1〇(^模块中创建.1'13文件,位置为/61:(3/^1^。61:/1110(11116 8/113(1〇0卩/ I ib/f acter/hadoop. rb,利用f acter工具获取服务器硬件配置信息,存为变量; 2) 在hadoop模块中使用上述变量; 3) 在集群所有节点中的puppet · conf中添加 pluginsync。5. 根据权利要求4所述的一种自适应硬件配置的大数据集群部署方法,其特征在于:在 集群所有节点中的puppet · conf中添加 plug insync的方法为:对于puppet-master端,在 puppet · conf 的[main]中添加 "pluginsync = true" ;对于puppet-agent端,在puppet · conf 的[agent]中添加 "pluginsync = true"。6. 根据权利要求1所述的一种自适应硬件配置的大数据集群部署方法,其特征在于:步 骤四所述的puppet-master结合puppet-agent发送的信息进行解析的方法为:puppet-master根据puppet-agent的主机名找到manifest中对应的节点配置,并对已经通过puppet 建模语言编程实现的节点配置内容进行解析;同时,把fact变量替换成puppet-agent传过 来的实际值。7. 根据权利要求1所述的一种自适应硬件配置的大数据集群部署方法,其特征在于:步 骤五所述puppet-agent执行属于自己节点的伪代码内容时判断有没有File文件,如果有, 则向puppet-mas ter请求,完成文件的传输。8. 根据权利要求1所述的一种自适应硬件配置的大数据集群部署方法,其特征在于: puppet-master和所有puppet-agent通信均采用ss 1连接。
【文档编号】H04L29/08GK105959363SQ201610264394
【公开日】2016年9月21日
【申请日】2016年4月26日
【发明人】唐明, 常梦楠, 任红雷
【申请人】中国电子科技网络信息安全有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1