Dostosowywanie klastrów usługi Azure HDInsight za pomocą akcji skryptuCustomize Azure HDInsight clusters by using script actions

Usługa Azure HDInsight udostępnia metodę konfiguracji o nazwie Akcje skryptu , które wywołuje niestandardowe skrypty w celu dostosowania klastra.Azure HDInsight provides a configuration method called script actions that invokes custom scripts to customize the cluster. Skrypty te służą do instalowania dodatkowych składników i zmieniania ustawień konfiguracji.These scripts are used to install additional components and change configuration settings. Akcji skryptu można używać podczas tworzenia klastra lub po nim.Script actions can be used during or after cluster creation.

Akcje skryptu można również publikować w portalu Azure Marketplace jako aplikację usługi HDInsight.Script actions can also be published to the Azure Marketplace as an HDInsight application. Aby uzyskać więcej informacji na temat aplikacji HDInsight, zobacz publikowanie aplikacji usługi HDInsight w portalu Azure Marketplace.For more information on HDInsight applications, see Publish an HDInsight application in the Azure Marketplace.

UprawnieniaPermissions

W przypadku klastra usługi HDInsight przyłączonego do domeny istnieją dwa uprawnienia Apache Ambari, które są wymagane w przypadku korzystania z akcji skryptów w klastrze:For a domain-joined HDInsight cluster, there are two Apache Ambari permissions that are required when you use script actions with the cluster:

  • AMBARI. Uruchom @ no__t-1CUSTOM @ no__t-2COMMAND.AMBARI.RUN_CUSTOM_COMMAND. To uprawnienie jest domyślnie objęte rolą administratora Ambari.The Ambari Administrator role has this permission by default.
  • Klaster. Uruchom @ no__t-1CUSTOM @ no__t-2COMMAND.CLUSTER.RUN_CUSTOM_COMMAND. Zarówno administrator klastra usługi HDInsight, jak i administrator Ambari domyślnie mają to uprawnienie.Both the HDInsight Cluster Administrator and Ambari Administrator have this permission by default.

Aby uzyskać więcej informacji na temat pracy z uprawnieniami w usłudze HDInsight przyłączonych do domeny, zobacz Zarządzanie klastrami usługi HDInsight przy użyciu pakiet Enterprise Security.For more information on working with permissions with domain-joined HDInsight, see Manage HDInsight clusters with Enterprise Security Package.

Kontrola dostępuAccess control

Jeśli nie jesteś administratorem ani właścicielem subskrypcji platformy Azure, Twoje konto musi mieć co najmniej dostęp współautora do grupy zasobów zawierającej klaster usługi HDInsight.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.

Jeśli utworzysz klaster usługi HDInsight, osoba mająca co najmniej dostęp współautora do subskrypcji platformy Azure musi mieć wcześniej zarejestrowaną dostawcę usług HDInsight.If you create an HDInsight cluster, someone with at least Contributor access to the Azure subscription must have previously registered the provider for HDInsight. Rejestracja zasobu ma miejsce, gdy użytkownik o roli Współautor z dostępem do subskrypcji tworzy zasób po raz pierwszy w subskrypcji.Provider registration happens when a user with Contributor access to the subscription creates a resource for the first time on the subscription. Można to zrobić również bez tworzenia zasobu, jeśli dostawca jest rejestrowany przy użyciu REST.It can also be done without creating a resource if you register a provider by using REST.

Uzyskaj więcej informacji na temat pracy z zarządzaniem dostępem:Get more information on working with access management:

Opis akcji skryptuUnderstand script actions

Akcja skryptu to skrypt bash, który działa w węzłach klastra usługi HDInsight.A script action is Bash script that runs on the nodes in an HDInsight cluster. Właściwości i funkcje skryptu są następujące:Characteristics and features of script actions are as follows:

  • Musi być przechowywany w identyfikatorze URI dostępnym z klastra usługi HDInsight.Must be stored on a URI that's accessible from the HDInsight cluster. Możliwe są następujące lokalizacje magazynu:The following are possible storage locations:

    • W przypadku regularnych klastrów:For regular clusters:

      • ADLS Gen1: główna Usługa HDInsight używa do uzyskiwania dostępu do Data Lake Storage musi mieć dostęp do odczytu do skryptu.ADLS Gen1: The service principal HDInsight uses to access Data Lake Storage must have read access to the script. Format identyfikatora URI dla skryptów przechowywanych w Data Lake Storage Gen1 jest 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.

      • Obiekt BLOB na koncie magazynu platformy Azure, który jest podstawowym lub dodatkowym kontem magazynu dla klastra usługi HDInsight.A blob in an Azure Storage account that's either the primary or additional storage account for the HDInsight cluster. Usługa HDInsight ma dostęp do obu typów kont magazynu podczas tworzenia klastra.HDInsight is granted access to both of these types of storage accounts during cluster creation.

        Ważne

        Nie obracaj klucza magazynu na tym koncie usługi Azure Storage, ponieważ spowoduje to, że kolejne akcje skryptu z zapisanymi skryptami nie powiodą się.Do not rotate the storage key on this Azure Storage account, as it will cause subsequent script actions with scripts stored there to fail.

      • Publiczna usługa udostępniania plików dostępna za pomocą ścieżek http://.A public file-sharing service accessible through http:// paths. Przykłady to Azure Blob, GitHub, OneDrive.Examples are Azure Blob, GitHub, OneDrive.

        Przykładowo identyfikatory URI, zobacz przykładowe skrypty akcji skryptu.For example URIs, see Example script action scripts.

    • W przypadku klastrów z partycją ESP:For clusters with ESP:

      • Obsługiwane są wasb://lub wasbs://lub http [s]://URI.The wasb:// or wasbs:// or http[s]:// URIs are supported.
  • Mogą być ograniczone do uruchamiania tylko dla określonych typów węzłów.Can be restricted to run on only certain node types. Przykłady to węzły główne lub węzły procesu roboczego.Examples are head nodes or worker nodes.

  • Mogą być utrwalone lub ad hoc.Can be persisted or ad hoc.

    Utrwalone skrypty są używane do dostosowywania nowych węzłów procesu roboczego dodanych do klastra za pomocą operacji skalowania.Persisted scripts are used to customize new worker nodes added to the cluster through scaling operations. Utrwalony skrypt może również zastosować zmiany do innego typu węzła w przypadku wystąpienia operacji skalowania.A persisted script might also apply changes to another node type when scaling operations occur. Przykładem jest węzeł główny.An example is a head node.

    Ważne

    Akcje utrwalonego skryptu muszą mieć unikatową nazwę.Persisted script actions must have a unique name.

    Skrypty ad hoc nie są utrwalane.Ad hoc scripts aren't persisted. Nie są one stosowane do węzłów procesu roboczego dodanych do klastra po uruchomieniu skryptu.They aren't applied to worker nodes added to the cluster after the script has run. Następnie można podwyższyć poziom skryptu ad hoc do utrwalonego skryptu lub obniżyć utrwalony skrypt do skryptu ad hoc.Then you can promote an ad hoc script to a persisted script or demote a persisted script to an ad hoc script.

    Ważne

    Akcje skryptu używane podczas tworzenia klastra są automatycznie utrwalane.Script actions used during cluster creation are automatically persisted.

    Skrypty, które nie są utrwalane, nawet jeśli wskazują, że powinny być.Scripts that fail aren't persisted, even if you specifically indicate that they should be.

  • Może akceptować parametry, które są używane przez skrypt podczas wykonywania.Can accept parameters that are used by the script during execution.

  • Uruchom z uprawnieniami poziomu głównego w węzłach klastra.Run with root-level privileges on the cluster nodes.

  • Może być używany w ramach Azure Portal, Azure PowerShell, klasycznego interfejsu wiersza polecenia platformy Azure lub zestawu .NET SDK usługi HDInsight.Can be used through the Azure portal, Azure PowerShell, the Azure classic CLI, or the HDInsight .NET SDK.

Klaster przechowuje historię wszystkich uruchomionych skryptów.The cluster keeps a history of all scripts that have been run. Historia jest pomocna w przypadku konieczności znalezienia identyfikatora skryptu dla operacji podwyższania lub obniżania poziomu.The history helps when you need to find the ID of a script for promotion or demotion operations.

Ważne

Nie ma automatycznej metody cofania zmian dokonanych przez akcję skryptu.There's no automatic way to undo the changes made by a script action. Ręcznie odwrócić zmiany lub podaj skrypt, który go odwraca.Either manually reverse the changes or provide a script that reverses them.

Akcja skryptu w procesie tworzenia klastraScript action in the cluster creation process

Akcje skryptu używane podczas tworzenia klastra są nieco inne niż akcje skryptu uruchamiane w istniejącym klastrze:Script actions used during cluster creation are slightly different from script actions run on an existing cluster:

  • Skrypt jest automatycznie utrwalany.The script is automatically persisted.

  • Awaria skryptu może spowodować niepowodzenie procesu tworzenia klastra.A failure in the script can cause the cluster creation process to fail.

Na poniższym diagramie przedstawiono, kiedy Akcja skryptu jest uruchamiana podczas procesu tworzenia:The following diagram illustrates when script action runs during the creation process:

Dostosowywanie i etapy klastra usługi HDInsight podczas tworzenia klastraHDInsight cluster customization and stages during cluster creation

Skrypt jest uruchamiany podczas konfigurowania usługi HDInsight.The script runs while HDInsight is being configured. Skrypt jest uruchamiany równolegle na wszystkich określonych węzłach w klastrze.The script runs in parallel on all the specified nodes in the cluster. Jest on uruchamiany z uprawnieniami głównymi w węzłach.It runs with root privileges on the nodes.

Uwaga

Można wykonywać operacje, takie jak zatrzymywanie i uruchamianie usług, w tym usługi związane z Apache Hadoop.You can perform operations like stopping and starting services, including Apache Hadoop-related services. Jeśli zatrzymasz usługi, upewnij się, że usługa Ambari i inne usługi związane z usługą Hadoop są uruchomione przed zakończeniem działania skryptu.If you stop services, make sure that the Ambari service and other Hadoop-related services are running before the script finishes. Te usługi są wymagane, aby pomyślnie określić kondycję i stan klastra podczas jego tworzenia.These services are required to successfully determine the health and state of the cluster while it's being created.

Podczas tworzenia klastra można używać wielu akcji skryptów jednocześnie.During cluster creation, you can use many script actions at once. Te skrypty są wywoływane w kolejności, w jakiej zostały określone.These scripts are invoked in the order in which they were specified.

Ważne

Akcje skryptu muszą zakończyć się w ciągu 60 minut lub przekroczyć limit czasu. Podczas aprowizacji klastra skrypt jest uruchamiany współbieżnie z innymi procesami instalacji i konfiguracji.Script actions must finish within 60 minutes, or they time out. During cluster provisioning, the script runs concurrently with other setup and configuration processes. Konkurencja zasobów, takich jak czas procesora CPU lub przepustowość sieci, może spowodować, że wykonanie skryptu trwa dłużej niż w środowisku deweloperskim.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.

Aby zminimalizować czas potrzebny na uruchomienie skryptu, należy unikać zadań, takich jak pobieranie i kompilowanie aplikacji ze źródła.To minimize the time it takes to run the script, avoid tasks like downloading and compiling applications from the source. Wstępne Kompilowanie aplikacji i przechowywanie plików binarnych w usłudze Azure Storage.Precompile applications and store the binary in Azure Storage.

Akcja skryptu w uruchomionym klastrzeScript action on a running cluster

Błąd w skrypcie uruchomionym na już uruchomionym klastrze nie powoduje automatycznego zmiany stanu klastra na uszkodzony.A failure in a script run on an already running cluster doesn't automatically cause the cluster to change to a failed state. Po zakończeniu działania skryptu klaster powinien powrócić do stanu uruchomienia.After a script finishes, the cluster should return to a running state.

Ważne

Nawet jeśli klaster ma stan uruchomiony, uszkodzony skrypt może być uszkodzony.Even if the cluster has a running state, the failed script might have broken things. Na przykład skrypt może usunąć pliki potrzebne przez klaster.For example, a script might delete files needed by the cluster.

Akcje skryptów są uruchamiane z uprawnieniami głównymi.Scripts actions run with root privileges. Upewnij się, że rozumiesz, co skrypt wykonuje przed zastosowaniem go do klastra.Make sure that you understand what a script does before you apply it to your cluster.

Po zastosowaniu skryptu do klastra stan klastra zmienia się z uruchomione na zaakceptowane.When you apply a script to a cluster, the cluster state changes from Running to Accepted. Następnie zmieni się on na Konfiguracja usługi HDInsight , a wreszcie ponownie, aby uruchomić skrypty.Then it changes to HDInsight configuration and, finally, back to Running for successful scripts. Stan skryptu jest rejestrowany w historii akcji skryptu.The script status is logged in the script action history. Te informacje informują o tym, czy skrypt zakończył się powodzeniem, czy niepowodzeniem.This information tells you whether the script succeeded or failed. Na przykład polecenie cmdlet programu PowerShell Get-AzHDInsightScriptActionHistory wyświetla stan skryptu.For example, the Get-AzHDInsightScriptActionHistory PowerShell cmdlet shows the status of a script. Zwraca informacje podobne do następującego tekstu: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

Ważne

W przypadku zmiany użytkownika klastra, administratora, hasła po utworzeniu klastra akcje skryptu uruchamiane względem tego klastra mogą zakończyć się niepowodzeniem.If you change the cluster user, admin, password after the cluster is created, script actions run against this cluster might fail. Jeśli masz jakiekolwiek akcje utrwalonego skryptu, które są przeznaczone dla węzłów procesu roboczego, te skrypty mogą kończyć się niepowodzeniem podczas skalowania klastra.If you have any persisted script actions that target worker nodes, these scripts might fail when you scale the cluster.

Przykładowe skrypty akcji skryptuExample script action scripts

Skrypty akcji skryptu mogą być używane w następujących narzędziach:Script action scripts can be used through the following utilities:

  • Witryna Azure PortalThe Azure portal
  • Program Azure PowerShellAzure PowerShell
  • Klasyczny interfejs wiersza polecenia platformy AzureThe Azure classic CLI
  • Zestaw SDK HDInsight An .NETAn HDInsight .NET SDK

Usługa HDInsight udostępnia skrypty umożliwiające zainstalowanie następujących składników w klastrach usługi HDInsight:HDInsight provides scripts to install the following components on HDInsight clusters:

NazwaName SkryptScript
Dodawanie konta usługi Azure StorageAdd 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. Zobacz Dodawanie dodatkowych kont magazynu do usługi HDInsight.See Add additional storage accounts to HDInsight.
Instalowanie rozwiązania HueInstall 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. Zobacz Instalowanie i używanie odcienia w klastrach usługi HDInsight Hadoop.See Install and use Hue on HDInsight Hadoop clusters.
Zainstaluj GiraphInstall Giraph https://hdiconfigactions.blob.core.windows.net/linuxgiraphconfigactionv01/giraph-installer-v01.sh.https://hdiconfigactions.blob.core.windows.net/linuxgiraphconfigactionv01/giraph-installer-v01.sh. Zobacz Instalowanie oprogramowania Apache Giraph w klastrach usługi HDInsight Hadoop.See Install Apache Giraph on HDInsight Hadoop clusters.
Wstępne ładowanie bibliotek HivePreload Hive libraries https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v01.sh.https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v01.sh. Zobacz Dodawanie niestandardowych bibliotek Apache Hive podczas tworzenia klastra usługi HDInsight.See Add custom Apache Hive libraries when creating your HDInsight cluster.

Używanie akcji skryptu podczas tworzenia klastraUse a script action during cluster creation

W tej sekcji opisano różne sposoby używania akcji skryptu podczas tworzenia klastra usługi HDInsight.This section explains the different ways you can use script actions when you create an HDInsight cluster.

Użyj akcji skryptu podczas tworzenia klastra z Azure PortalUse a script action during cluster creation from the Azure portal

  1. Rozpocznij tworzenie klastra zgodnie z opisem w temacie Tworzenie klastrów opartych na systemie Linux w usłudze HDInsight przy użyciu Azure Portal.Start to create a cluster as described in Create Linux-based clusters in HDInsight by using the Azure portal. Podczas tworzenia klastra docieramy do kroku 6, Akcje skryptu.During cluster creation, you arrive at step 6, Script actions. Przejdź do opcjonalnego > + Prześlij nowy.Navigate to Optional > + Submit new.

    Akcja skryptu Azure Portal klastra

  2. Użyj wpisu skryptu , aby wybrać utworzony skrypt.Use the Select a script entry to select a premade script. Aby użyć niestandardowego skryptu, wybierz opcję niestandardowy.To use a custom script, select Custom. Podaj nazwę i Identyfikator URI skryptu bash dla skryptu.Then provide the Name and Bash script URI for your script.

    Dodawanie skryptu w formularzu wybierania skryptu

    W poniższej tabeli opisano elementy w formularzu:The following table describes the elements on the form:

    WłaściwośćProperty WartośćValue
    Wybierz skryptSelect a script Aby użyć własnego skryptu, wybierz opcję niestandardowy.To use your own script, select Custom. W przeciwnym razie wybierz jeden z podanych skryptów.Otherwise, select one of the provided scripts.
    NazwaName Określ nazwę akcji skryptu.Specify a name for the script action.
    Identyfikator URI skryptu bashBash script URI Określ identyfikator URI skryptu.Specify the URI of the script.
    Kierownik/proces roboczy/dozorcyHead/Worker/ZooKeeper Określ węzły, w których skrypt jest uruchamiany: główna, proces roboczylub dozorcy.Specify the nodes on which the script is run: Head, Worker, or ZooKeeper.
    ParametryParameters Określ parametry, jeśli są wymagane przez skrypt.Specify the parameters, if required by the script.

    Aby upewnić się, że skrypt jest stosowany podczas operacji skalowania, należy użyć wpisu akcji Utrwalaj ten skrypt .Use the Persist this script action entry to make sure that the script is applied during scaling operations.

  3. Wybierz pozycję Utwórz , aby zapisać skrypt.Select Create to save the script. Następnie możesz użyć + Prześlij nowy , aby dodać kolejny skrypt.Then you can use + Submit new to add another script.

    Operacje wielu skryptów usługi HDInsight

    Po zakończeniu dodawania skryptów wybierz przycisk Wybierz , a następnie kliknij przycisk dalej , aby przejść do sekcji Podsumowanie klastra .When you're done adding scripts, select the Select button and then the Next button to continue to the Cluster summary section.

  4. Aby utworzyć klaster, wybierz pozycję Utwórz na podstawie podsumowania klastra .To create the cluster, select Create from the Cluster summary selection.

Używanie akcji skryptu z szablonów Azure Resource ManagerUse a script action from Azure Resource Manager templates

Akcji skryptu można używać z szablonami Azure Resource Manager.Script actions can be used with Azure Resource Manager templates. Aby zapoznać się z przykładem, zobacz Tworzenie klastra usługi HDInsight w systemie Linux i uruchamianie akcji skryptu.For an example, see Create HDInsight Linux Cluster and run a script action.

W tym przykładzie akcja skryptu jest dodawana przy użyciu następującego kodu:In this example, the script action is added by using the following code:

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

Uzyskaj więcej informacji na temat wdrażania szablonu:Get more information on how to deploy a template:

Użyj akcji skryptu podczas tworzenia klastra z Azure PowerShellUse a script action during cluster creation from Azure PowerShell

W tej sekcji należy użyć polecenia cmdlet Add-AzHDInsightScriptAction w celu wywołania skryptów w celu dostosowania klastra.In this section, you use the Add-AzHDInsightScriptAction cmdlet to invoke scripts to customize a cluster. Przed rozpoczęciem upewnij się, że zainstalowano i skonfigurowano Azure PowerShell.Before you start, make sure you install and configure Azure PowerShell. Aby można było używać tych poleceń programu PowerShell, należy użyć polecenia AZ module.To use these PowerShell commands, you need the AZ Module.

Uwaga

Ten artykuł został zaktualizowany o korzystanie z nowego modułu Azure PowerShell Az.This article has been updated to use the new Azure PowerShell Az module. Nadal możesz używać modułu AzureRM, który będzie nadal otrzymywać poprawki błędów do co najmniej grudnia 2020 r.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Aby dowiedzieć się więcej na temat nowego modułu Az i zgodności z modułem AzureRM, zobacz Wprowadzenie do nowego modułu Az programu Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Aby uzyskać instrukcje dotyczące instalacji modułu Az, zobacz Instalowanie programu Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Poniższy skrypt pokazuje, jak zastosować akcję skryptu podczas tworzenia klastra przy użyciu programu PowerShell: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

Utworzenie klastra może potrwać kilka minut.It can take several minutes before the cluster is created.

Używanie akcji skryptu podczas tworzenia klastra z poziomu zestawu .NET SDK usługi HDInsightUse a script action during cluster creation from the HDInsight .NET SDK

Zestaw SDK platformy .NET dla usługi HDInsight zawiera biblioteki klienckie, które ułatwiają pracę z usługą HDInsight z poziomu aplikacji .NET.The HDInsight .NET SDK provides client libraries that make it easier to work with HDInsight from a .NET application. Aby uzyskać przykład kodu, zobacz Tworzenie klastrów opartych na systemie Linux w usłudze HDInsight przy użyciu zestawu .NET SDK.For a code sample, see Create Linux-based clusters in HDInsight by using the .NET SDK.

Zastosuj akcję skryptu do działającego klastraApply a script action to a running cluster

W tej sekcji wyjaśniono, jak zastosować akcje skryptu do działającego klastra.This section explains how to apply script actions to a running cluster.

Zastosuj akcję skryptu do działającego klastra z Azure PortalApply a script action to a running cluster from the Azure portal

Przejdź do Azure Portal:Go to the Azure portal:

  1. W menu po lewej stronie przejdź do wszystkich usług > Analytics > HDInsight klastrów.From the left menu, navigate to All services > Analytics > HDInsight clusters.

  2. Wybierz z listy klaster, który otworzy widok domyślny.Select your cluster from the list, which opens the default view.

  3. W widoku domyślnym w obszarze Ustawieniawybierz pozycję Akcje skryptu.From the default view, under Settings, select Script actions.

  4. W górnej części strony Akcje skryptu wybierz pozycję + Prześlij nowy.From the top of the Script actions page, select + Submit new.

    Dodawanie skryptu do działającego klastra

  5. Użyj wpisu skryptu , aby wybrać utworzony skrypt.Use the Select a script entry to select a premade script. Aby użyć niestandardowego skryptu, wybierz opcję niestandardowy.To use a custom script, select Custom. Podaj nazwę i Identyfikator URI skryptu bash dla skryptu.Then provide the Name and Bash script URI for your script.

    Dodawanie skryptu w formularzu wybierania skryptu

    W poniższej tabeli opisano elementy w formularzu:The following table describes the elements on the form:

    WłaściwośćProperty WartośćValue
    Wybierz skryptSelect a script Aby użyć własnego skryptu, wybierz opcję niestandardowy.To use your own script, select custom. W przeciwnym razie wybierz podany skrypt.Otherwise, select a provided script.
    NazwaName Określ nazwę akcji skryptu.Specify a name for the script action.
    Identyfikator URI skryptu bashBash script URI Określ identyfikator URI skryptu.Specify the URI of the script.
    Kierownik/proces roboczy/dozorcyHead/Worker/Zookeeper Określ węzły, w których skrypt jest uruchamiany: główna, proces roboczylub dozorcy.Specify the nodes on which the script is run: Head, Worker, or ZooKeeper.
    ParametryParameters Określ parametry, jeśli są wymagane przez skrypt.Specify the parameters, if required by the script.

    Użyj wpisu Akcja Utrwalaj ten skrypt , aby upewnić się, że skrypt jest stosowany podczas operacji skalowania.Use the Persist this script action entry to make sure the script is applied during scaling operations.

  6. Na koniec wybierz przycisk Utwórz , aby zastosować skrypt do klastra.Finally, select the Create button to apply the script to the cluster.

Zastosuj akcję skryptu do działającego klastra z Azure PowerShellApply a script action to a running cluster from Azure PowerShell

Aby można było używać tych poleceń programu PowerShell, należy użyć polecenia AZ module.To use these PowerShell commands, you need the AZ Module.

Poniższy przykład pokazuje, jak zastosować akcję skryptu do działającego klastra: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

Po zakończeniu operacji otrzymujesz informacje podobne do następującego tekstu: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}

Stosowanie akcji skryptu do działającego klastra z poziomu interfejsu wiersza polecenia platformy AzureApply a script action to a running cluster from the Azure CLI

Przed rozpoczęciem upewnij się, że zainstalowano i skonfigurowano interfejs wiersza polecenia platformy Azure.Before you start, make sure you install and configure the Azure CLI. Aby uzyskać więcej informacji, zobacz Instalowanie klasycznego interfejsu wiersza polecenia platformy Azure.For more information, see Install the Azure classic CLI.

Ważne

Ten artykuł zawiera zawartość, która wymaga klasycznego wiersza polecenia platformy Azure.This article contains content that requires the Azure classic CLI. Bieżąca wersja interfejsu wiersza polecenia platformy Azure nie ma obsługi funkcji opisanych w tym artykule, więc klasyczny interfejs wiersza polecenia jest wymagane.The current release of the Azure CLI doesn't have support for the features outlined in this article, so the classic CLI is required.

Klasyczny interfejs wiersza polecenia można zainstalować równolegle z nowoczesnego wiersza polecenia platformy Azure, ale firma Microsoft zaleca wiersza polecenia platformy Azure dla wszystkich nowych skryptów i wdrożeń.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. Aby zainstalować klasyczny interfejs wiersza polecenia, zobacz zainstalować Azure klasyczny interfejs wiersza polecenia.To install the classic CLI, see Install the Azure classic CLI. Aby zainstalować najnowszą wersję interfejsu wiersza polecenia, zobacz zainstalować interfejs wiersza polecenia platformy Azure.To install the latest version of the CLI, see Install the Azure CLI.

  1. Przełącz do trybu Azure Resource Manager:Switch to Azure Resource Manager mode:

    azure config mode arm
    
  2. Uwierzytelnianie w ramach subskrypcji platformy Azure:Authenticate to your Azure subscription:

    azure login
    
  3. Zastosuj akcję skryptu do działającego klastra:Apply a script action to a running cluster:

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

    W przypadku pominięcia parametrów dla tego polecenia zostanie wyświetlony monit o ich podanie.If you omit parameters for this command, you're prompted for them. Jeśli skrypt określony za pomocą -u przyjmuje parametry, można je określić za pomocą parametru -p.If the script you specify with -u accepts parameters, you can specify them by using the -p parameter.

    Prawidłowe typy węzłów to headnode, workernode i zookeeper.Valid node types are headnode, workernode, and zookeeper. Jeśli skrypt ma być stosowany do kilku typów węzłów, określ typy rozdzielone średnikami ;.If the script should be applied to several node types, specify the types separated by a semicolon ;. Na przykład -n headnode;workernode.For example, -n headnode;workernode.

    Aby zachować skrypt, Dodaj --persistOnSuccess.To persist the script, add --persistOnSuccess. Możesz również utrzymać skrypt później za pomocą azure hdinsight script-action persisted set.You can also persist the script later by using azure hdinsight script-action persisted set.

    Po zakończeniu zadania otrzymujesz dane wyjściowe podobne do następującego tekstu: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
    

Stosowanie akcji skryptu do działającego klastra przy użyciu interfejsu API RESTApply a script action to a running cluster by using REST API

Zobacz interfejs API REST klastra w usłudze Azure HDInsight.See Cluster REST API in Azure HDInsight.

Stosowanie akcji skryptu do działającego klastra z zestawu .NET SDK usługi HDInsightApply a script action to a running cluster from the HDInsight .NET SDK

Aby zapoznać się z przykładem użycia zestawu SDK platformy .NET do zastosowania skryptów do klastra, zobacz temat stosowanie akcji skryptu względem działającego klastra usługi HDInsight opartego na systemie Linux.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.

Wyświetlanie historii i promowanie i obniżanie poziomu akcji skryptuView history and promote and demote script actions

Witryna Azure PortalThe Azure portal

  1. Zaloguj się do portalu Azure.Sign in to the Azure portal.

  2. W menu po lewej stronie przejdź do wszystkich usług > Analytics > HDInsight klastrów.From the left menu, navigate to All services > Analytics > HDInsight clusters.

  3. Wybierz z listy klaster, który otworzy widok domyślny.Select your cluster from the list, which opens the default view.

  4. W widoku domyślnym w obszarze Ustawieniawybierz pozycję Akcje skryptu.From the default view, under Settings, select Script actions.

  5. Historia skryptów dla tego klastra jest wyświetlana w sekcji Akcje skryptu.A history of scripts for this cluster displays on the script actions section. Te informacje obejmują listę utrwalonych skryptów.This information includes a list of persisted scripts. Poniższy zrzut ekranu pokazuje, że skrypt Solr został uruchomiony w tym klastrze.The following screenshot shows that the Solr script has been run on this cluster. Zrzut ekranu nie pokazuje żadnych utrwalonych skryptów.The screenshot doesn't show any persisted scripts.

    Historia przesyłania akcji skryptu portalu

  6. Wybierz skrypt z historii, aby wyświetlić sekcję Właściwości tego skryptu.Select a script from the history to display the Properties section for this script. W górnej części ekranu możesz ponownie uruchomić skrypt lub go podwyższyć.From the top of the screen, you can rerun the script or promote it.

    Podwyższanie poziomu właściwości akcji skryptu

  7. Możesz również wybrać wielokropek, ... , na prawo od wpisów w sekcji Akcje skryptu, aby wykonać akcje.You can also select the ellipsis, ..., to the right of entries on the script actions section to perform actions.

    Usuwanie akcji utrwalonego skryptu

Program Azure PowerShellAzure PowerShell

Parametrcmdlet FunkcjaFunction
Get-AzHDInsightPersistedScriptAction Pobierz informacje o akcjach utrwalonego skryptu.Retrieve information on persisted script actions.
Get-AzHDInsightScriptActionHistory Pobierz historię akcji skryptu zastosowanych do klastra lub szczegółowych informacji dotyczących określonego skryptu.Retrieve a history of script actions applied to the cluster or details for a specific script.
Set-AzHDInsightPersistedScriptAction Podnieś akcję skryptu ad hoc do utrwalonej akcji skryptu.Promote an ad hoc script action to a persisted script action.
Remove-AzHDInsightPersistedScriptAction Obniż poziom utrwalonej akcji skryptu do akcji ad hoc.Demote a persisted script action to an ad hoc action.

Ważne

Remove-AzHDInsightPersistedScriptAction nie cofa akcji wykonywanych przez skrypt.Remove-AzHDInsightPersistedScriptAction doesn't undo the actions performed by a script. To polecenie cmdlet usuwa tylko flagę PERSISTED.This cmdlet only removes the persisted flag.

Poniższy przykładowy skrypt demonstruje użycie poleceń cmdlet do podniesienia poziomu i obniżenia poziomu skryptu.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"

Klasyczny interfejs wiersza polecenia platformy AzureThe Azure classic CLI

Parametrcmdlet FunkcjaFunction
azure hdinsight script-action persisted list <clustername> Pobierz listę utrwalonych akcji skryptów.Retrieve a list of persisted script actions.
azure hdinsight script-action persisted show <clustername> <scriptname> Pobierz informacje o określonej akcji utrwalonego skryptu.Retrieve information on a specific persisted script action.
azure hdinsight script-action history list <clustername> Pobierz historię akcji skryptu zastosowanych do klastra.Retrieve a history of script actions applied to the cluster.
azure hdinsight script-action history show <clustername> <scriptname> Pobierz informacje dotyczące konkretnej akcji skryptu.Retrieve information on a specific script action.
azure hdinsight script action persisted set <clustername> <scriptexecutionid> Podnieś akcję skryptu ad hoc do utrwalonej akcji skryptu.Promote an ad hoc script action to a persisted script action.
azure hdinsight script-action persisted delete <clustername> <scriptname> Obniż poziom utrwalonej akcji skryptu do akcji ad hoc.Demote a persisted script action to an ad hoc action.

Ważne

azure hdinsight script-action persisted delete nie cofa akcji wykonywanych przez skrypt.azure hdinsight script-action persisted delete doesn't undo the actions performed by a script. To polecenie cmdlet usuwa tylko flagę PERSISTED.This cmdlet only removes the persisted flag.

Zestaw SDK usługi HDInsight dla platformy .NETThe HDInsight .NET SDK

Aby zapoznać się z przykładem użycia zestawu SDK platformy .NET do pobierania historii skryptów z klastra, podniesienia lub obniżenia poziomu skryptów, zobacz temat stosowanie akcji skryptu względem uruchomionego klastra usługi HDInsight opartego na systemie Linux.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.

Uwaga

W tym przykładzie pokazano również, jak zainstalować aplikację usługi HDInsight przy użyciu zestawu .NET SDK.This example also demonstrates how to install an HDInsight application by using the .NET SDK.

Obsługa oprogramowania Open Source używanego w klastrach usługi HDInsightSupport for open-source software used on HDInsight clusters

Usługa Microsoft Azure HDInsight używa ekosystemu technologii typu "open source" utworzonych wokół Apache Hadoop.The Microsoft Azure HDInsight service uses an ecosystem of open-source technologies formed around Apache Hadoop. Microsoft Azure zapewnia ogólny poziom wsparcia dla technologii typu open source.Microsoft Azure provides a general level of support for open-source technologies. Aby uzyskać więcej informacji, zapoznaj się z sekcją dotyczącej zakresu pomocy technicznej platformy Azure.For more information, see the Support Scope section of Azure Support FAQs. Usługa HDInsight zapewnia dodatkowy poziom wsparcia dla wbudowanych składników programu.The HDInsight service provides an additional level of support for built-in components.

W usłudze HDInsight są dostępne dwa typy składników typu "open source":Two types of open-source components are available in the HDInsight service:

Ostrzeżenie

Składniki dostarczane z klastrem usługi HDInsight są w pełni obsługiwane.Components provided with the HDInsight cluster are fully supported. Pomoc techniczna firmy Microsoft pomaga wyizolować i rozwiązać problemy związane z tymi składnikami.Microsoft Support helps to isolate and resolve issues related to these components.

Składniki niestandardowe otrzymują komercyjnie uzasadnioną pomoc techniczną, aby ułatwić dalsze Rozwiązywanie problemu.Custom components receive commercially reasonable support to help you further troubleshoot the issue. Pomoc techniczna firmy Microsoft może być w stanie rozwiązać ten problem.Microsoft Support might be able to resolve the issue. Mogą też zadawać pytania o zaangażowanie dostępnych kanałów dla technologii open source, w przypadku których zostanie znaleziona Szczegółowa wiedza dla tej technologii.Or they might ask you to engage available channels for the open-source technologies where deep expertise for that technology is found. Można użyć wielu witryn społeczności.Many community sites can be used. Przykłady to forum MSDN dotyczące usługi HDInsight i Stack Overflow.Examples are MSDN forum for HDInsight and Stack Overflow.

Projekty Apache zawierają również witryny projektu w witrynie Apache.Apache projects also have project sites on the Apache website. Przykładem jest usługa Hadoop.An example is Hadoop.

Usługa HDInsight oferuje kilka sposobów korzystania ze składników niestandardowych.The HDInsight service provides several ways to use custom components. Ten sam poziom wsparcia ma zastosowanie, niezależnie od tego, w jaki sposób składnik jest używany lub instalowany w klastrze.The same level of support applies, no matter how a component is used or installed on the cluster. Na poniższej liście opisano najczęstsze sposoby używania składników niestandardowych w klastrach usługi HDInsight:The following list describes the most common ways that custom components are used on HDInsight clusters:

  1. Przesyłanie zadania.Job submission. Usługa Hadoop lub inne typy zadań, które wykonują lub używają niestandardowych składników można przesłać do klastra.Hadoop or other types of jobs that execute or use custom components can be submitted to the cluster.

  2. Dostosowywanie klastra.Cluster customization. Podczas tworzenia klastra można określić dodatkowe ustawienia i składniki niestandardowe, które są zainstalowane w węzłach klastra.During cluster creation, you can specify additional settings and custom components that are installed on the cluster nodes.

  3. Przykłady.Samples. W przypadku popularnych składników niestandardowych firma Microsoft i inne mogą przedstawić Przykłady sposobu używania tych składników w klastrach usługi HDInsight.For popular custom components, Microsoft and others might provide samples of how these components can be used on HDInsight clusters. Te przykłady są udostępniane bez pomocy technicznej.These samples are provided without support.

Rozwiązywanie problemówTroubleshooting

Za pomocą interfejsu użytkownika sieci Web Ambari można wyświetlać informacje zarejestrowane przez akcje skryptu.You can use the Ambari web UI to view information logged by script actions. Jeśli skrypt zakończy się niepowodzeniem podczas tworzenia klastra, dzienniki są również dostępne w domyślnym koncie magazynu skojarzonym z klastrem.If the script fails during cluster creation, the logs are also available in the default storage account associated with the cluster. Ta sekcja zawiera informacje dotyczące sposobu pobierania dzienników przy użyciu obu tych opcji.This section provides information on how to retrieve the logs by using both these options.

Interfejs użytkownika sieci Web Apache AmbariThe Apache Ambari web UI

  1. W przeglądarce przejdź do https://CLUSTERNAME.azurehdinsight.net.In your browser, go to https://CLUSTERNAME.azurehdinsight.net. Zastąp CLUSTERNAME nazwą klastra usługi HDInsight:Replace CLUSTERNAME with the name of your HDInsight cluster.

    Po wyświetleniu monitu wprowadź nazwę konta administratora, administratorai hasła dla klastra.When prompted, enter the admin account name, admin, and password for the cluster. Może zajść konieczność wprowadzenia ponownie poświadczeń administratora w formularzu sieci Web.You might have to reenter the admin credentials in a web form.

  2. Na pasku w górnej części strony wybierz wpis Ops .From the bar at the top of the page, select the ops entry. Na liście są wyświetlane bieżące i poprzednie operacje wykonywane w klastrze za pomocą Ambari.A list displays current and previous operations done on the cluster through Ambari.

    Pasek interfejsu użytkownika sieci Web Ambari z wybranym elementem Ops

  3. Znajdź w kolumnie operacje wpisy z uruchomioną kolumną @ no__t-1customscriptaction .Find the entries that have run_customscriptaction in the Operations column. Te wpisy są tworzone po uruchomieniu akcji skryptu.These entries are created when the script actions run.

    Operacje akcji skryptu Apache Ambari

    Aby wyświetlić dane wyjściowe stdout i stderr , wybierz wpis run\customscriptaction i przejdź do szczegółów przez linki.To view the STDOUT and STDERR output, select the run\customscriptaction entry and drill down through the links. Ta wartość wyjściowa jest generowana, gdy skrypt jest uruchamiany i może mieć przydatne informacje.This output is generated when the script runs and might have useful information.

Dostęp do dzienników z domyślnego konta magazynuAccess logs from the default storage account

Jeśli utworzenie klastra zakończy się niepowodzeniem z powodu błędu skryptu, dzienniki są przechowywane na koncie magazynu klastra.If cluster creation fails because of a script error, the logs are kept in the cluster storage account.

  • Dzienniki magazynu są dostępne pod adresem \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE.The storage logs are available at \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE.

    Dzienniki akcji skryptu

    W tym katalogu dzienniki są zorganizowane osobno dla węzła węzła głównego, Node-Workeri dozorcy.Under this directory, the logs are organized separately for headnode, worker node, and zookeeper node. Zobacz poniższe przykłady:See the following examples:

    • Węzła głównego: <uniqueidentifier>AmbariDb-hn0-<generated_value>.cloudapp.netHeadnode: <uniqueidentifier>AmbariDb-hn0-<generated_value>.cloudapp.net

    • Węzeł procesu roboczego: <uniqueidentifier>AmbariDb-wn0-<generated_value>.cloudapp.netWorker node: <uniqueidentifier>AmbariDb-wn0-<generated_value>.cloudapp.net

    • Dozorcy — węzeł: <uniqueidentifier>AmbariDb-zk0-<generated_value>.cloudapp.netZookeeper node: <uniqueidentifier>AmbariDb-zk0-<generated_value>.cloudapp.net

  • Wszystkie stdout i stderr odpowiedniego hosta są przekazywane do konta magazynu.All stdout and stderr of the corresponding host is uploaded to the storage account. Istnieje jedno wyjście — @no__t -1. txt i Błędy — @no__t -3. txt dla każdej akcji skryptu.There's one output-*.txt and errors-*.txt for each script action. Plik Output-*. txt zawiera informacje o identyfikatorze URI skryptu, który został uruchomiony na hoście.The output-*.txt file contains information about the URI of the script that was run on the host. Poniżej przedstawiono przykład tych informacji: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'
    
  • Istnieje możliwość wielokrotnego utworzenia klastra akcji skryptu o tej samej nazwie.It's possible that you repeatedly create a script action cluster with the same name. W takim przypadku można odróżnić odpowiednie dzienniki na podstawie nazwy folderu daty .In that case, you can distinguish the relevant logs based on the DATE folder name. Na przykład struktura folderów dla klastra, obiekt webcluster, utworzony w różnych datach, wygląda podobnie jak w przypadku następujących wpisów dziennika: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

  • Jeśli utworzysz klaster akcji skryptu o tej samej nazwie w tym samym dniu, możesz użyć unikatowego prefiksu, aby zidentyfikować odpowiednie pliki dziennika.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.

  • Jeśli utworzysz klaster o 12:00 AM i północy, istnieje możliwość, że pliki dziennika obejmują dwa dni.If you create a cluster near 12:00 AM, midnight, it's possible that the log files span across two days. W takim przypadku zobaczysz dwa różne foldery dat dla tego samego klastra.In that case, you see two different date folders for the same cluster.

  • Przekazywanie plików dziennika do kontenera domyślnego może potrwać do 5 minut, szczególnie w przypadku dużych klastrów.Uploading log files to the default container can take up to five minutes, especially for large clusters. Dlatego jeśli chcesz uzyskać dostęp do dzienników, nie musisz natychmiast usunąć klastra, jeśli akcja skryptu zakończy się niepowodzeniem.So if you want to access the logs, you shouldn't immediately delete the cluster if a script action fails.

Ambari = licznikAmbari watchdog

Ostrzeżenie

Nie zmieniaj hasła dla Ambari licznika alarmowego hdinsightwatchdog, w klastrze usługi HDInsight opartej na systemie Linux.Don't change the password for the Ambari watchdog, hdinsightwatchdog, on your Linux-based HDInsight cluster. Zmiana hasła dla tego konta powoduje przerwanie możliwości uruchamiania nowych akcji skryptów w klastrze usługi HDInsight.Changing the password for this account breaks the ability to run new script actions on the HDInsight cluster.

Nie można zaimportować nazwy BlobServiceCan't import name BlobService

Objawy.Symptoms. Akcja skryptu kończy się niepowodzeniem.The script action fails. Podczas wyświetlania operacji w Ambari jest wyświetlany tekst podobny do następującego błędu: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

Przyczyna.Cause. Ten błąd występuje w przypadku uaktualniania klienta usługi Azure Storage w języku Python, który jest dołączony do klastra HDInsight.This error occurs if you upgrade the Python Azure Storage client that's included with the HDInsight cluster. Usługa HDInsight oczekuje 0.20.0 klienta usługi Azure Storage.HDInsight expects Azure Storage client 0.20.0.

Rozwiązanie.Resolution. Aby rozwiązać ten problem, należy ręcznie połączyć się z każdym węzłem klastra przy użyciu ssh.To resolve this error, manually connect to each cluster node by using ssh. Uruchom następujące polecenie, aby ponownie zainstalować poprawną wersję klienta magazynu:Run the following command to reinstall the correct storage client version:

sudo pip install azure-storage==0.20.0

Aby uzyskać informacje na temat nawiązywania połączenia z klastrem przy użyciu protokołu SSH, zobacz nawiązywanie połączenia z usługą HDInsight (Apache Hadoop) za pośrednictwem protokołu SSH.For information on connecting to the cluster with SSH, see Connect to HDInsight (Apache Hadoop) by using SSH.

W historii nie są wyświetlane skrypty używane podczas tworzenia klastraHistory doesn't show the scripts used during cluster creation

Jeśli klaster został utworzony przed 15 marca 2016, w historii akcji skryptu może nie być wyświetlany wpis.If your cluster was created before March 15, 2016, you might not see an entry in script action history. Zmiany rozmiarów klastra powodują, że skrypty pojawiają się w historii akcji skryptu.Resizing the cluster causes the scripts to appear in script action history.

Istnieją jednak dwa wyjątki:There are two exceptions:

  • Klaster został utworzony przed 1 września 2015.Your cluster was created before September 1, 2015. Ta data jest w przypadku wprowadzenia akcji skryptu.This date is when script actions were introduced. Każdy klaster utworzony przed tą datą nie mógł używać akcji skryptu do tworzenia klastra.Any cluster created before this date couldn't have used script actions for cluster creation.

  • Podczas tworzenia klastra użyto wielu akcji skryptu.You used multiple script actions during cluster creation. Lub użyto tej samej nazwy dla wielu skryptów lub tej samej nazwy, tego samego identyfikatora URI, ale różnych parametrów dla wielu skryptów.Or you used the same name for multiple scripts or the same name, same URI, but different parameters for multiple scripts. W takich przypadkach zostanie wyświetlony następujący błąd:In these cases, you get the following error:

    Żadne nowe akcje skryptu nie mogą być uruchamiane w tym klastrze ze względu na konflikt nazw skryptów w istniejących skryptach.No new script actions can be run on this cluster because of conflicting script names in existing scripts. Nazwy skryptów podane podczas tworzenia klastra muszą być unikatowe.Script names provided at cluster creation must be all unique. Istniejące skrypty są uruchamiane przy zmianie rozmiaru.Existing scripts are run on resize.

Następne krokiNext steps