Guia de início rápido: criar cluster Apache Hadoop no Azure HDInsight usando o modelo ARM
Neste início rápido, você usa um modelo do Azure Resource Manager (modelo ARM) para criar um cluster Apache Hadoop no Azure HDInsight. O Hadoop era a estrutura de código aberto original para processamento distribuído e análise de conjuntos de big data em clusters. O ecossistema Hadoop inclui software e utilitários relacionados, incluindo Apache Hive, Apache HBase, Spark, Kafka e muitos outros.
Um modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo utiliza sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.
Atualmente, o HDInsight inclui sete tipos diferentes de cluster. Cada tipo de cluster suporta um conjunto diferente de componentes. Todos os tipos de cluster suportam o Hive. Para obter uma lista dos componentes suportados no HDInsight, consulte Quais são as novidades nas versões de cluster do Hadoop fornecidas pelo HDInsight?
Se o seu ambiente cumpre os pré-requisitos e se está familiarizado com a utilização de modelos ARM, selecione o botão Implementar no Azure. O modelo será aberto no portal do Azure.
Pré-requisitos
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Rever o modelo
O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.26.54.24096",
"templateHash": "1839820966662864707"
}
},
"parameters": {
"clusterName": {
"type": "string",
"metadata": {
"description": "The name of the HDInsight cluster to create."
}
},
"clusterType": {
"type": "string",
"allowedValues": [
"hadoop",
"intractivehive",
"hbase",
"storm",
"spark"
],
"metadata": {
"description": "The type of the HDInsight cluster to create."
}
},
"clusterLoginUserName": {
"type": "string",
"metadata": {
"description": "These credentials can be used to submit jobs to the cluster and to log into cluster dashboards."
}
},
"clusterLoginPassword": {
"type": "securestring",
"minLength": 10,
"metadata": {
"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."
}
},
"sshUserName": {
"type": "string",
"metadata": {
"description": "These credentials can be used to remotely access the cluster. The username cannot be admin."
}
},
"sshPassword": {
"type": "securestring",
"minLength": 6,
"maxLength": 72,
"metadata": {
"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"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"HeadNodeVirtualMachineSize": {
"type": "string",
"defaultValue": "Standard_E4_v3",
"allowedValues": [
"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"
],
"metadata": {
"description": "This is the headnode Azure Virtual Machine size, and will affect the cost. If you don't know, just leave the default value."
}
},
"WorkerNodeVirtualMachineSize": {
"type": "string",
"defaultValue": "Standard_E4_v3",
"allowedValues": [
"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"
],
"metadata": {
"description": "This is the workdernode Azure Virtual Machine size, and will affect the cost. If you don't know, just leave the default value."
}
}
},
"variables": {
"defaultStorageAccount": {
"name": "[uniqueString(resourceGroup().id)]",
"type": "Standard_LRS"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-08-01",
"name": "[variables('defaultStorageAccount').name]",
"location": "[parameters('location')]",
"sku": {
"name": "[variables('defaultStorageAccount').type]"
},
"kind": "StorageV2",
"properties": {}
},
{
"type": "Microsoft.HDInsight/clusters",
"apiVersion": "2021-06-01",
"name": "[parameters('clusterName')]",
"location": "[parameters('location')]",
"properties": {
"clusterVersion": "4.0",
"osType": "Linux",
"clusterDefinition": {
"kind": "[parameters('clusterType')]",
"configurations": {
"gateway": {
"restAuthCredential.isEnabled": true,
"restAuthCredential.username": "[parameters('clusterLoginUserName')]",
"restAuthCredential.password": "[parameters('clusterLoginPassword')]"
}
}
},
"storageProfile": {
"storageaccounts": [
{
"name": "[replace(replace(concat(reference(resourceId('Microsoft.Storage/storageAccounts', variables('defaultStorageAccount').name), '2021-08-01').primaryEndpoints.blob), 'https:', ''), '/', '')]",
"isDefault": true,
"container": "[parameters('clusterName')]",
"key": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('defaultStorageAccount').name), '2021-08-01').keys[0].value]"
}
]
},
"computeProfile": {
"roles": [
{
"name": "headnode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "[parameters('HeadNodeVirtualMachineSize')]"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "[parameters('sshUserName')]",
"password": "[parameters('sshPassword')]"
}
}
},
{
"name": "workernode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "[parameters('WorkerNodeVirtualMachineSize')]"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "[parameters('sshUserName')]",
"password": "[parameters('sshPassword')]"
}
}
}
]
}
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', variables('defaultStorageAccount').name)]"
]
}
],
"outputs": {
"storage": {
"type": "object",
"value": "[reference(resourceId('Microsoft.Storage/storageAccounts', variables('defaultStorageAccount').name), '2021-08-01')]"
},
"cluster": {
"type": "object",
"value": "[reference(resourceId('Microsoft.HDInsight/clusters', parameters('clusterName')), '2021-06-01')]"
}
}
}
Dois recursos do Azure são definidos no modelo:
- Microsoft.Storage/storageAccounts: crie uma Conta de Armazenamento do Azure.
- Microsoft.HDInsight/cluster: crie um cluster HDInsight.
Implementar o modelo
Selecione o botão Implementar no Azure, abaixo, para iniciar sessão no Azure e abrir o modelo do ARM.
Introduza ou selecione os seguintes valores:
Propriedade Descrição Subscrição Na lista suspensa, selecione a assinatura do Azure usada para o cluster. Grupo de recursos Na lista pendente, selecione o grupo de recursos existente ou selecione Criar novo. Localização O valor será preenchido automaticamente com a localização utilizada para o grupo de recursos. Nome do Cluster Introduza um nome globalmente exclusivo. Para este modelo, use apenas letras minúsculas e números. Tipo de Cluster Selecione hadoop. Nome de Utilizador de Início de Sessão do Cluster Forneça o nome de usuário, o padrão é admin
.Palavra-passe de Início de Sessão do Cluster Forneça uma senha. A senha deve ter pelo menos 10 caracteres e deve conter pelo menos um dígito, uma letra maiúscula e uma letra minúscula, um caractere não alfanumérico (exceto caracteres ' ` "
).Nome de utilizador SSH Forneça o nome de usuário, o padrão é sshuser
.Palavra-passe SSH Forneça a senha. Algumas propriedades foram codificadas no modelo. Pode configurar estes valores a partir do modelo. Para obter mais explicações sobre essas propriedades, consulte Criar clusters Apache Hadoop no HDInsight.
Nota
Os valores que forem fornecidos têm de ser exclusivos e devem seguir as diretrizes de nomenclatura. O modelo não realiza verificações de validação. Caso os valores fornecidos já estejam a ser utilizados ou não sigam as diretrizes, receberá um erro depois de ter submetido o modelo.
Reveja os TERMOS E CONDIÇÕES. Em seguida, selecione Concordo com os termos e condições mencionados acima e, em seguida , Comprar. Você receberá uma notificação de que sua implantação está em andamento. A criação de um cluster demora cerca de 20 minutos.
Rever os recursos implementados
Depois que o cluster for criado, você receberá uma notificação de implantação bem-sucedida com um link Ir para o recurso . A página Grupo de recursos listará o novo cluster HDInsight e o armazenamento padrão associado ao cluster. Cada cluster tem uma conta de Armazenamento de Blob do Azure ou uma Azure Data Lake Storage Gen2
dependência. É conhecida como a conta de armazenamento padrão. O cluster HDInsight e sua conta de armazenamento padrão devem ser colocalizados na mesma região do Azure. A exclusão de clusters não exclui a conta de armazenamento.
Nota
Para obter outros métodos de criação de cluster e compreender as propriedades usadas neste início rápido, consulte Criar clusters HDInsight.
Clean up resources (Limpar recursos)
Depois de concluir o início rápido, convém excluir o cluster. Com o HDInsight, seus dados são armazenados no Armazenamento do Azure, para que você possa excluir com segurança um cluster quando ele não estiver em uso. Você também é cobrado por um cluster HDInsight, mesmo quando ele não está em uso. Como as cobranças para o cluster são muitas vezes mais do que as taxas para armazenamento, faz sentido econômico excluir clusters quando eles não estão em uso.
Nota
Se avançar imediatamente para o tutorial seguinte para saber como executar operações de ETL com o Hadoop no HDInsight, é recomendado que mantenha o cluster em execução. Isso ocorre porque no tutorial você precisa criar um cluster Hadoop novamente. No entanto, se não avançar já para o tutorial seguinte, tem de eliminar o cluster agora.
No portal do Azure, navegue até o cluster e selecione Excluir.
Também pode selecionar o nome do grupo de recursos para abrir a página do grupo de recursos e, em seguida, selecionar Eliminar grupo de recursos. Ao excluir o grupo de recursos, você exclui o cluster HDInsight e a conta de armazenamento padrão.
Próximos passos
Neste guia de início rápido, você aprendeu como criar um cluster Apache Hadoop no HDInsight usando um modelo ARM. No artigo seguinte, vai aprender a realizar uma operação de ETL (extração, transformação e carregamento) com o Hadoop no HDInsight.