本發(fā)明涉及一種Ambari平臺技術(shù)領(lǐng)域,具體地說是一種基于Ambari刪除已安裝服務(wù)的方法。
背景技術(shù):
雖然大數(shù)據(jù)越來越流行,但其學(xué)習(xí)的門檻卻一直阻礙著很多的初學(xué)者,而且各個產(chǎn)品之間的集成和維護也顯得比較困難。不管是 Hadoop V1 或者 V2 的安裝,又或者 Spark/YARN 等的集成,都不是幾行簡單的命令,而是要關(guān)聯(lián)到許多的配置。Apache Ambari是一種基于Web的工具,支持Apache Hadoop集群的供應(yīng)、管理和監(jiān)控。Ambari目前已支持大多數(shù)Hadoop組件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等。
Ambari 作為一個開放的平臺,,可以讓用戶很方便的維護管理集群,它能夠快速搭建、管理Hadoop集群,這是一件很方便開發(fā)者的事情,讓集群管理變的簡單規(guī)范。但是開發(fā)者可能在部署測試服務(wù)安裝的時候,可能遇到服務(wù)安裝失敗、測試多次重復(fù)安裝等情景,目前Ambari并不提供服務(wù)的刪除操作,即Ambari安裝服務(wù)不提供容錯性,已安裝的服務(wù)無論是否安裝成功,都只能保持服務(wù)現(xiàn)狀,在現(xiàn)狀基礎(chǔ)上進行修改調(diào)整。對于想要刪除的服務(wù)Ambari不提供界面入口。因此,有類似腳本文件來刪除固定服務(wù),在開發(fā)過程中是很有必要的。
技術(shù)實現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是提供一種基于Ambari刪除已安裝服務(wù)的方法,來解決如何快速刪除已安裝服務(wù)的問題。
本發(fā)明的技術(shù)任務(wù)是按以下方式實現(xiàn)的,
基于Ambari刪除已安裝服務(wù)的方法,步驟如下:
(1)、查看所刪服務(wù)配置文件,明確其服務(wù)名稱及包含組件名稱;
(2)、通過Find命令查找所刪服務(wù)涉及的文件與文件夾,目前主要報錯以下幾類:服務(wù)安裝目錄、服務(wù)日志目錄、用戶文件目錄及用戶,以及某些配置文件和yum安裝包;
(3)、創(chuàng)建可執(zhí)行腳本文件,腳本文件包括以下四部分:
(3.1)、集群環(huán)境變量的腳本文件;
(3.2)、調(diào)用API接口停止所刪服務(wù)的腳本文件;
(3.3)、調(diào)用API接口刪除服務(wù)的數(shù)據(jù)庫注冊信息的腳本文件;
(3.4)、刪除服務(wù)的所安裝節(jié)點目錄及文件的腳本文件;刪除服務(wù)中某個組件的腳本文件;
(4)、在ambari-server節(jié)點運行腳本文件,運行成功后,在服務(wù)安裝的節(jié)點上執(zhí)行腳本文件中的操作;
(5)、重啟ambari-server或刷新頁面,觀察所刪服務(wù)是否已刪除成功。刪除成功后繼續(xù)其他操作即可。
步驟(1)中服務(wù)名稱及包含組件名稱在源碼中stacks下對應(yīng)服務(wù)metainfo.xml中查找。
步驟(3.2)中的腳本文件,能夠查找到步驟(1)中的確定的服務(wù)名稱,調(diào)用API接口停止此服務(wù)。
步驟(3.3)中的腳本文件,能夠查找到步驟(1)中的確定的服務(wù)名稱,調(diào)用API接口刪除此服務(wù)的數(shù)據(jù)庫注冊信息。
步驟(3.4)中的腳本文件,能夠查找到步驟(2)中的確定的所刪服務(wù)涉及的文件與文件夾,刪除服務(wù)的所安裝節(jié)點目錄及文件。
步驟(3.4)中的腳本文件,能夠刪除服務(wù)中某個組件時,在服務(wù)停止后,調(diào)用組件刪除的API進行刪除。
步驟(4)之后,Ambari-server節(jié)點運行腳本文件,刪除成功后,即刪除服務(wù)成功;創(chuàng)建該服務(wù)時新建的文件與文件夾需要手動刪除,在對應(yīng)的節(jié)點刪除后才能保證再次安裝該服務(wù)時不會存在文件沖突。
本發(fā)明的基于Ambari刪除已安裝服務(wù)的方法具有以下優(yōu)點:Ambari在安裝服務(wù)時,通過向數(shù)據(jù)庫中注冊服務(wù)信息來記錄所有的服務(wù)操作。通過調(diào)用停止與刪除服務(wù)的API,可以便捷的刪除數(shù)據(jù)庫中所刪服務(wù)的所有數(shù)據(jù),同時,在服務(wù)所部署的節(jié)點上,已創(chuàng)建的文件與文件夾并不會通過API來刪除,因此需要手動檢測所涉及的目錄并在腳本中予以刪除。通過這幾個步驟下來,Ambari即完成了刪除服務(wù)的操作。通過這種刪除方式,在開發(fā)者開發(fā)過程中,可以方便的對服務(wù)進行修改、測試與集成,而不影響整個集群的使用。當(dāng)操作失誤需要刪除某個服務(wù)時就可以參照本發(fā)明進行快速刪除,并保證后續(xù)的Ambari操作不受影響;因而,具有很好的推廣使用價值。
具體實施方式
參照具體實施例對本發(fā)明的基于Ambari刪除已安裝服務(wù)的方法作以下詳細地說明。
實施例:
本發(fā)明的基于Ambari刪除已安裝服務(wù)的方法,步驟如下:
(1)、查看所刪服務(wù)配置文件,明確其服務(wù)名稱及包含組件名稱;服務(wù)名稱及包含組件名稱在源碼中stacks下對應(yīng)服務(wù)metainfo.xml中查找;
(2)、通過Find命令查找所刪服務(wù)涉及的文件與文件夾,目前主要報錯以下幾類:服務(wù)安裝目錄、服務(wù)日志目錄、用戶文件目錄及用戶,以及某些配置文件和yum安裝包;
(3)、創(chuàng)建可執(zhí)行腳本文件,腳本文件包括以下四部分:
(3.1)、集群環(huán)境變量的腳本文件;
(3.2)、調(diào)用API接口停止所刪服務(wù)的腳本文件;此腳本文件能夠查找到步驟(1)中的確定的服務(wù)名稱,調(diào)用API接口停止此服務(wù);
(3.3)、調(diào)用API接口刪除服務(wù)的數(shù)據(jù)庫注冊信息的腳本文件;此腳本文件能夠查找到步驟(1)中的確定的服務(wù)名稱,調(diào)用API接口刪除此服務(wù)的數(shù)據(jù)庫注冊信息;
(3.4)、刪除服務(wù)的所安裝節(jié)點目錄及文件的腳本文件,此腳本文件能夠查找到步驟(2)中的確定的所刪服務(wù)涉及的文件與文件夾,刪除服務(wù)的所安裝節(jié)點目錄及文件;刪除服務(wù)中某個組件的腳本文件,此腳本文件能夠刪除服務(wù)中某個組件時,在服務(wù)停止后,調(diào)用組件刪除的API進行刪除;
(4)、在ambari-server節(jié)點運行腳本文件,運行成功后,在服務(wù)安裝的節(jié)點上執(zhí)行腳本文件中的操作;Ambari-server節(jié)點運行腳本文件,刪除成功后,即刪除服務(wù)成功;創(chuàng)建該服務(wù)時新建的文件與文件夾需要手動刪除,在對應(yīng)的節(jié)點刪除后才能保證再次安裝該服務(wù)時不會存在文件沖突;
(5)、重啟ambari-server或刷新頁面,觀察所刪服務(wù)是否已刪除成功。刪除成功后繼續(xù)其他操作即可。
一、刪除Solr服務(wù)腳本文件,如下:
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節(jié)點運行刪除數(shù)據(jù)庫的solr服務(wù)信息。之后可在安裝solr服務(wù)的節(jié)點運行刪除文件與文件夾部分。同時,對于不同服務(wù)有不同的刪除目錄與文件,務(wù)必需要事先檢測防止誤刪。
二、刪除Journalnode組件步驟:
A、停止HDFS服務(wù),可界面操作;
B、 停止Journalnode進程,可界面操作(包含在上一步了)
C、調(diào)用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服務(wù),顯示服務(wù)正常即可。
通過上面具體實施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的具體實施方式。在公開的實施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實現(xiàn)不同的技術(shù)方案。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。