本发明涉及一种Ambari平台技术领域,具体地说是一种基于Ambari删除已安装服务的方法。
背景技术:
虽然大数据越来越流行,但其学习的门槛却一直阻碍着很多的初学者,而且各个产品之间的集成和维护也显得比较困难。不管是 Hadoop V1 或者 V2 的安装,又或者 Spark/YARN 等的集成,都不是几行简单的命令,而是要关联到许多的配置。Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari目前已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等。
Ambari 作为一个开放的平台,,可以让用户很方便的维护管理集群,它能够快速搭建、管理Hadoop集群,这是一件很方便开发者的事情,让集群管理变的简单规范。但是开发者可能在部署测试服务安装的时候,可能遇到服务安装失败、测试多次重复安装等情景,目前Ambari并不提供服务的删除操作,即Ambari安装服务不提供容错性,已安装的服务无论是否安装成功,都只能保持服务现状,在现状基础上进行修改调整。对于想要删除的服务Ambari不提供界面入口。因此,有类似脚本文件来删除固定服务,在开发过程中是很有必要的。
技术实现要素:
本发明的技术任务是提供一种基于Ambari删除已安装服务的方法,来解决如何快速删除已安装服务的问题。
本发明的技术任务是按以下方式实现的,
基于Ambari删除已安装服务的方法,步骤如下:
(1)、查看所删服务配置文件,明确其服务名称及包含组件名称;
(2)、通过Find命令查找所删服务涉及的文件与文件夹,目前主要报错以下几类:服务安装目录、服务日志目录、用户文件目录及用户,以及某些配置文件和yum安装包;
(3)、创建可执行脚本文件,脚本文件包括以下四部分:
(3.1)、集群环境变量的脚本文件;
(3.2)、调用API接口停止所删服务的脚本文件;
(3.3)、调用API接口删除服务的数据库注册信息的脚本文件;
(3.4)、删除服务的所安装节点目录及文件的脚本文件;删除服务中某个组件的脚本文件;
(4)、在ambari-server节点运行脚本文件,运行成功后,在服务安装的节点上执行脚本文件中的操作;
(5)、重启ambari-server或刷新页面,观察所删服务是否已删除成功。删除成功后继续其他操作即可。
步骤(1)中服务名称及包含组件名称在源码中stacks下对应服务metainfo.xml中查找。
步骤(3.2)中的脚本文件,能够查找到步骤(1)中的确定的服务名称,调用API接口停止此服务。
步骤(3.3)中的脚本文件,能够查找到步骤(1)中的确定的服务名称,调用API接口删除此服务的数据库注册信息。
步骤(3.4)中的脚本文件,能够查找到步骤(2)中的确定的所删服务涉及的文件与文件夹,删除服务的所安装节点目录及文件。
步骤(3.4)中的脚本文件,能够删除服务中某个组件时,在服务停止后,调用组件删除的API进行删除。
步骤(4)之后,Ambari-server节点运行脚本文件,删除成功后,即删除服务成功;创建该服务时新建的文件与文件夹需要手动删除,在对应的节点删除后才能保证再次安装该服务时不会存在文件冲突。
本发明的基于Ambari删除已安装服务的方法具有以下优点:Ambari在安装服务时,通过向数据库中注册服务信息来记录所有的服务操作。通过调用停止与删除服务的API,可以便捷的删除数据库中所删服务的所有数据,同时,在服务所部署的节点上,已创建的文件与文件夹并不会通过API来删除,因此需要手动检测所涉及的目录并在脚本中予以删除。通过这几个步骤下来,Ambari即完成了删除服务的操作。通过这种删除方式,在开发者开发过程中,可以方便的对服务进行修改、测试与集成,而不影响整个集群的使用。当操作失误需要删除某个服务时就可以参照本发明进行快速删除,并保证后续的Ambari操作不受影响;因而,具有很好的推广使用价值。
具体实施方式
参照具体实施例对本发明的基于Ambari删除已安装服务的方法作以下详细地说明。
实施例:
本发明的基于Ambari删除已安装服务的方法,步骤如下:
(1)、查看所删服务配置文件,明确其服务名称及包含组件名称;服务名称及包含组件名称在源码中stacks下对应服务metainfo.xml中查找;
(2)、通过Find命令查找所删服务涉及的文件与文件夹,目前主要报错以下几类:服务安装目录、服务日志目录、用户文件目录及用户,以及某些配置文件和yum安装包;
(3)、创建可执行脚本文件,脚本文件包括以下四部分:
(3.1)、集群环境变量的脚本文件;
(3.2)、调用API接口停止所删服务的脚本文件;此脚本文件能够查找到步骤(1)中的确定的服务名称,调用API接口停止此服务;
(3.3)、调用API接口删除服务的数据库注册信息的脚本文件;此脚本文件能够查找到步骤(1)中的确定的服务名称,调用API接口删除此服务的数据库注册信息;
(3.4)、删除服务的所安装节点目录及文件的脚本文件,此脚本文件能够查找到步骤(2)中的确定的所删服务涉及的文件与文件夹,删除服务的所安装节点目录及文件;删除服务中某个组件的脚本文件,此脚本文件能够删除服务中某个组件时,在服务停止后,调用组件删除的API进行删除;
(4)、在ambari-server节点运行脚本文件,运行成功后,在服务安装的节点上执行脚本文件中的操作;Ambari-server节点运行脚本文件,删除成功后,即删除服务成功;创建该服务时新建的文件与文件夹需要手动删除,在对应的节点删除后才能保证再次安装该服务时不会存在文件冲突;
(5)、重启ambari-server或刷新页面,观察所删服务是否已删除成功。删除成功后继续其他操作即可。
一、删除Solr服务脚本文件,如下:
export SERVICE=SOLR
export PASSWORD=admin
export AMBARI_HOST=10.110.17.183
export CLUSTER=DCenter
curl -u admin:$PASSWORD -i -H 'X-Requested-By: ambari' -X PUT -d '{"RequestInfo": {"context" :"Stop SOLR via REST"}, "Body": {"ServiceInfo": {"state": "INSTALLED"}}}' http://$AMBARI_HOST:8080/api/v1/clusters/$CLUSTER/services/SOLR
curl -u admin:$PASSWORD -i -H 'X-Requested-By: ambari' -X DELETE http://$AMBARI_HOST:8080/api/v1/clusters/$CLUSTER/services/$SERVICE
curl -u admin:$PASSWORD -i -H 'X-Requested-By: ambari' -X DELETE http://$AMBARI_HOST:8080/api/v1/clusters/$CLUSTER/services/$SERVICE
sudo -u hdfs hadoop fs -rm -r /user/solr
rm -rf /opt/solr
rm -rf /var/run/solr
rm -rf /var/log/solr*
rm -rf /etc/init.d/solr
rm -rf /opt/solr-5.3.1
userdel -r solr
该脚本文件首先在ambari-server节点运行删除数据库的solr服务信息。之后可在安装solr服务的节点运行删除文件与文件夹部分。同时,对于不同服务有不同的删除目录与文件,务必需要事先检测防止误删。
二、删除Journalnode组件步骤:
A、停止HDFS服务,可界面操作;
B、 停止Journalnode进程,可界面操作(包含在上一步了)
C、调用restAPI删除journalnode组件:
curl -u admin:admin -H "X-Requested-By: ambari" -X DELETE http://10.110.17.183:8080/api/v1/clusters/DCenter/services/HDFS/components/JOURNALNODE
curl -u admin:admin -H "X-Requested-By: ambari" -i -X POST http://10.110.17.183:8080/api/v1/clusters/DCenter/services/HDFS/components/JOURNALNODE
curl -u admin:admin -H "X-Requested-By: ambari" -i -X POST -d '{"host_components" : [{"HostRoles":{"component_name":"JOURNALNODE"}}] }' http://10.110.17.183:8080/api/v1/clusters/DCenter/hosts?Hosts/host_name=master3.bigdata
D、可重新安装已删除Journalnode组件
curl -u admin:admin -H "X-Requested-By: ambari" -i -X PUT -d '{"ServiceInfo": {"state" : "INSTALLED"}}' http://10.110.17.183:8080/api/v1/clusters/DCenter/services/HDFS
E、通过界面修改某些必要的配置文件。
F、 重启HDFS服务,显示服务正常即可。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。