Betik eylemlerini kullanarak Azure HDInsight kümelerini özelleştirmeCustomize Azure HDInsight clusters by using script actions

Azure HDInsight, kümeyi özelleştirmek için özel betikler çağıran betik eylemleri adlı bir yapılandırma yöntemi sağlar.Azure HDInsight provides a configuration method called script actions that invokes custom scripts to customize the cluster. Bu betikler ek bileşenleri yüklemek ve yapılandırma ayarlarını değiştirmek için kullanılır.These scripts are used to install additional components and change configuration settings. Betik eylemleri, küme oluşturma sırasında veya sonrasında kullanılabilir.Script actions can be used during or after cluster creation.

Betik eylemleri, Azure Marketi 'Nde de HDInsight uygulaması olarak yayımlanabilir.Script actions can also be published to the Azure Marketplace as an HDInsight application. HDInsight uygulamaları hakkında daha fazla bilgi için bkz. Azure Marketi 'Nde HDInsight uygulaması yayımlama.For more information on HDInsight applications, see Publish an HDInsight application in the Azure Marketplace.

İzinlerPermissions

Etki alanına katılmış bir HDInsight kümesi için, kümeyle birlikte betik eylemlerini kullandığınızda gereken iki Apache ambarı izni vardır:For a domain-joined HDInsight cluster, there are two Apache Ambari permissions that are required when you use script actions with the cluster:

  • Ambarı._özel_komutunu ÇALıŞTıRıN.AMBARI.RUN_CUSTOM_COMMAND. Varsayılan olarak, ambarı yönetici rolü bu izne sahiptir.The Ambari Administrator role has this permission by default.
  • Küme._özel_komutunu ÇALıŞTıRıN.CLUSTER.RUN_CUSTOM_COMMAND. HDInsight kümesi Yöneticisi ve ambarı yöneticisinin bu izni varsayılan olarak vardır.Both the HDInsight Cluster Administrator and Ambari Administrator have this permission by default.

Etki alanına katılmış HDInsight ile izinlerle çalışma hakkında daha fazla bilgi için bkz. Kurumsal güvenlik paketi HDInsight kümelerini yönetme.For more information on working with permissions with domain-joined HDInsight, see Manage HDInsight clusters with Enterprise Security Package.

Erişim denetimiAccess control

Azure aboneliğinizin Yöneticisi veya sahibi değilseniz, hesabınız HDInsight kümesini içeren kaynak grubuna en az katkıda bulunan erişime sahip olmalıdır.If you aren't the administrator or owner of your Azure subscription, your account must have at least Contributor access to the resource group that contains the HDInsight cluster.

Bir HDInsight kümesi oluşturursanız, Azure aboneliğine en az katkıda bulunan bir kişinin daha önce HDInsight sağlayıcısına kayıtlı olması gerekir.If you create an HDInsight cluster, someone with at least Contributor access to the Azure subscription must have previously registered the provider for HDInsight. Sağlayıcı kaydı, aboneliğe Katkıda Bulunan erişimi olan bir kullanıcı abonelikte ilk kez kaynak oluşturduğunda gerçekleşir.Provider registration happens when a user with Contributor access to the subscription creates a resource for the first time on the subscription. Ayrıca, rest kullanarak bir sağlayıcıyı kaydettiğinizde, kaynak oluşturulmadan da yapılabilir.It can also be done without creating a resource if you register a provider by using REST.

Erişim yönetimiyle çalışma hakkında daha fazla bilgi alın:Get more information on working with access management:

Betik eylemlerini anlamaUnderstand script actions

Bir betik eylemi, HDInsight kümesindeki düğümlerde çalışan Bash betiktir.A script action is Bash script that runs on the nodes in an HDInsight cluster. Betik eylemlerinin özellikleri ve özellikleri şunlardır:Characteristics and features of script actions are as follows:

  • HDInsight kümesinden erişilebilen bir URI üzerinde depolanmalıdır.Must be stored on a URI that's accessible from the HDInsight cluster. Olası depolama konumları aşağıda verilmiştir:The following are possible storage locations:

    • Normal kümeler için:For regular clusters:

      • ADLS 1.: hizmet sorumlusu HDInsight 'ın, Data Lake Storage erişmek için kullandığı hizmet, betikte okuma erişimine sahip olmalıdır.ADLS Gen1: The service principal HDInsight uses to access Data Lake Storage must have read access to the script. Data Lake Storage 1. depolanan betiklerin URI biçimi adl://DATALAKESTOREACCOUNTNAME.azuredatalakestore.net/path_to_file.The URI format for scripts stored in Data Lake Storage Gen1 is adl://DATALAKESTOREACCOUNTNAME.azuredatalakestore.net/path_to_file.

      • HDInsight kümesi için birincil veya ek depolama hesabı olan bir Azure depolama hesabındaki blob.A blob in an Azure Storage account that's either the primary or additional storage account for the HDInsight cluster. HDInsight, küme oluşturma sırasında bu tür depolama hesaplarının her ikisine de erişim izni verilir.HDInsight is granted access to both of these types of storage accounts during cluster creation.

        Önemli

        Bu Azure depolama hesabında depolama anahtarını döndürmeyin, çünkü bu komut dosyası eylemlerinin sonraki betiklerin başarısız olmasına neden olur.Do not rotate the storage key on this Azure Storage account, as it will cause subsequent script actions with scripts stored there to fail.

      • Http://yollarla erişilebilen bir ortak dosya paylaşım hizmeti.A public file-sharing service accessible through http:// paths. Örnekler Azure blob, GitHub, OneDrive.Examples are Azure Blob, GitHub, OneDrive.

        Örneğin URI 'Ler için bkz. örnek betik eylemi betikleri.For example URIs, see Example script action scripts.

    • ESP içeren kümeler için:For clusters with ESP:

      • Wasb://veya wasbs://veya http [s]://URI 'Leri desteklenir.The wasb:// or wasbs:// or http[s]:// URIs are supported.
  • Yalnızca belirli düğüm türlerinde çalışacak şekilde kısıtlanabilir.Can be restricted to run on only certain node types. Örnekler, baş düğüm veya çalışan düğümlerdir.Examples are head nodes or worker nodes.

  • Kalıcı veya geçici olabilir.Can be persisted or ad hoc.

    Kalıcı betikler, ölçek işlemleri aracılığıyla kümeye eklenen yeni çalışan düğümlerini özelleştirmek için kullanılır.Persisted scripts are used to customize new worker nodes added to the cluster through scaling operations. Kalıcı bir betik, ölçeklendirme işlemleri gerçekleştiğinde başka bir düğüm türüne değişiklikler de uygulayabilir.A persisted script might also apply changes to another node type when scaling operations occur. Bir baş düğüm bir örnektir.An example is a head node.

    Önemli

    Kalıcı betik eylemlerinin benzersiz bir adı olmalıdır.Persisted script actions must have a unique name.

    Geçici betikler kalıcı değildir.Ad hoc scripts aren't persisted. Betik çalıştırıldıktan sonra kümeye eklenen çalışan düğümlerine uygulanmaz.They aren't applied to worker nodes added to the cluster after the script has run. Ardından, geçici bir betiği kalıcı bir betiğe yükseltebilir veya kalıcı bir betiği geçici bir komut dosyasına indirgeyebilirsiniz.Then you can promote an ad hoc script to a persisted script or demote a persisted script to an ad hoc script.

    Önemli

    Küme oluşturma sırasında kullanılan betik eylemleri otomatik olarak kalıcı hale getirilir.Script actions used during cluster creation are automatically persisted.

    Özel olarak olması gerektiğini gösterseniz bile, başarısız olan betikler kalıcı olmaz.Scripts that fail aren't persisted, even if you specifically indicate that they should be.

  • , Yürütme sırasında komut dosyası tarafından kullanılan parametreleri kabul edebilir.Can accept parameters that are used by the script during execution.

  • Küme düğümlerinde kök düzeyi ayrıcalıklarla çalıştırın.Run with root-level privileges on the cluster nodes.

  • Azure portal, Azure PowerShell, Azure klasik CLı veya HDInsight .NET SDK ile kullanılabilir.Can be used through the Azure portal, Azure PowerShell, the Azure classic CLI, or the HDInsight .NET SDK.

Küme, çalıştırılan tüm betiklerin geçmişini tutar.The cluster keeps a history of all scripts that have been run. Geçmiş, yükseltme veya indirgeme işlemleri için bir betiğin KIMLIĞINI bulmanız gerektiğinde yardımcı olur.The history helps when you need to find the ID of a script for promotion or demotion operations.

Önemli

Betik eylemi tarafından yapılan değişiklikleri geri almanın otomatik bir yolu yoktur.There's no automatic way to undo the changes made by a script action. Değişiklikleri el ile tersine çevirin ya da onları geri yükleyen bir betik sağlayın.Either manually reverse the changes or provide a script that reverses them.

Küme oluşturma işlemindeki betik eylemiScript action in the cluster creation process

Küme oluşturma sırasında kullanılan betik eylemleri, var olan bir kümede çalıştırılan betik eylemlerden biraz farklıdır:Script actions used during cluster creation are slightly different from script actions run on an existing cluster:

  • Komut dosyası otomatik olarak kalıcıdır.The script is automatically persisted.

  • Betikteki bir hata, küme oluşturma işleminin başarısız olmasına neden olabilir.A failure in the script can cause the cluster creation process to fail.

Aşağıdaki diyagramda, oluşturma işlemi sırasında betik eyleminin ne zaman çalıştığı gösterilmektedir:The following diagram illustrates when script action runs during the creation process:

Küme oluşturma sırasında HDInsight kümesi özelleştirmesi ve aşamalarıHDInsight cluster customization and stages during cluster creation

HDInsight yapılandırılırken betik çalışır.The script runs while HDInsight is being configured. Betik, kümedeki tüm belirtilen düğümlerde paralel olarak çalışır.The script runs in parallel on all the specified nodes in the cluster. Düğümlerde kök ayrıcalıklarla çalışır.It runs with root privileges on the nodes.

Not

Apache Hadoop ilgili hizmetler de dahil olmak üzere Hizmetleri durdurma ve başlatma gibi işlemleri gerçekleştirebilirsiniz.You can perform operations like stopping and starting services, including Apache Hadoop-related services. Hizmetleri durdurursanız, komut dosyası tamamlanmadan önce, ambarı hizmetinin ve Hadoop ile ilgili diğer hizmetlerin çalıştığından emin olun.If you stop services, make sure that the Ambari service and other Hadoop-related services are running before the script finishes. Bu hizmetler, oluşturulduğu sırada kümenin sistem durumunu ve durumunu başarıyla tespit etmek için gereklidir.These services are required to successfully determine the health and state of the cluster while it's being created.

Küme oluşturma sırasında aynı anda birçok betik eylemini kullanabilirsiniz.During cluster creation, you can use many script actions at once. Bu betikler belirtildikleri sırayla çağırılır.These scripts are invoked in the order in which they were specified.

Önemli

Betik eylemleri 60 dakika içinde bitmelidir veya zaman aşımına uğrar. Küme sağlama sırasında, komut dosyası diğer kurulum ve yapılandırma işlemleriyle eşzamanlı olarak çalışır.Script actions must finish within 60 minutes, or they time out. During cluster provisioning, the script runs concurrently with other setup and configuration processes. CPU süresi veya ağ bant genişliği gibi kaynaklara yarışma, komut dosyasının geliştirme ortamınızda olduğundan daha uzun sürmesine neden olabilir.Competition for resources such as CPU time or network bandwidth might cause the script to take longer to finish than it does in your development environment.

Betiği çalıştırmak için gereken süreyi en aza indirmek için, kaynaktan uygulama indirme ve derleme gibi görevlerden kaçının.To minimize the time it takes to run the script, avoid tasks like downloading and compiling applications from the source. Uygulamaları önceden derleyin ve ikiliyi Azure Storage 'da depolayın.Precompile applications and store the binary in Azure Storage.

Çalışan bir kümede betik eylemiScript action on a running cluster

Zaten çalışan bir kümede çalıştırılan bir betikte hata otomatik olarak kümenin başarısız durumuna geçmesine neden olmaz.A failure in a script run on an already running cluster doesn't automatically cause the cluster to change to a failed state. Bir komut dosyası tamamlandıktan sonra, kümenin çalışır duruma dönmesi gerekir.After a script finishes, the cluster should return to a running state.

Önemli

Kümede çalışan bir durum olsa bile, başarısız olan betik bozulmuş olabilir.Even if the cluster has a running state, the failed script might have broken things. Örneğin, bir betik, küme için gereken dosyaları silebilir.For example, a script might delete files needed by the cluster.

Komut dosyaları eylemleri kök ayrıcalıklarla çalışır.Scripts actions run with root privileges. Kümenize uygulamadan önce bir betiğin ne yaptığını anladığınızdan emin olun.Make sure that you understand what a script does before you apply it to your cluster.

Bir kümeye komut dosyası uyguladığınızda, küme durumunun çalışmayı kabul edildiolarak değişir.When you apply a script to a cluster, the cluster state changes from Running to Accepted. Ardından, HDInsight yapılandırmasına ve son olarak, başarılı betikler için çalışmaya geri değişir.Then it changes to HDInsight configuration and, finally, back to Running for successful scripts. Betik durumu komut dosyası eylem geçmişine kaydedilir.The script status is logged in the script action history. Bu bilgiler, betiğin başarılı veya başarısız olduğunu bildirir.This information tells you whether the script succeeded or failed. Örneğin, Get-AzHDInsightScriptActionHistory PowerShell cmdlet 'i bir betiğin durumunu gösterir.For example, the Get-AzHDInsightScriptActionHistory PowerShell cmdlet shows the status of a script. Aşağıdaki metne benzer bilgiler döndürür:It returns information similar to the following text:

ScriptExecutionId : 635918532516474303
StartTime         : 8/14/2017 7:40:55 PM
EndTime           : 8/14/2017 7:41:05 PM
Status            : Succeeded

Önemli

Küme Kullanıcı, yönetici, parolayı küme oluşturulduktan sonra değiştirirseniz, bu kümeye karşı çalıştırılan betik eylemleri başarısız olabilir.If you change the cluster user, admin, password after the cluster is created, script actions run against this cluster might fail. Çalışan düğümlerini hedefleyen kalıcı betik eylemleriniz varsa, kümeyi ölçeklendirirken bu betikler başarısız olabilir.If you have any persisted script actions that target worker nodes, these scripts might fail when you scale the cluster.

Örnek betik eylemi betikleriExample script action scripts

Betik eylemi betikleri aşağıdaki yardımcı programlar aracılığıyla kullanılabilir:Script action scripts can be used through the following utilities:

  • Azure portalThe Azure portal
  • Azure PowerShellAzure PowerShell
  • Klasik Azure CLıThe Azure classic CLI
  • An HDInsight .NET SDKAn HDInsight .NET SDK

HDInsight, HDInsight kümelerine aşağıdaki bileşenleri yüklemek için komut dosyaları sağlar:HDInsight provides scripts to install the following components on HDInsight clusters:

AdName Komut DosyasıScript
Azure depolama hesabı eklemeAdd an Azure Storage account https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh.https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh. Bkz. HDInsight 'a ek depolama hesapları ekleme.See Add additional storage accounts to HDInsight.
Hue yüklemeInstall Hue https://hdiconfigactions.blob.core.windows.net/linuxhueconfigactionv02/install-hue-uber-v02.sh.https://hdiconfigactions.blob.core.windows.net/linuxhueconfigactionv02/install-hue-uber-v02.sh. Bkz. HDInsight Hadoop kümelerinde ton 'U yükleyip kullanma.See Install and use Hue on HDInsight Hadoop clusters.
Hive kitaplıklarını ÖnyüklePreload Hive libraries https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v01.sh.https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v01.sh. Bkz. HDInsight kümenizi oluştururken özel Apache Hive kitaplıkları ekleme.See Add custom Apache Hive libraries when creating your HDInsight cluster.

Küme oluşturma sırasında betik eylemi kullanmaUse a script action during cluster creation

Bu bölümde, HDInsight kümesi oluştururken betik eylemlerini kullanmanın farklı yolları açıklanmaktadır.This section explains the different ways you can use script actions when you create an HDInsight cluster.

Azure portal küme oluşturma sırasında bir betik eylemi kullanınUse a script action during cluster creation from the Azure portal

  1. Azure Portal kullanarak HDInsight 'Ta Linux tabanlı kümeler oluşturmabölümünde açıklandığı gibi bir küme oluşturmaya başlayın.Start to create a cluster as described in Create Linux-based clusters in HDInsight by using the Azure portal. Küme oluşturma sırasında 6. adım, betik eylemleri' ne ulaşır.During cluster creation, you arrive at step 6, Script actions. Isteğe bağlı > + Yeni Gönder' e gidin.Navigate to Optional > + Submit new.

    Azure portal kümesi betik eylemi

  2. Önceden oluşturulmuş bir betik seçmek için betik Seç girişini kullanın.Use the Select a script entry to select a premade script. Özel bir komut dosyası kullanmak için özel' i seçin.To use a custom script, select Custom. Ardından, betiğiniz için ad ve Bash betiği URI 'si sağlayın.Then provide the Name and Bash script URI for your script.

    Betik Seç formuna betik ekleme

    Aşağıdaki tablo, formundaki öğeleri açıklar:The following table describes the elements on the form:

    ÖzellikProperty DeğerValue
    Betik seçinSelect a script Kendi komut dosyanızı kullanmak için özel' i seçin.To use your own script, select Custom. Aksi takdirde, belirtilen betiklerin birini seçin.Otherwise, select one of the provided scripts.
    AdName Betik eylemi için bir ad belirtin.Specify a name for the script action.
    Bash betiği URI 'SIBash script URI Betiğin URI 'sini belirtin.Specify the URI of the script.
    Baş/çalışan/ZooKeeperHead/Worker/ZooKeeper Betiğin çalıştırıldığı düğümleri belirtin: Head, Workerveya ZooKeeper.Specify the nodes on which the script is run: Head, Worker, or ZooKeeper.
    ParametrelerParameters Komut dosyası için gerekliyse parametreleri belirtin.Specify the parameters, if required by the script.

    Komut dosyasının ölçeklendirme işlemleri sırasında uygulandığından emin olmak için bu betiği Sürdür eylem girişini kullanın.Use the Persist this script action entry to make sure that the script is applied during scaling operations.

  3. Betiği kaydetmek için Oluştur ' u seçin.Select Create to save the script. Daha sonra başka bir betik eklemek için + Yeni Gönder ' i kullanabilirsiniz.Then you can use + Submit new to add another script.

    HDInsight birden çok betik eylemi

    Betikler ekleme işiniz bittiğinde, küme Özeti bölümüne devam etmek için Seç düğmesini ve sonra İleri düğmesini seçin.When you're done adding scripts, select the Select button and then the Next button to continue to the Cluster summary section.

  4. Kümeyi oluşturmak için küme Özeti seçiminden Oluştur ' u seçin.To create the cluster, select Create from the Cluster summary selection.

Azure Resource Manager şablonlarından betik eylemi kullanmaUse a script action from Azure Resource Manager templates

Betik eylemleri, Azure Resource Manager şablonlarıyla birlikte kullanılabilir.Script actions can be used with Azure Resource Manager templates. Bir örnek için bkz. HDInsight Linux kümesi oluşturma ve betik eylemi çalıştırma.For an example, see Create HDInsight Linux Cluster and run a script action.

Bu örnekte, komut dosyası eylemi aşağıdaki kod kullanılarak eklenir:In this example, the script action is added by using the following code:

"scriptActions": [
    {
        "name": "setenvironmentvariable",
        "uri": "[parameters('scriptActionUri')]",
        "parameters": "headnode"
    }
]

Bir şablonu dağıtma hakkında daha fazla bilgi alın:Get more information on how to deploy a template:

Azure PowerShell kümeden küme oluşturma sırasında betik eylemi kullanUse a script action during cluster creation from Azure PowerShell

Bu bölümde, bir kümeyi özelleştirmek üzere betikleri çağırmak için Add-AzHDInsightScriptAction cmdlet 'ini kullanırsınız.In this section, you use the Add-AzHDInsightScriptAction cmdlet to invoke scripts to customize a cluster. Başlamadan önce Azure PowerShell yükleyip yapılandırırken emin olun.Before you start, make sure you install and configure Azure PowerShell. Bu PowerShell komutlarını kullanmak için az modüleihtiyacınız vardır.To use these PowerShell commands, you need the AZ Module.

Not

Bu makale yeni Azure PowerShell Az modülünü kullanacak şekilde güncelleştirilmiştir.This article has been updated to use the new Azure PowerShell Az module. En azından Aralık 2020'ye kadar hata düzeltmeleri almaya devam edecek olan AzureRM modülünü de kullanmaya devam edebilirsiniz.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Yeni Az modülüyle AzureRM'nin uyumluluğu hakkında daha fazla bilgi edinmek için bkz. Yeni Azure PowerShell Az modülüne giriş.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az modülü yükleme yönergeleri için bkz. Azure PowerShell'i yükleme.For Az module installation instructions, see Install Azure PowerShell.

Aşağıdaki betik, PowerShell kullanarak bir küme oluşturduğunuzda bir betik eyleminin nasıl uygulanacağını göstermektedir:The following script shows how to apply a script action when you create a cluster by using PowerShell:

# Login to your Azure subscription
$context = Get-AzContext
if ($context -eq $null) 
{
    Connect-AzAccount
}
$context

# If you have multiple subscriptions, set the one to use
# $subscriptionID = "<subscription ID to use>"
# Select-AzSubscription -SubscriptionId $subscriptionID

# Get user input/default values
$resourceGroupName = Read-Host -Prompt "Enter the resource group name"
$location = Read-Host -Prompt "Enter the Azure region to create resources in"

# Create the resource group
New-AzResourceGroup -Name $resourceGroupName -Location $location

$defaultStorageAccountName = Read-Host -Prompt "Enter the name of the storage account"

# Create an Azure storae account and container
New-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $defaultStorageAccountName `
    -Type Standard_LRS `
    -Location $location
$defaultStorageAccountKey = (Get-AzStorageAccountKey `
                                -ResourceGroupName $resourceGroupName `
                                -Name $defaultStorageAccountName)[0].Value
$defaultStorageContext = New-AzStorageContext `
                                -StorageAccountName $defaultStorageAccountName `
                                -StorageAccountKey $defaultStorageAccountKey

# Get information for the HDInsight cluster
$clusterName = Read-Host -Prompt "Enter the name of the HDInsight cluster"
# Cluster login is used to secure HTTPS services hosted on the cluster
$httpCredential = Get-Credential -Message "Enter Cluster login credentials" -UserName "admin"
# SSH user is used to remotely connect to the cluster using SSH clients
$sshCredential = Get-Credential -Message "Enter SSH user credentials"

# Default cluster size (# of worker nodes), version, type, and OS
$clusterSizeInNodes = "4"
$clusterVersion = "3.5"
$clusterType = "Hadoop"
$clusterOS = "Linux"
# Set the storage container name to the cluster name
$defaultBlobContainerName = $clusterName

# Create a blob container. This holds the default data store for the cluster.
New-AzStorageContainer `
    -Name $clusterName -Context $defaultStorageContext

# Create an HDInsight configuration object
$config = New-AzHDInsightClusterConfig
# Add the script action
$scriptActionUri="https://hdiconfigactions.blob.core.windows.net/linuxgiraphconfigactionv01/giraph-installer-v01.sh"
# Add for the head nodes
$config = Add-AzHDInsightScriptAction `
    -Config $config `
    -Name "Install Giraph" `
    -NodeType HeadNode `
    -Uri $scriptActionUri
# Continue adding the script action for any other node types
# that it must run on.
$config = Add-AzHDInsightScriptAction `
    -Config $config `
    -Name "Install Giraph" `
    -NodeType WorkerNode `
    -Uri $scriptActionUri

# Create the cluster using the configuration object
New-AzHDInsightCluster `
    -Config $config `
    -ResourceGroupName $resourceGroupName `
    -ClusterName $clusterName `
    -Location $location `
    -ClusterSizeInNodes $clusterSizeInNodes `
    -ClusterType $clusterType `
    -OSType $clusterOS `
    -Version $clusterVersion `
    -HttpCredential $httpCredential `
    -DefaultStorageAccountName "$defaultStorageAccountName.blob.core.windows.net" `
    -DefaultStorageAccountKey $defaultStorageAccountKey `
    -DefaultStorageContainer $containerName `
    -SshCredential $sshCredential

Kümenin oluşturulması birkaç dakika sürebilir.It can take several minutes before the cluster is created.

HDInsight .NET SDK 'dan küme oluşturma sırasında betik eylemi kullanmaUse a script action during cluster creation from the HDInsight .NET SDK

HDInsight .NET SDK 'Sı, bir .NET uygulamasından HDInsight ile çalışmayı kolaylaştıran istemci kitaplıkları sağlar.The HDInsight .NET SDK provides client libraries that make it easier to work with HDInsight from a .NET application. Kod örneği için bkz. betik eylemleri.For a code sample, see Script Actions.

Çalışan bir kümeye betik eylemi uygulamaApply a script action to a running cluster

Bu bölümde, çalışan bir kümeye betik eylemlerinin nasıl uygulanacağı açıklanmaktadır.This section explains how to apply script actions to a running cluster.

Azure portal çalışan bir kümeye betik eylemi uygulamaApply a script action to a running cluster from the Azure portal

Azure Portalgidin:Go to the Azure portal:

  1. Sol menüden tüm hizmetler > Analytics > HDInsight kümelerinegidin.From the left menu, navigate to All services > Analytics > HDInsight clusters.

  2. Listeden, varsayılan görünümü açan kümenizi seçin.Select your cluster from the list, which opens the default view.

  3. Varsayılan görünümden Ayarlaraltında betik eylemleri' ni seçin.From the default view, under Settings, select Script actions.

  4. Betik eylemleri sayfasının en üstünden + Yeni Gönder' i seçin.From the top of the Script actions page, select + Submit new.

    Çalışan bir kümeye betik ekleme

  5. Önceden oluşturulmuş bir betik seçmek için betik Seç girişini kullanın.Use the Select a script entry to select a premade script. Özel bir komut dosyası kullanmak için özel' i seçin.To use a custom script, select Custom. Ardından, betiğiniz için ad ve Bash betiği URI 'si sağlayın.Then provide the Name and Bash script URI for your script.

    Betik Seç formuna betik ekleme

    Aşağıdaki tablo, formundaki öğeleri açıklar:The following table describes the elements on the form:

    ÖzellikProperty DeğerValue
    Betik seçinSelect a script Kendi komut dosyanızı kullanmak için özel' i seçin.To use your own script, select custom. Aksi takdirde, bir belirtilen betiği seçin.Otherwise, select a provided script.
    AdName Betik eylemi için bir ad belirtin.Specify a name for the script action.
    Bash betiği URI 'SIBash script URI Betiğin URI 'sini belirtin.Specify the URI of the script.
    HEAD/Worker/ZooKeeperHead/Worker/Zookeeper Betiğin çalıştırıldığı düğümleri belirtin: Head, Workerveya ZooKeeper.Specify the nodes on which the script is run: Head, Worker, or ZooKeeper.
    ParametrelerParameters Komut dosyası için gerekliyse parametreleri belirtin.Specify the parameters, if required by the script.

    Komut dosyasının ölçeklendirme işlemleri sırasında uygulandığından emin olmak için bu betiği Sürdür eylem girişini kullanın.Use the Persist this script action entry to make sure the script is applied during scaling operations.

  6. Son olarak, komut dosyasını kümeye uygulamak için Oluştur düğmesini seçin.Finally, select the Create button to apply the script to the cluster.

Azure PowerShell 'den çalışan bir kümeye betik eylemi uygulamaApply a script action to a running cluster from Azure PowerShell

Bu PowerShell komutlarını kullanmak için az modüleihtiyacınız vardır.To use these PowerShell commands, you need the AZ Module.

Aşağıdaki örnek, çalışan bir kümeye nasıl betik eylemi uygulanacağını gösterir:The following example shows how to apply a script action to a running cluster:

# Get information for the HDInsight cluster
$clusterName = Read-Host -Prompt "Enter the name of the HDInsight cluster"
$scriptActionName = Read-Host -Prompt "Enter the name of the script action"
$scriptActionUri = Read-Host -Prompt "Enter the URI of the script action"
# The node types that the script action is applied to
$nodeTypes = "headnode", "workernode"

# Apply the script and mark as persistent
Submit-AzHDInsightScriptAction -ClusterName $clusterName `
    -Name $scriptActionName `
    -Uri $scriptActionUri `
    -NodeTypes $nodeTypes `
    -PersistOnSuccess

İşlem bittikten sonra aşağıdaki metne benzer bilgiler alırsınız:After the operation finishes, you receive information similar to the following text:

OperationState  : Succeeded
ErrorMessage    :
Name            : Giraph
Uri             : https://hdiconfigactions.blob.core.windows.net/linuxgiraphconfigactionv01/giraph-installer-v01.sh
Parameters      :
NodeTypes       : {HeadNode, WorkerNode}

Azure CLı 'dan çalışan bir kümeye betik eylemi uygulamaApply a script action to a running cluster from the Azure CLI

Başlamadan önce Azure CLı 'yi yüklediğinizden ve yapılandırmadığınızdan emin olun.Before you start, make sure you install and configure the Azure CLI. Daha fazla bilgi için bkz. Azure klasık CLI 'Yı yüklemeyin.For more information, see Install the Azure classic CLI.

Önemli

Bu makale, Azure Klasik CLI gerektiren içeriği içerir.This article contains content that requires the Azure classic CLI. Azure CLI'ın geçerli sürümü, bu makalede, Klasik CLI gerekli olacak şekilde özetlenen özellikleri için destek yok.The current release of the Azure CLI doesn't have support for the features outlined in this article, so the classic CLI is required.

Klasik CLI modern Azure CLI ile yan yana yüklenebilir, ancak tüm yeni komut dosyaları ve dağıtımları için Azure CLI'yı öneririz.The classic CLI can be installed side by side with the modern Azure CLI, but we recommend the Azure CLI for all new scripts and deployments. Klasik CLI'yı yüklemek için bkz: Klasik Azure CLI yükleme.To install the classic CLI, see Install the Azure classic CLI. CLI'ın en son sürümünü yüklemek için bkz: Azure CLI'yı yükleme.To install the latest version of the CLI, see Install the Azure CLI.

  1. Azure Resource Manager moduna geç:Switch to Azure Resource Manager mode:

    azure config mode arm
    
  2. Azure aboneliğinizde kimlik doğrulaması yapın:Authenticate to your Azure subscription:

    azure login
    
  3. Çalışan bir kümeye betik eylemi uygulayın:Apply a script action to a running cluster:

    azure hdinsight script-action create <clustername> -g <resourcegroupname> -n <scriptname> -u <scriptURI> -t <nodetypes>
    

    Bu komutun parametrelerini atlarsanız sizden sorulur.If you omit parameters for this command, you're prompted for them. -u ile belirttiğiniz betik parametreleri kabul ediyorsa, -p parametresini kullanarak bunları belirtebilirsiniz.If the script you specify with -u accepts parameters, you can specify them by using the -p parameter.

    Geçerli düğüm türleri headnode, workernodeve zookeeper.Valid node types are headnode, workernode, and zookeeper. Komut dosyasının birkaç düğüm türüne uygulanması gerekiyorsa, noktalı virgül ;ayrılmış türleri belirtin.If the script should be applied to several node types, specify the types separated by a semicolon ;. Örneğin, -n headnode;workernode.For example, -n headnode;workernode.

    Betiği kalıcı hale getirmek için --persistOnSuccessekleyin.To persist the script, add --persistOnSuccess. Ayrıca, azure hdinsight script-action persisted setkullanarak betiği daha sonra da kalıcı hale getirebilirsiniz.You can also persist the script later by using azure hdinsight script-action persisted set.

    İş bittikten sonra aşağıdaki metin gibi bir çıktı alırsınız:After the job finishes, you get output like the following text:

     info:    Executing command hdinsight script-action create
     + Executing Script Action on HDInsight cluster
     data:    Operation Info
     data:    ---------------
     data:    Operation status:
     data:    Operation ID:  b707b10e-e633-45c0-baa9-8aed3d348c13
     info:    hdinsight script-action create command OK
    

REST API kullanarak çalışan bir kümeye betik eylemi uygulamaApply a script action to a running cluster by using REST API

Bkz. Azure HDInsight 'Ta küme REST API.See Cluster REST API in Azure HDInsight.

HDInsight .NET SDK ' dan çalışan bir kümeye betik eylemi uygulamaApply a script action to a running cluster from the HDInsight .NET SDK

Bir kümeye betikleri uygulamak üzere .NET SDK kullanmanın bir örneği için bkz. çalışan bir Linux tabanlı HDInsight kümesine karşı betik eylemi uygulama.For an example of using the .NET SDK to apply scripts to a cluster, see Apply a Script Action against a running Linux-based HDInsight cluster.

Geçmişi görüntüleme ve betik eylemlerini yükseltme ve indirgemeView history and promote and demote script actions

Azure portalThe Azure portal

  1. Azure Portal’ında oturum açın.Sign in to the Azure portal.

  2. Sol menüden tüm hizmetler > Analytics > HDInsight kümelerinegidin.From the left menu, navigate to All services > Analytics > HDInsight clusters.

  3. Listeden, varsayılan görünümü açan kümenizi seçin.Select your cluster from the list, which opens the default view.

  4. Varsayılan görünümden Ayarlaraltında betik eylemleri' ni seçin.From the default view, under Settings, select Script actions.

  5. Bu küme için betikler geçmişi betik eylemleri bölümünde görüntülenir.A history of scripts for this cluster displays on the script actions section. Bu bilgiler, kalıcı betikler listesini içerir.This information includes a list of persisted scripts. Aşağıdaki ekran görüntüsünde, bu kümede Solr betiğinin çalıştırıldığı gösterilmektedir.The following screenshot shows that the Solr script has been run on this cluster. Ekran görüntüsünde kalıcı betikler gösterilmez.The screenshot doesn't show any persisted scripts.

    Portal betik eylemleri gönderme geçmişi

  6. Bu betiğin Özellikler bölümünü göstermek için geçmişten bir komut dosyası seçin.Select a script from the history to display the Properties section for this script. Ekranın en üstünden betiği yeniden çalıştırabilir veya yükseltebilirsiniz.From the top of the screen, you can rerun the script or promote it.

    Betik eylemleri özellikleri yükseltir

  7. Ayrıca, eylemler gerçekleştirmek için komut dosyası eylemleri bölümündeki girdilerin sağ tarafındaki . .. ve üç nokta simgesini de seçebilirsiniz.You can also select the ellipsis, ..., to the right of entries on the script actions section to perform actions.

    Kalıcı betik eylemleri silme

Azure PowerShellAzure PowerShell

cmdletcmdlet İşlevFunction
Get-AzHDInsightPersistedScriptAction Kalıcı betik eylemleriyle ilgili bilgileri alın.Retrieve information on persisted script actions.
Get-AzHDInsightScriptActionHistory Belirli bir betiğin kümesine veya ayrıntılarına uygulanan betik eylemlerinin geçmişini alın.Retrieve a history of script actions applied to the cluster or details for a specific script.
Set-AzHDInsightPersistedScriptAction Geçici betik eylemini kalıcı betik eylemine yükseltin.Promote an ad hoc script action to a persisted script action.
Remove-AzHDInsightPersistedScriptAction Kalıcı bir betik eylemini geçici bir eyleme indirgeyin.Demote a persisted script action to an ad hoc action.

Önemli

Remove-AzHDInsightPersistedScriptAction, bir komut dosyası tarafından gerçekleştirilen eylemleri geri almaz.Remove-AzHDInsightPersistedScriptAction doesn't undo the actions performed by a script. Bu cmdlet yalnızca kalıcı bayrağını kaldırır.This cmdlet only removes the persisted flag.

Aşağıdaki örnek betik, bir betiği yükseltmek ve alçaltmak için cmdlet 'leri kullanmayı göstermektedir.The following example script demonstrates using the cmdlets to promote and then demote a script.

# Get a history of scripts
Get-AzHDInsightScriptActionHistory -ClusterName mycluster

# From the list, we want to get information on a specific script
Get-AzHDInsightScriptActionHistory -ClusterName mycluster `
    -ScriptExecutionId 635920937765978529

# Promote this to a persisted script
# Note: the script must have a unique name to be promoted
# if the name is not unique, you receive an error
Set-AzHDInsightPersistedScriptAction -ClusterName mycluster `
    -ScriptExecutionId 635920937765978529

# Demote the script back to ad hoc
# Note that demotion uses the unique script name instead of
# execution ID.
Remove-AzHDInsightPersistedScriptAction -ClusterName mycluster `
    -Name "Install Giraph"

Klasik Azure CLıThe Azure classic CLI

cmdletcmdlet İşlevFunction
azure hdinsight script-action persisted list <clustername> Kalıcı betik eylemlerinin bir listesini alın.Retrieve a list of persisted script actions.
azure hdinsight script-action persisted show <clustername> <scriptname> Belirli bir kalıcı betik eylemiyle ilgili bilgileri alın.Retrieve information on a specific persisted script action.
azure hdinsight script-action history list <clustername> Kümeye uygulanan betik eylemlerinin geçmişini alın.Retrieve a history of script actions applied to the cluster.
azure hdinsight script-action history show <clustername> <scriptname> Belirli bir betik eylemiyle ilgili bilgileri alın.Retrieve information on a specific script action.
azure hdinsight script action persisted set <clustername> <scriptexecutionid> Geçici betik eylemini kalıcı betik eylemine yükseltin.Promote an ad hoc script action to a persisted script action.
azure hdinsight script-action persisted delete <clustername> <scriptname> Kalıcı bir betik eylemini geçici bir eyleme indirgeyin.Demote a persisted script action to an ad hoc action.

Önemli

azure hdinsight script-action persisted delete, bir komut dosyası tarafından gerçekleştirilen eylemleri geri almaz.azure hdinsight script-action persisted delete doesn't undo the actions performed by a script. Bu cmdlet yalnızca kalıcı bayrağını kaldırır.This cmdlet only removes the persisted flag.

HDInsight .NET SDK 'SıThe HDInsight .NET SDK

.NET SDK kullanarak bir kümeden betik geçmişi alma, betikleri yükseltme veya indirgeme hakkında bir örnek için bkz. çalışan bir Linux tabanlı HDInsight kümesine karşı betik eylemi uygulama.For an example of using the .NET SDK to retrieve script history from a cluster, promote or demote scripts, see Apply a Script Action against a running Linux-based HDInsight cluster.

Not

Bu örnek ayrıca, .NET SDK kullanarak bir HDInsight uygulamasının nasıl yükleneceğini gösterir.This example also demonstrates how to install an HDInsight application by using the .NET SDK.

HDInsight kümelerinde kullanılan açık kaynaklı yazılım desteğiSupport for open-source software used on HDInsight clusters

Microsoft Azure HDInsight hizmeti Apache Hadoop etrafında oluşturulmuş açık kaynaklı teknolojilerin ekosistemini kullanır.The Microsoft Azure HDInsight service uses an ecosystem of open-source technologies formed around Apache Hadoop. Microsoft Azure, açık kaynaklı teknolojiler için genel bir destek düzeyi sağlar.Microsoft Azure provides a general level of support for open-source technologies. Daha fazla bilgi için Azure desteği SSSkonusunun Destek kapsamı bölümüne bakın.For more information, see the Support Scope section of Azure Support FAQs. HDInsight hizmeti, yerleşik bileşenler için ek bir destek düzeyi sağlar.The HDInsight service provides an additional level of support for built-in components.

HDInsight hizmetinde iki tür açık kaynaklı bileşen mevcuttur:Two types of open-source components are available in the HDInsight service:

Uyarı

HDInsight kümesiyle birlikte sunulan bileşenler tam olarak desteklenmektedir.Components provided with the HDInsight cluster are fully supported. Microsoft Desteği, bu bileşenlerle ilgili sorunları yalıtmaya ve çözmeye yardımcı olur.Microsoft Support helps to isolate and resolve issues related to these components.

Özel bileşenler, sorunu gidermeye yardımcı olmak için ticari açıdan makul destek alır.Custom components receive commercially reasonable support to help you further troubleshoot the issue. Microsoft Desteği sorunu çözebiliyor olabilir.Microsoft Support might be able to resolve the issue. Ya da bu teknoloji için derin uzmanlığın bulunduğu açık kaynaklı teknolojiler için kullanılabilir kanalları da sunmanız istenebilir.Or they might ask you to engage available channels for the open-source technologies where deep expertise for that technology is found. Birçok topluluk sitesi kullanılabilir.Many community sites can be used. HDInsight ve Stack Overflow için MSDN Forumu örnekleri aşağıda verilmiştir.Examples are MSDN forum for HDInsight and Stack Overflow.

Apache projelerinde Ayrıca, Apache Web sitesindeproje siteleri de vardır.Apache projects also have project sites on the Apache website. Hadoopbir örnektir.An example is Hadoop.

HDInsight hizmeti özel bileşenleri kullanmak için çeşitli yollar sağlar.The HDInsight service provides several ways to use custom components. Aynı destek düzeyi, bir bileşenin küme üzerinde nasıl kullanıldığını veya yüklendiğine bakılmaksızın geçerlidir.The same level of support applies, no matter how a component is used or installed on the cluster. Aşağıdaki listede, HDInsight kümelerinde özel bileşenlerin kullanıldığı en yaygın yollar açıklanmaktadır:The following list describes the most common ways that custom components are used on HDInsight clusters:

  1. İş gönderme.Job submission. Hadoop veya özel bileşenleri çalıştıran veya kullanan diğer iş türleri de kümeye gönderilebilir.Hadoop or other types of jobs that execute or use custom components can be submitted to the cluster.

  2. Küme özelleştirmesi.Cluster customization. Küme oluşturma sırasında, küme düğümlerinde yüklü ek ayarları ve özel bileşenleri belirtebilirsiniz.During cluster creation, you can specify additional settings and custom components that are installed on the cluster nodes.

  3. Örnekler.Samples. Popüler özel bileşenlerde, Microsoft ve diğerleri bu bileşenlerin HDInsight kümelerinde nasıl kullanılabileceği hakkında örnekler sağlayabilir.For popular custom components, Microsoft and others might provide samples of how these components can be used on HDInsight clusters. Bu örnekler destek olmadan sağlanır.These samples are provided without support.

Sorun gidermeTroubleshooting

Betik eylemleri tarafından günlüğe kaydedilen bilgileri görüntülemek için, ambarı Web Kullanıcı arabirimini kullanabilirsiniz.You can use the Ambari web UI to view information logged by script actions. Küme oluşturma sırasında betik başarısız olursa Günlükler, kümeyle ilişkili varsayılan depolama hesabında da kullanılabilir.If the script fails during cluster creation, the logs are also available in the default storage account associated with the cluster. Bu bölümde, bu seçeneklerin her ikisi de kullanılarak günlüklerin nasıl alınacağını gösteren bilgiler sağlanmaktadır.This section provides information on how to retrieve the logs by using both these options.

Apache ambarı Web Kullanıcı arabirimiThe Apache Ambari web UI

  1. Tarayıcınızda https://CLUSTERNAME.azurehdinsight.net adresine gidin.In your browser, go to https://CLUSTERNAME.azurehdinsight.net. CLUSTERNAME değerini HDInsight kümenizin adıyla değiştirin.Replace CLUSTERNAME with the name of your HDInsight cluster.

    İstendiğinde, küme için yönetici hesap adı, yöneticive parolayı girin.When prompted, enter the admin account name, admin, and password for the cluster. Yönetici kimlik bilgilerini bir Web formunda yeniden girmeniz gerekebilir.You might have to reenter the admin credentials in a web form.

  2. Sayfanın üst kısmındaki çubuktan Ops girişini seçin.From the bar at the top of the page, select the ops entry. Bir liste, ambarı aracılığıyla kümede yapılan geçerli ve önceki işlemleri görüntüler.A list displays current and previous operations done on the cluster through Ambari.

    Ops seçiliyken ambarı Web UI çubuğu

  3. İşlemler sütununda customscriptaction_çalıştıran girişleri bulun.Find the entries that have run_customscriptaction in the Operations column. Bu girişler, betik eylemleri çalıştırıldığında oluşturulur.These entries are created when the script actions run.

    Apache ambarı betik eylem işlemleri

    Stdout ve stderr çıkışını görüntülemek için run\customscriptaction girişini seçin ve bağlantılar aracılığıyla detaya gidin.To view the STDOUT and STDERR output, select the run\customscriptaction entry and drill down through the links. Bu çıktı, komut dosyası çalıştırıldığında üretilir ve yararlı bilgiler içerebilir.This output is generated when the script runs and might have useful information.

Varsayılan depolama hesabındaki günlüklere erişinAccess logs from the default storage account

Küme oluşturma bir betik hatası nedeniyle başarısız olursa Günlükler küme depolama hesabında tutulur.If cluster creation fails because of a script error, the logs are kept in the cluster storage account.

  • Depolama günlükleri \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATEadresinden kullanılabilir.The storage logs are available at \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE.

    Betik eylemi günlükleri

    Bu dizin altında Günlükler, baş düğümüne, çalışan düğümüve Zookeeper düğümüiçin ayrı olarak düzenlenir.Under this directory, the logs are organized separately for headnode, worker node, and zookeeper node. Aşağıdaki örneklere bakın:See the following examples:

    • Headnode: <ACTIVE-HEADNODE-NAME>.cloudapp.netHeadnode: <ACTIVE-HEADNODE-NAME>.cloudapp.net

    • Çalışan düğümü: <ACTIVE-WORKERNODE-NAME>.cloudapp.netWorker node: <ACTIVE-WORKERNODE-NAME>.cloudapp.net

    • Zookeeper düğümü: <ACTIVE-ZOOKEEPERNODE-NAME>.cloudapp.netZookeeper node: <ACTIVE-ZOOKEEPERNODE-NAME>.cloudapp.net

  • Karşılık gelen konağın tüm stdout ve stderr depolama hesabına yüklenir.All stdout and stderr of the corresponding host is uploaded to the storage account. Her betik eylemi için bir output-*. txt ve Errors-*. txt .There's one output-*.txt and errors-*.txt for each script action. Output-*. txt dosyası, konakta çalıştırılan betiğin URI 'si hakkında bilgiler içerir.The output-*.txt file contains information about the URI of the script that was run on the host. Aşağıdaki metin bu bilgilere bir örnektir:The following text is an example of this information:

      'Start downloading script locally: ', u'https://hdiconfigactions.blob.core.windows.net/linuxrconfigactionv01/r-installer-v01.sh'
    
  • Yinelenen olarak aynı ada sahip bir betik eylemi kümesi oluşturmanız mümkündür.It's possible that you repeatedly create a script action cluster with the same name. Bu durumda, ilgili günlükleri Tarih klasörü adı temelinde ayırabilirsiniz.In that case, you can distinguish the relevant logs based on the DATE folder name. Örneğin, bir kümenin klasör yapısı, farklı tarihlerde oluşturulan MyCluster, aşağıdaki günlük girdilerine benzer şekilde görünür:For example, the folder structure for a cluster, mycluster, created on different dates appears similar to the following log entries:

    \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-04 \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-05\STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-04 \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-05

  • Aynı günde aynı ada sahip bir betik eylemi kümesi oluşturursanız, ilgili günlük dosyalarını tanımlamak için benzersiz öneki kullanabilirsiniz.If you create a script action cluster with the same name on the same day, you can use the unique prefix to identify the relevant log files.

  • Gece yarısı 12:00 ' de bir küme oluşturursanız, günlük dosyalarının iki gün boyunca yayılması olasıdır.If you create a cluster near 12:00 AM, midnight, it's possible that the log files span across two days. Bu durumda, aynı küme için iki farklı tarih klasörü görürsünüz.In that case, you see two different date folders for the same cluster.

  • Günlük dosyalarını varsayılan kapsayıcıya yüklemek, özellikle büyük kümeler için beş dakikaya kadar sürebilir.Uploading log files to the default container can take up to five minutes, especially for large clusters. Bu nedenle, günlüklere erişmek istiyorsanız, bir betik eylemi başarısız olursa kümeyi hemen silmelisiniz.So if you want to access the logs, you shouldn't immediately delete the cluster if a script action fails.

Ambarı izlemeAmbari watchdog

Uyarı

Hdinsightwatchdog, Linux tabanlı HDInsight kümenizdeki ambarı izleme, için parolayı değiştirmeyin.Don't change the password for the Ambari watchdog, hdinsightwatchdog, on your Linux-based HDInsight cluster. Bu hesabın parolasının değiştirilmesi, HDInsight kümesinde yeni betik eylemleri çalıştırma yeteneğini keser.Changing the password for this account breaks the ability to run new script actions on the HDInsight cluster.

BlobService adı içeri aktarılamıyorCan't import name BlobService

Belirtiler.Symptoms. Betik eylemi başarısız olur.The script action fails. Aşağıdaki hata gibi metinler, ambarı 'nda işlemi görüntülediğinizde görüntülenir:Text similar to the following error displays when you view the operation in Ambari:

Traceback (most recent call list):
  File "/var/lib/ambari-agent/cache/custom_actions/scripts/run_customscriptaction.py", line 21, in <module>
    from azure.storage.blob import BlobService
ImportError: cannot import name BlobService

Neden.Cause. Bu hata, HDInsight kümesine dahil edilen Python Azure depolama istemcisini yükseltirseniz oluşur.This error occurs if you upgrade the Python Azure Storage client that's included with the HDInsight cluster. HDInsight, Azure Storage Client 0.20.0 gerektirir.HDInsight expects Azure Storage client 0.20.0.

Çözümleme.Resolution. Bu hatayı çözmek için sshkullanarak her bir küme düğümüne el ile bağlanın.To resolve this error, manually connect to each cluster node by using ssh. Doğru depolama istemci sürümünü yeniden yüklemek için aşağıdaki komutu çalıştırın:Run the following command to reinstall the correct storage client version:

sudo pip install azure-storage==0.20.0

SSH ile kümeye bağlanma hakkında daha fazla bilgi için bkz. SSH kullanarak HDInsight 'a (Apache Hadoop) bağlanma.For information on connecting to the cluster with SSH, see Connect to HDInsight (Apache Hadoop) by using SSH.

Geçmiş, küme oluşturma sırasında kullanılan betikleri göstermiyorHistory doesn't show the scripts used during cluster creation

Kümeniz 15 Mart 2016 ' den önce oluşturulduysa, betik eylemi geçmişinde bir giriş görmeyebilirsiniz.If your cluster was created before March 15, 2016, you might not see an entry in script action history. Kümenin yeniden boyutlandırılması, betiklerin betik eylemi geçmişinde görünmesine neden olur.Resizing the cluster causes the scripts to appear in script action history.

İki istisna mevcuttur:There are two exceptions:

  • Kümeniz 1 Eylül 2015 ' den önce oluşturulmuştur.Your cluster was created before September 1, 2015. Bu tarih, betik eylemlerinin tanıtılmasından yapılır.This date is when script actions were introduced. Bu tarihten önce oluşturulan herhangi bir küme, küme oluşturma için betik eylemlerini kullanamadı.Any cluster created before this date couldn't have used script actions for cluster creation.

  • Küme oluşturma sırasında birden çok betik eylemi kullandınız.You used multiple script actions during cluster creation. Ya da birden çok komut dosyası için aynı adı, aynı URI 'yi, ancak birden çok komut dosyası için farklı parametreleri kullandınız.Or you used the same name for multiple scripts or the same name, same URI, but different parameters for multiple scripts. Bu durumlarda, şu hatayı alırsınız:In these cases, you get the following error:

    Mevcut betiklerde çakışan betik adları nedeniyle bu kümede yeni betik eylemleri çalıştırılamıyor.No new script actions can be run on this cluster because of conflicting script names in existing scripts. Küme oluşturulurken belirtilen betik adları benzersiz olmalıdır.Script names provided at cluster creation must be all unique. Mevcut betikler yeniden boyutlandırmayla çalıştırılır.Existing scripts are run on resize.

Sonraki adımlarNext steps