HDInsight-fürtök kezelése az Apache Ambari REST API használatával
Megtudhatja, hogyan kezelheti és figyelheti az Apache Hadoop-fürtöket az Azure HDInsightban az Apache Ambari REST API használatával.
Mi az az Apache Ambari?
Az Apache Ambari leegyszerűsíti a Hadoop-fürtök kezelését és monitorozását azáltal, hogy a REST API-k által támogatott, könnyen használható webes felhasználói felületet biztosít. Az Ambari alapértelmezés szerint Linux-alapú HDInsight-fürtökkel érhető el.
Előfeltételek
Hadoop-fürt a HDInsighton. Lásd: A HDInsight használatának első lépései Linux rendszeren.
Bash az Ubuntu-on Windows 10. A cikkben szereplő példák a Bash-felületet használják Windows 10. A telepítési lépéseket a Windows 10 Linuxos Windows-alrendszer telepítési útmutatójában találja. Más Unix-rendszerhéjak is működni fognak. A példák néhány apró módosítással működhetnek a Windows parancssorán. Vagy használhatja a Windows PowerShell.
JQ, egy parancssori JSON-processzor. Lásd: https://stedolan.github.io/jq/.
Windows PowerShell. Vagy használhatja a Basht.
Alap egységes erőforrás-azonosító az Ambari REST API-hoz
A HDInsighton futó Ambari REST API alap egységes erőforrás-azonosítója (URI) a https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME
, ahol CLUSTERNAME
a fürt neve. Az URI-kban a fürtnevek megkülönböztetik a kis- és nagybetűket. Bár az URICLUSTERNAME.azurehdinsight.net
() teljes tartománynév (FQDN) részének fürtneve nem különbözteti meg a kis- és nagybetűket, az URI többi előfordulása megkülönbözteti a kis- és nagybetűket.
Hitelesítés
A HDInsighton futó Ambarihoz való csatlakozáshoz HTTPS szükséges. Használja a rendszergazdai fiók nevét (az alapértelmezett rendszergazda) és a fürt létrehozása során megadott jelszót.
Az Enterprise Security Package-fürtök esetében a admin
helyett használjon teljes felhasználónevet, például username@domain.onmicrosoft.com
: .
Példák
Beállítás (hitelesítő adatok megőrzése)
Őrizze meg a hitelesítő adatait, hogy ne kelljen újra megírni őket az egyes példákhoz. A fürt neve egy külön lépésben marad meg.
A. Bash
Szerkessze az alábbi szkriptet a tényleges jelszóra cserélve PASSWORD
. Ezután írja be a parancsot.
export password='PASSWORD'
B. PowerShell
$creds = Get-Credential -UserName "admin" -Message "Enter the HDInsight login"
A helyesen kisbetűs fürtnév azonosítása
A fürtnév tényleges burkolata eltérhet a várttól. Az itt ismertetett lépések a tényleges burkolatot mutatják be, majd egy változóban tárolják az összes későbbi példa esetében.
Szerkessze az alábbi szkripteket a fürt nevére való lecseréléséhez CLUSTERNAME
. Ezután írja be a parancsot. (A teljes tartománynév fürtneve nem különbözteti meg a kis- és nagybetűt.)
export clusterName=$(curl -u admin:$password -sS -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters" | jq -r '.items[].Clusters.cluster_name')
echo $clusterName
# Identify properly cased cluster name
$resp = Invoke-WebRequest -Uri "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters" `
-Credential $creds -UseBasicParsing
$clusterName = (ConvertFrom-Json $resp.Content).items.Clusters.cluster_name;
# Show cluster name
$clusterName
JSON-adatok elemzése
Az alábbi példa jq vagy ConvertFrom-Json használatával elemzi a JSON-válaszdokumentumot, és csak az health_report
eredményekből származó információkat jeleníti meg.
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName" \
| jq '.Clusters.health_report'
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName" `
-Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content
$respObj.Clusters.health_report
Fürtcsomópontok teljes tartománynevének lekérése
Előfordulhat, hogy ismernie kell egy fürtcsomópont teljes tartománynevét (FQDN). Az alábbi példák segítségével egyszerűen lekérheti a fürt különböző csomópontjai teljes tartománynevét:
Minden csomópont
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/hosts" \
| jq -r '.items[].Hosts.host_name'
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/hosts" `
-Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content
$respObj.items.Hosts.host_name
Átjárócsomópontok
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/HDFS/components/NAMENODE" \
| jq -r '.host_components[].HostRoles.host_name'
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/HDFS/components/NAMENODE" `
-Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content
$respObj.host_components.HostRoles.host_name
Munkavégző csomópontok
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/HDFS/components/DATANODE" \
| jq -r '.host_components[].HostRoles.host_name'
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/HDFS/components/DATANODE" `
-Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content
$respObj.host_components.HostRoles.host_name
Zookeeper-csomópontok
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/ZOOKEEPER/components/ZOOKEEPER_SERVER" \
| jq -r ".host_components[].HostRoles.host_name"
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/ZOOKEEPER/components/ZOOKEEPER_SERVER" `
-Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content
$respObj.host_components.HostRoles.host_name
Fürtcsomópontok belső IP-címének lekérése
Az ebben a szakaszban szereplő példák által visszaadott IP-címek nem érhetők el közvetlenül az interneten keresztül. Csak a HDInsight-fürtöt tartalmazó Azure-Virtual Network érhetők el.
A HDInsight és a virtuális hálózatok használatával kapcsolatos további információkért lásd: Virtuális hálózat tervezése a HDInsighthoz.
Az IP-cím megkereséséhez ismernie kell a fürtcsomópontok belső teljes tartománynevét (FQDN). Miután megkapta az FQDN-t, lekérheti a gazdagép IP-címét. Az alábbi példák elsőként kérdezik le az Ambarit az összes gazdacsomópont teljes tartománynevéhez. Ezután lekérdezi az Ambarit az egyes gazdagépek IP-címéről.
for HOSTNAME in $(curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/hosts" | jq -r '.items[].Hosts.host_name')
do
IP=$(curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/hosts/$HOSTNAME" | jq -r '.Hosts.ip')
echo "$HOSTNAME <--> $IP"
done
$uri = "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/hosts"
$resp = Invoke-WebRequest -Uri $uri -Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content
foreach($item in $respObj.items) {
$hostName = [string]$item.Hosts.host_name
$hostInfoResp = Invoke-WebRequest -Uri "$uri/$hostName" `
-Credential $creds -UseBasicParsing
$hostInfoObj = ConvertFrom-Json $hostInfoResp
$hostIp = $hostInfoObj.Hosts.ip
"$hostName <--> $hostIp"
}
Az alapértelmezett tároló lekérése
A HDInsight-fürtöknek alapértelmezett tárolóként Azure Storage-fiókot vagy Data Lake Storage kell használniuk. Az Ambari használatával lekérheti ezeket az információkat a fürt létrehozása után. Ha például adatokat szeretne olvasni/írni a HDInsighton kívüli tárolóba.
Az alábbi példák lekérik az alapértelmezett tárolókonfigurációt a fürtből:
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations/service_config_versions?service_name=HDFS&service_config_version=1" \
| jq -r '.items[].configurations[].properties["fs.defaultFS"] | select(. != null)'
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations/service_config_versions?service_name=HDFS&service_config_version=1" `
-Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content
$respObj.items.configurations.properties.'fs.defaultFS'
Fontos
Ezek a példák az adatokat tartalmazó kiszolgálóra (service_config_version=1
) alkalmazott első konfigurációt adják vissza. Ha a fürt létrehozása után módosított értéket kér le, előfordulhat, hogy fel kell sorolnia a konfigurációs verziókat, és le kell kérnie a legújabbat.
A visszatérési érték az alábbi példák egyikéhez hasonló:
wasbs://CONTAINER@ACCOUNTNAME.blob.core.windows.net
– Ez az érték azt jelzi, hogy a fürt egy Azure Storage-fiókot használ az alapértelmezett tároláshoz. AzACCOUNTNAME
érték a tárfiók neve. ACONTAINER
rész a tárfiókban található blobtároló neve. A tároló a fürt HDFS-kompatibilis tárolójának gyökere.abfs://CONTAINER@ACCOUNTNAME.dfs.core.windows.net
– Ez az érték azt jelzi, hogy a fürt Azure Data Lake Storage Gen2 használ az alapértelmezett tároláshoz. AACCOUNTNAME
ésCONTAINER
az értékek jelentése megegyezik a korábban említett Azure Storage jelentésével.adl://home
– Ez az érték azt jelzi, hogy a fürt Azure Data Lake Storage Gen1-et használja az alapértelmezett tároláshoz.A Data Lake Storage fiók nevének megkereséséhez használja az alábbi példákat:
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations/service_config_versions?service_name=HDFS&service_config_version=1" \ | jq -r '.items[].configurations[].properties["dfs.adls.home.hostname"] | select(. != null)'
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations/service_config_versions?service_name=HDFS&service_config_version=1" ` -Credential $creds -UseBasicParsing $respObj = ConvertFrom-Json $resp.Content $respObj.items.configurations.properties.'dfs.adls.home.hostname'
A visszaadott érték hasonló a következőhöz:
ACCOUNTNAME.azuredatalakestore.net
, aholACCOUNTNAME
a Data Lake Storage fiók neve.A fürt tárolóját tartalmazó Data Lake Storage könyvtárának megkereséséhez használja az alábbi példákat:
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations/service_config_versions?service_name=HDFS&service_config_version=1" \ | jq -r '.items[].configurations[].properties["dfs.adls.home.mountpoint"] | select(. != null)'
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations/service_config_versions?service_name=HDFS&service_config_version=1" ` -Credential $creds -UseBasicParsing $respObj = ConvertFrom-Json $resp.Content $respObj.items.configurations.properties.'dfs.adls.home.mountpoint'
A visszatérési érték a következőhöz hasonló:
/clusters/CLUSTERNAME/
. Ez az érték a Data Lake Storage fiókban található elérési út. Ez az elérési út a fürt HDFS-kompatibilis fájlrendszerének gyökere.
Megjegyzés
Az Azure PowerShell által biztosított Get-AzHDInsightCluster parancsmag a fürt tárolási adatait is visszaadja.
Az összes konfiguráció lekérése
Kérje le a fürthöz elérhető konfigurációkat.
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName?fields=Clusters/desired_configs"
$respObj = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName`?fields=Clusters/desired_configs" `
-Credential $creds -UseBasicParsing
$respObj.Content
Ez a példa egy JSON-dokumentumot ad vissza, amely a telepített összetevők aktuális konfigurációját tartalmazza. Tekintse meg a címke értékét. Az alábbi példa egy Részlet a Spark-fürttípusból visszaadott adatokból.
"jupyter-site" : {
"tag" : "INITIAL",
"version" : 1
},
"livy2-client-conf" : {
"tag" : "INITIAL",
"version" : 1
},
"livy2-conf" : {
"tag" : "INITIAL",
"version" : 1
},
Adott összetevő konfigurációjának lekérése
Kérje le a kívánt összetevő konfigurációját. A következő példában cserélje le a elemet INITIAL
az előző kérésből visszaadott címkeértékre.
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations?type=livy2-conf&tag=INITIAL"
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations?type=livy2-conf&tag=INITIAL" `
-Credential $creds -UseBasicParsing
$resp.Content
Ez a példa egy JSON-dokumentumot ad vissza, amely az összetevő aktuális konfigurációját livy2-conf
tartalmazza.
Konfiguráció frissítése
Hozza létre
newconfig.json
a elemet.
Módosítsa, majd írja be az alábbi parancsokat:Cserélje le a elemet
livy2-conf
az új összetevőre.Cserélje le a elemet
INITIAL
az összes konfiguráció lekérése mezőből lekért tényleges értékretag
.A. Bash
curl -u admin:$password -sS -G "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations?type=livy2-conf&tag=INITIAL" \ | jq --arg newtag $(echo version$(date +%s%N)) '.items[] | del(.href, .version, .Config) | .tag |= $newtag | {"Clusters": {"desired_config": .}}' > newconfig.json
B. PowerShell
A PowerShell-szkript jq-t használ. SzerkesszeC:\HD\jq\jq-win64
az alábbiakat, hogy tükrözze a jq tényleges elérési útját és verzióját.$epoch = Get-Date -Year 1970 -Month 1 -Day 1 -Hour 0 -Minute 0 -Second 0 $now = Get-Date $unixTimeStamp = [math]::truncate($now.ToUniversalTime().Subtract($epoch).TotalMilliSeconds) $resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations?type=livy2-conf&tag=INITIAL" ` -Credential $creds -UseBasicParsing $resp.Content | C:\HD\jq\jq-win64 --arg newtag "version$unixTimeStamp" '.items[] | del(.href, .version, .Config) | .tag |= $newtag | {"Clusters": {"desired_config": .}}' > newconfig.json
A Jq használatával a HDInsightból lekért adatok új konfigurációs sablont alakítanak át. Ezek a példák a következő műveleteket hajtják végre:
Létrehoz egy egyedi értéket, amely tartalmazza a "version" sztringet és a dátumot, amely a fájlban
newtag
van tárolva.Létrehoz egy gyökérdokumentumot az új konfigurációhoz.
Lekéri a
.items[]
tömb tartalmát, és hozzáadja a desired_config elemhez.Törli a
href
,version
ésConfig
elemeket, mivel ezekre az elemekre nincs szükség az új konfiguráció elküldéséhez.Hozzáad egy
tag
értéket tartalmazóversion#################
elemet. A numerikus rész az aktuális dátumon alapul. Minden konfigurációnak egyedi címkével kell rendelkeznie.Végül az adatok a dokumentumba lesznek
newconfig.json
mentve. A dokumentumstruktúra a következő példához hasonlóan jelenik meg:{ "Clusters": { "desired_config": { "tag": "version1552064778014", "type": "livy2-conf", "properties": { "livy.environment": "production", "livy.impersonation.enabled": "true", "livy.repl.enableHiveContext": "true", "livy.server.csrf_protection.enabled": "true", .... }, }, } }
Szerkessze a parancsot
newconfig.json
.
Nyissa meg anewconfig.json
dokumentumot, és módosítsa/adja hozzá az objektum értékeitproperties
. Az alábbi példa a értékét értékről"true"
értékre"false"
módosítja"livy.server.csrf_protection.enabled"
."livy.server.csrf_protection.enabled": "false",
Ha végzett a módosításokkal, mentse a fájlt.
Küldje el
newconfig.json
a elemet.
Az alábbi parancsokkal küldje el a frissített konfigurációt az Ambarinak.curl -u admin:$password -sS -H "X-Requested-By: ambari" -X PUT -d @newconfig.json "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName"
$newConfig = Get-Content .\newconfig.json $resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName" ` -Credential $creds -UseBasicParsing ` -Method PUT ` -Headers @{"X-Requested-By" = "ambari"} ` -Body $newConfig $resp.Content
Ezek a parancsok új konfigurációként küldik el a newconfig.json fájl tartalmát a fürtnek. A kérelem egy JSON-dokumentumot ad vissza. A dokumentum versionTag elemének meg kell egyeznie a beküldött verzióval, és a konfigurációs objektum tartalmazza a kért konfigurációs módosításokat.
Szolgáltatásösszetevő újraindítása
Ezen a ponton az Ambari webes felhasználói felülete azt jelzi, hogy az új konfiguráció életbe lépése előtt újra kell indítani a Spark szolgáltatást. A szolgáltatás újraindításához kövesse az alábbi lépéseket.
A Spark2 szolgáltatás karbantartási módjának engedélyezéséhez használja az alábbiakat:
curl -u admin:$password -sS -H "X-Requested-By: ambari" \ -X PUT -d '{"RequestInfo": {"context": "turning on maintenance mode for SPARK2"},"Body": {"ServiceInfo": {"maintenance_state":"ON"}}}' \ "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/SPARK2"
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/SPARK2" ` -Credential $creds -UseBasicParsing ` -Method PUT ` -Headers @{"X-Requested-By" = "ambari"} ` -Body '{"RequestInfo": {"context": "turning on maintenance mode for SPARK2"},"Body": {"ServiceInfo": {"maintenance_state":"ON"}}}'
Karbantartási mód ellenőrzése
Ezek a parancsok egy JSON-dokumentumot küldenek a karbantartási módot bekapcsoló kiszolgálónak. A következő kéréssel ellenőrizheti, hogy a szolgáltatás karbantartási módban van-e:
curl -u admin:$password -sS -H "X-Requested-By: ambari" \ "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/SPARK2" \ | jq .ServiceInfo.maintenance_state
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/SPARK2" ` -Credential $creds -UseBasicParsing $respObj = ConvertFrom-Json $resp.Content $respObj.ServiceInfo.maintenance_state
A visszatérési érték a következő:
ON
.Ezután a következő lépésben kapcsolja ki a Spark2 szolgáltatást:
curl -u admin:$password -sS -H "X-Requested-By: ambari" \ -X PUT -d '{"RequestInfo":{"context":"_PARSE_.STOP.SPARK2","operation_level":{"level":"SERVICE","cluster_name":"CLUSTERNAME","service_name":"SPARK"}},"Body":{"ServiceInfo":{"state":"INSTALLED"}}}' \ "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/SPARK2"
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/SPARK2" ` -Credential $creds -UseBasicParsing ` -Method PUT ` -Headers @{"X-Requested-By" = "ambari"} ` -Body '{"RequestInfo":{"context":"_PARSE_.STOP.SPARK2","operation_level":{"level":"SERVICE","cluster_name":"CLUSTERNAME","service_name":"SPARK"}},"Body":{"ServiceInfo":{"state":"INSTALLED"}}}' $resp.Content
A válasz a következő példához hasonló:
{ "href" : "http://10.0.0.18:8080/api/v1/clusters/CLUSTERNAME/requests/29", "Requests" : { "id" : 29, "status" : "Accepted" } }
Fontos
Az
href
URI által visszaadott érték a fürtcsomópont belső IP-címét használja. Ha a fürtön kívülről szeretné használni, cserélje le a10.0.0.18:8080
részt a fürt teljes tartománynevére.Ellenőrizze a kérést.
Szerkessze az alábbi parancsot az előző lépésben visszaadottid
tényleges értékre cserélve29
. A következő parancsok lekérik a kérés állapotát:curl -u admin:$password -sS -H "X-Requested-By: ambari" \ "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/requests/29" \ | jq .Requests.request_status
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/requests/29" ` -Credential $creds -UseBasicParsing $respObj = ConvertFrom-Json $resp.Content $respObj.Requests.request_status
A válasz
COMPLETED
azt jelzi, hogy a kérés befejeződött.Miután az előző kérés befejeződött, az alábbi lépésekkel indítsa el a Spark2 szolgáltatást.
curl -u admin:$password -sS -H "X-Requested-By: ambari" \ -X PUT -d '{"RequestInfo":{"context":"_PARSE_.START.SPARK2","operation_level":{"level":"SERVICE","cluster_name":"CLUSTERNAME","service_name":"SPARK"}},"Body":{"ServiceInfo":{"state":"STARTED"}}}' \ "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/SPARK2"
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/SPARK2" ` -Credential $creds -UseBasicParsing ` -Method PUT ` -Headers @{"X-Requested-By" = "ambari"} ` -Body '{"RequestInfo":{"context":"_PARSE_.START.SPARK2","operation_level":{"level":"SERVICE","cluster_name":"CLUSTERNAME","service_name":"SPARK"}},"Body":{"ServiceInfo":{"state":"STARTED"}}}' $resp.Content
A szolgáltatás most az új konfigurációt használja.
Végül az alábbi paranccsal kapcsolja ki a karbantartási módot.
curl -u admin:$password -sS -H "X-Requested-By: ambari" \ -X PUT -d '{"RequestInfo": {"context": "turning off maintenance mode for SPARK2"},"Body": {"ServiceInfo": {"maintenance_state":"OFF"}}}' \ "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/SPARK2"
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/SPARK2" ` -Credential $creds -UseBasicParsing ` -Method PUT ` -Headers @{"X-Requested-By" = "ambari"} ` -Body '{"RequestInfo": {"context": "turning off maintenance mode for SPARK2"},"Body": {"ServiceInfo": {"maintenance_state":"OFF"}}}'
Következő lépések
A REST API teljes körű referenciáját lásd: Apache Ambari API Reference V1. Lásd még: Felhasználók engedélyezése Apache Ambari-nézetekhez