Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung verwenden Sie Bicep, um einen Apache Hadoop-Cluster in Azure HDInsight zu erstellen. Hadoop war ursprünglich ein Open-Source-Framework für die verteilte Verarbeitung und Analyse umfangreicher Datasets in Clustern. Das Hadoop-Ökosystem umfasst verwandte Software und Hilfsprogramme, einschließlich Apache Hive, Apache HBase, Spark, Kafka und viele andere.
Bicep ist eine domänenspezifische Sprache (Domain-Specific Language, DSL), die eine deklarative Syntax zur Bereitstellung von Azure-Ressourcen verwendet. Sie bietet eine präzise Syntax, zuverlässige Typsicherheit und Unterstützung für die Wiederverwendung von Code. Bicep bietet die beste Form der Erstellung für Ihre Infrastructure-as-Code-Lösungen in Azure.
Zurzeit stehen in HDInsight sieben verschiedene Clustertypen zur Verfügung. Jeder Clustertyp unterstützt eine andere Gruppe von Komponenten. Alle Clustertypen unterstützen Hive. Eine Liste mit den unterstützten Komponenten in HDInsight finden Sie unter Neuheiten in den von HDInsight bereitgestellten Hadoop-Clusterversionen
Voraussetzungen
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Überprüfen der Bicep-Datei
Die in dieser Schnellstartanleitung verwendete Bicep-Datei stammt aus den Azure-Schnellstartvorlagen.
@description('The name of the HDInsight cluster to create.')
param clusterName string
@description('The type of the HDInsight cluster to create.')
@allowed([
'hadoop'
'intractivehive'
'hbase'
'storm'
'spark'
])
param clusterType string
@description('These credentials can be used to submit jobs to the cluster and to log into cluster dashboards.')
param clusterLoginUserName string
@description('The password must be at least 10 characters in length and must contain at least one digit, one upper case letter, one lower case letter, and one non-alphanumeric character except (single-quote, double-quote, backslash, right-bracket, full-stop). Also, the password must not contain 3 consecutive characters from the cluster username or SSH username.')
@minLength(10)
@secure()
param clusterLoginPassword string
@description('These credentials can be used to remotely access the cluster. The username cannot be admin.')
param sshUserName string
@description('SSH password must be 6-72 characters long and must contain at least one digit, one upper case letter, and one lower case letter. It must not contain any 3 consecutive characters from the cluster login name')
@minLength(6)
@maxLength(72)
@secure()
param sshPassword string
@description('Location for all resources.')
param location string = resourceGroup().location
@description('This is the headnode Azure Virtual Machine size, and will affect the cost. If you don\'t know, just leave the default value.')
@allowed([
'Standard_A4_v2'
'Standard_A8_v2'
'Standard_E2_v3'
'Standard_E4_v3'
'Standard_E8_v3'
'Standard_E16_v3'
'Standard_E20_v3'
'Standard_E32_v3'
'Standard_E48_v3'
])
param HeadNodeVirtualMachineSize string = 'Standard_E4_v3'
@description('This is the workdernode Azure Virtual Machine size, and will affect the cost. If you don\'t know, just leave the default value.')
@allowed([
'Standard_A4_v2'
'Standard_A8_v2'
'Standard_E2_v3'
'Standard_E4_v3'
'Standard_E8_v3'
'Standard_E16_v3'
'Standard_E20_v3'
'Standard_E32_v3'
'Standard_E48_v3'
])
param WorkerNodeVirtualMachineSize string = 'Standard_E4_v3'
var defaultStorageAccount = {
name: uniqueString(resourceGroup().id)
type: 'Standard_LRS'
}
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-08-01' = {
name: defaultStorageAccount.name
location: location
sku: {
name: defaultStorageAccount.type
}
kind: 'StorageV2'
properties: {}
}
resource cluster 'Microsoft.HDInsight/clusters@2021-06-01' = {
name: clusterName
location: location
properties: {
clusterVersion: '4.0'
osType: 'Linux'
clusterDefinition: {
kind: clusterType
configurations: {
gateway: {
'restAuthCredential.isEnabled': true
'restAuthCredential.username': clusterLoginUserName
'restAuthCredential.password': clusterLoginPassword
}
}
}
storageProfile: {
storageaccounts: [
{
name: replace(replace(concat(storageAccount.properties.primaryEndpoints.blob), 'https:', ''), '/', '')
isDefault: true
container: clusterName
key: listKeys(storageAccount.id, '2021-08-01').keys[0].value
}
]
}
computeProfile: {
roles: [
{
name: 'headnode'
targetInstanceCount: 2
hardwareProfile: {
vmSize: HeadNodeVirtualMachineSize
}
osProfile: {
linuxOperatingSystemProfile: {
username: sshUserName
password: sshPassword
}
}
}
{
name: 'workernode'
targetInstanceCount: 2
hardwareProfile: {
vmSize: WorkerNodeVirtualMachineSize
}
osProfile: {
linuxOperatingSystemProfile: {
username: sshUserName
password: sshPassword
}
}
}
]
}
}
}
output storage object = storageAccount.properties
output cluster object = cluster.properties
In der Bicep-Datei sind zwei Azure-Ressourcen definiert:
- Microsoft.Storage/storageAccounts: Erstellen eines Azure Storage-Kontos
- Microsoft.HDInsight/cluster: Erstellen eines HDInsight-Clusters
Bereitstellen der Bicep-Datei
Speichern Sie die Bicep-Datei als main.bicep auf Ihrem lokalen Computer.
Stellen Sie die Bicep-Datei entweder mit Azure CLI oder mit Azure PowerShell bereit.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters clusterName=<cluster-name> clusterType=<cluster-type> clusterLoginUserName=<cluster-username> sshUserName=<ssh-username>
Sie müssen Werte für die Parameter bereitstellen:
- Ersetzen Sie <cluster-name> durch den Namen des zu erstellenden HDInsight-Clusters.
- Ersetzen Sie <cluster-type> durch den Namen des zu erstellenden HDInsight-Clusters. Zulässige Zeichenfolgen:
hadoop
,interactivehive
,hbase
undspark
. - Ersetzen Sie <cluster-username> durch die Anmeldeinformationen, die zum Übermitteln von Aufträgen an den Cluster und zum Anmelden bei Cluster-Dashboards genutzt werden.
- Ersetzen Sie <ssh-username> durch die Anmeldeinformationen, die für den Remotezugriff auf den Cluster verwendet werden. Der Benutzername darf nicht „admin“ lauten.
Sie werden auch aufgefordert, den folgenden Parameter einzugeben:
- clusterLoginPassword, das mindestens 10 Zeichen lang sein muss und eine Ziffer, einen Großbuchstaben, einen Kleinbuchstaben und ein nicht alphanumerisches Zeichen enthalten muss; ausgenommen hiervon sind einfaches Anführungszeichen, doppeltes Anführungszeichen, umgekehrter Schrägstrich, eckige Klammer und Punkt. Es darf auch keine drei aufeinander folgenden Zeichen aus dem Cluster-Benutzernamen oder SSH-Benutzernamen enthalten.
- sshPassword, das 6 bis 72 Zeichen lang sein und mindestens eine Ziffer, einen Großbuchstaben und einen Kleinbuchstaben enthalten muss. Es darf keine drei aufeinanderfolgenden Zeichen aus dem Anmeldenamen für den Cluster enthalten.
Hinweis
Nach Abschluss der Bereitstellung sollte eine Meldung mit dem Hinweis angezeigt werden, dass die Bereitstellung erfolgreich war.
Überprüfen der bereitgestellten Ressourcen
Verwenden Sie das Azure-Portal, die Azure CLI oder Azure PowerShell, um die bereitgestellten Ressourcen in der Ressourcengruppe aufzulisten.
az resource list --resource-group exampleRG
Bereinigen von Ressourcen
Wenn die Ressourcengruppe und deren Ressourcen nicht mehr benötigt werden, löschen Sie sie über das Azure-Portal, die Azure CLI oder Azure PowerShell.
az group delete --name exampleRG
Nächste Schritte
In diesem Schnellstart haben Sie erfahren, wie Sie einen Apache Hadoop-Cluster in HDInsight mit Bicep erstellen. Im nächsten Artikel erfahren Sie, wie Sie mithilfe von Hadoop in HDInsight einen ETL-Vorgang zum Extrahieren, Transformieren und Laden von Daten ausführen.