Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure HDInsight'ta Apache Hadoop kümelerini yönetmek ve izlemek için Apache Ambari REST API'sini kullanmayı öğrenin.
Apache Ambari nedir?
Apache Ambari , REST API'leri tarafından desteklenen kullanımı kolay bir web kullanıcı arabirimi sağlayarak Hadoop kümelerinin yönetimini ve izlenmesini basitleştirir. Ambari varsayılan olarak Linux tabanlı HDInsight kümeleri ile sağlanır.
Önkoşullar
HDInsight üzerinde hadoop kümesi. Bkz . Linux'ta HDInsight'ı kullanmaya başlama.
Windows 10'da Ubuntu'da Bash. Bu makaledeki örneklerde Windows 10'da Bash kabuğu kullanılır. Yükleme adımları için bkz. Linux için Windows Alt Sistemi Windows 10 Yükleme Kılavuzu. Diğer Unix kabukları da çalışır. Bazı küçük değişikliklerle örnekler bir Windows Komut isteminde çalışabilir. İsterseniz Windows PowerShell'i de kullanabilirsiniz.
jq, bir komut satırı JSON işlemcisi. Bkz. https://stedolan.github.io/jq/.
Windows PowerShell. İsterseniz Bash'i de kullanabilirsiniz.
Ambari REST API için Temel Tekdüzen Kaynak Tanımlayıcısı
HDInsight https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAMECLUSTERNAME üzerinde Ambari REST API'sinin temel Tekdüzen Kaynak Tanımlayıcısı (URI), burada kümenizin adıdır. URI'lerdeki küme adları büyük/küçük harfe duyarlıdır. URI'ninCLUSTERNAME.azurehdinsight.net () tam etki alanı adı (FQDN) bölümündeki küme adı büyük/küçük harfe duyarlı olmasa da, URI'deki diğer oluşumlar büyük/küçük harfe duyarlıdır.
Kimlik doğrulama
HDInsight üzerinde Ambari'ye bağlanmak için HTTPS gerekir. Küme oluşturma sırasında sağladığınız yönetici hesabı adını (varsayılan yöneticidir) ve parolayı kullanın.
Kurumsal Güvenlik Paketi kümeleri için yerine admingibi username@domain.onmicrosoft.comtam kullanıcı adı kullanın.
Örnekler
Kurulum (Kimlik bilgilerini koru)
Her örnekte yeniden girmemek için kimlik bilgilerinizi koruyun. Küme adı ayrı bir adımda korunur.
A. Bash
Betiği, "PASSWORD" yerine gerçek parolanızı yazarak düzenleyin. Ardından komutunu girin.
export password='PASSWORD'
B. PowerShell
$creds = Get-Credential -UserName "admin" -Message "Enter the HDInsight login"
Doğru şekilde yazılmış küme adını belirleyin
Küme adının gerçek büyük/küçük harf kullanımı beklediğinizden farklı olabilir. Aşağıdaki adımlarda mevcut büyük/küçük harf gösterilir ve ardından bu tüm sonraki örnekler için bir değişkende saklanır.
Betikleri kümenizin adıyla değiştirecek CLUSTERNAME şekilde düzenleyin. Ardından komutunu girin. (FQDN için küme adı büyük/küçük harfe duyarlı değildir.)
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 verilerini ayrıştırma
Aşağıdaki örnek JSON yanıt belgesini ayrıştırmak ve yalnızca health_report sonuçlardaki bilgileri görüntülemek için jq veya ConvertFrom-Json kullanır.
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
Küme düğümlerinin FQDN'sini alma
Bir küme düğümünün tam etki alanı adını (FQDN) bilmeniz gerekebilir. Aşağıdaki örnekleri kullanarak kümedeki çeşitli düğümler için FQDN'yi kolayca alabilirsiniz:
Tüm düğümler
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
Ana düğümler
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
Çalışan düğümler
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 düğümleri
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
Küme düğümlerinin iç IP adresini alma
Bu bölümdeki örnekler tarafından döndürülen IP adreslerine İnternet üzerinden doğrudan erişilemez. Bunlara yalnızca HDInsight kümesini içeren Azure Sanal Ağı içinden erişilebilir.
HDInsight ve sanal ağlarla çalışma hakkında daha fazla bilgi için bkz. HDInsight için sanal ağ planlama.
IP adresini bulmak için, küme düğümlerinin iç tam nitelikli etki alanı adını (FQDN) bilmeniz gerekir. FQDN'yi aldıktan sonra konağın IP adresini alabilirsiniz. Aşağıdaki örnekler ilk olarak tüm konak düğümlerinin FQDN'sini sorgular. Ardından Ambari'yi her bir konağın IP adresi için sorgular.
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"
}
Varsayılan depolama alanını alma
HDInsight kümeleri varsayılan depolama alanı olarak bir Azure Depolama Hesabı veya Data Lake Storage kullanmalıdır. Küme oluşturulduktan sonra bu bilgileri almak için Ambari'yi kullanabilirsiniz. Örneğin, HDInsight dışındaki kapsayıcıya veri okumak/yazmak istiyorsanız.
Aşağıdaki örnekler kümeden varsayılan depolama yapılandırmasını alır:
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'
Önemli
Bu örnekler, bu bilgileri içeren sunucuya (service_config_version=1) uygulanan ilk yapılandırmayı döndürür. Küme oluşturulduktan sonra değiştirilmiş bir değer alırsanız yapılandırma sürümlerini listelemeniz ve en son sürümü almanız gerekebilir.
Dönüş değeri aşağıdaki örneklerden birine benzer:
wasbs://CONTAINER@ACCOUNTNAME.blob.core.windows.net- Bu değer, kümenin varsayılan depolama için bir Azure Depolama hesabı kullandığını gösterir.ACCOUNTNAMEDeğer, depolama hesabının adıdır.CONTAINERkısmı, depolama hesabındaki blob kapsayıcısının adıdır. Kapsayıcı, küme için HDFS uyumlu depolama alanının köküdür.abfs://CONTAINER@ACCOUNTNAME.dfs.core.windows.net- Bu değer, kümenin varsayılan depolama için Azure Data Lake Storage 2. Nesil kullandığını gösterir.ACCOUNTNAMEveCONTAINERdeğerleri, daha önce bahsedilen Azure Depolama ile aynı anlamlara sahiptir.adl://home- Bu değer, kümenin varsayılan depolama için Azure Data Lake Storage 1. Nesil kullandığını gösterir.Data Lake Storage hesabı adını bulmak için aşağıdaki örnekleri kullanın:
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'Dönüş değeri,
ACCOUNTNAME.azuredatalakestore.net'a benzer; buradaACCOUNTNAMEise Data Lake Storage hesabının adıdır.Data Lake Storage'da kümenin depolama alanını içeren dizini bulmak için aşağıdaki örnekleri kullanın:
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'Dönüş değeri ile
/clusters/CLUSTERNAME/benzerdir. Bu değer Data Lake Storage hesabı içindeki bir yoldur. Bu yol, küme için HDFS uyumlu dosya sisteminin köküdür.
Uyarı
Azure PowerShell tarafından sağlanan Get-AzHDInsightCluster cmdlet'i de kümenin depolama bilgilerini döndürür.
Tüm yapılandırmaları alma
Kümeniz için kullanılabilen yapılandırmaları alın.
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
Bu örnek, yüklü bileşenler için geçerli yapılandırmayı içeren bir JSON belgesi döndürür. Etiket değerine bakın. Aşağıdaki örnek, Spark küme türünden döndürülen verilerden bir alıntıdır.
"jupyter-site" : {
"tag" : "INITIAL",
"version" : 1
},
"livy2-client-conf" : {
"tag" : "INITIAL",
"version" : 1
},
"livy2-conf" : {
"tag" : "INITIAL",
"version" : 1
},
Belirli bir bileşen için yapılandırma alma
İlgilendiğiniz bileşenin yapılandırmasını alın. Aşağıdaki örnekte, INITIAL etiketini önceki istekten döndürülen değerle değiştirin.
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
Bu örnek, bileşen için livy2-conf geçerli yapılandırmayı içeren bir JSON belgesi döndürür.
Yapılandırmayı güncelleştirme
newconfig.jsonoluşturun.
Değiştir'i seçin ve komutları aşağıdaki gibi girin:Yeni bileşen ile
livy2-confdeğiştirin.INITIALetiketini,tagiçin Tüm yapılandırmaları al bölümünden alınan gerçek değerle değiştirin.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.jsonB. PowerShell
PowerShell betiği jq kullanır. AşağıdakiC:\HD\jq\jq-win64ifadesini, gerçek yolunuzu ve jq sürümünü yansıtacak şekilde düzenleyin.$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.jsonJq, HDInsight'tan alınan verileri yeni bir yapılandırma şablonuna dönüştürmek için kullanılır. Özellikle, bu örnekler aşağıdaki eylemleri gerçekleştirir:
"version" dizesini ve içinde
newtagdepolanan tarihi içeren benzersiz bir değer oluşturur.Yeni yapılandırma için bir kök belge oluşturur.
Dizinin içeriğini
.items[]alır ve desired_config öğesinin altına ekler.hrefBu öğeler yeni bir yapılandırma göndermek için gerekli olmadığından ,versionveConfigöğelerini siler.tagdeğerineversion#################sahip bir öğe ekler. Sayısal bölüm geçerli tarihi temel alır. Her yapılandırmanın benzersiz bir etiketi olmalıdır.Son olarak, veriler belgeye kaydedilir
newconfig.json. Belge yapısı aşağıdaki örneğe benzer görünmelidir:{ "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", .... }, }, } }
newconfig.jsondüzenleyin.
Belgeyinewconfig.jsonaçın ve nesnedekipropertiesdeğerleri değiştirin/ekleyin. Aşağıdaki örnek,"livy.server.csrf_protection.enabled"değerini"true"'den"false"'ye değiştirir."livy.server.csrf_protection.enabled": "false",Değişiklik yapmayı bitirdikten sonra dosyayı kaydedin.
gönderin
newconfig.json.
Güncelleştirilmiş yapılandırmayı Ambari'ye göndermek için aşağıdaki komutları kullanın.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.ContentBu komutlar ,newconfig.json dosyasının içeriğini yeni yapılandırma olarak kümeye gönderir. İstek bir JSON belgesi döndürür. Bu belgedeki versionTag öğesi gönderdiğiniz sürümle eşleşmelidir ve configs nesnesi istediğiniz yapılandırma değişikliklerini içerir.
Hizmet bileşenini yeniden başlatma
Bu noktada Ambari web kullanıcı arabirimi, yeni yapılandırmanın etkili olması için Spark hizmetinin yeniden başlatılması gerektiğini belirtir. Hizmeti yeniden başlatmak için aşağıdaki adımları kullanın.
Spark2 hizmeti için bakım modunu etkinleştirmek için aşağıdakileri kullanın:
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"}}}'Bakım modunu doğrulama
Bu komutlar, bakım modunu açan sunucuya bir JSON belgesi gönderir. Aşağıdaki isteği kullanarak hizmetin bakım modunda olduğunu doğrulayabilirsiniz:
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_stateDönüş değeri şeklindedir
ON.Ardından, Spark2 hizmetini kapatmak için aşağıdakileri kullanın:
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.ContentYanıt aşağıdaki örneğe benzer:
{ "href" : "http://10.0.0.18:8080/api/v1/clusters/CLUSTERNAME/requests/29", "Requests" : { "id" : 29, "status" : "Accepted" } }Önemli
hrefBu URI tarafından döndürülen değer, küme düğümünün iç IP adresini kullanıyor. Küme dışından kullanmak için10.0.0.18:8080kısmını kümenin tam etki alanı adı (FQDN) ile değiştirin.İsteği doğrulayın.
Aşağıdaki komutu, önceki adımda döndürülen gerçekiddeğeriyle29'i değiştirerek düzenleyin. Aşağıdaki komutlar isteğin durumunu alır: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_statusyanıtı
COMPLETED, isteğin tamamlandığını gösterir.Önceki istek tamamlandıktan sonra Spark2 hizmetini başlatmak için aşağıdakileri kullanın.
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.ContentHizmet şimdi yeni yapılandırmayı kullanıyor.
Son olarak, bakım modunu kapatmak için aşağıdakileri kullanın.
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"}}}'
Sonraki adımlar
REST API'nin tam başvurusu için bkz. Apache Ambari API Başvurusu V1. Ayrıca bkz. Apache Ambari Görünümleri için kullanıcıları yetkilendirme