Solucionar problemas de ações de script no Azure HDInsight
Este artigo descreve as etapas de solução de problemas e possíveis resoluções para problemas ao interagir com clusters do Azure HDInsight.
Ver registos
Você pode usar a interface do usuário da Web do Apache Ambari para exibir informações registradas por ações de script. Se o script falhar durante a criação do cluster, os logs estarão na conta de armazenamento de cluster padrão. Esta seção fornece informações sobre como recuperar os logs usando essas duas opções.
Interface do usuário da web do Apache Ambari
Em um navegador da Web, navegue até
https://CLUSTERNAME.azurehdinsight.net
, ondeCLUSTERNAME
é o nome do cluster.Na barra na parte superior da página, selecione a entrada ops . Uma lista exibe as operações atuais e anteriores feitas no cluster por meio do Ambari.
Localize as entradas que têm run_customscriptaction na coluna Operações . Essas entradas são criadas quando as ações de script são executadas.
Para exibir a saída STDOUT e STDERR , selecione a entrada run\customscriptaction e faça uma busca detalhada nos links. Essa saída é gerada quando o script é executado e pode ter informações úteis.
Conta de armazenamento padrão
Se a criação do cluster falhar devido a um erro de script, os logs serão mantidos na conta de armazenamento do cluster.
Os logs de armazenamento estão disponíveis em
\STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE
.Nesse diretório, os logs são organizados separadamente para nó principal, nó de trabalho e nó de zookeeper. Veja os exemplos seguintes:
Nó de cabeça:
<ACTIVE-HEADNODE-NAME>.cloudapp.net
Nó de trabalho:
<ACTIVE-WORKERNODE-NAME>.cloudapp.net
Nó Zookeeper:
<ACTIVE-ZOOKEEPERNODE-NAME>.cloudapp.net
Todos os stdout e stderr do host correspondente são carregados para a conta de armazenamento. Há uma saída-*.txt e erros-*.txt para cada ação de script. O arquivo output-*.txt contém informações sobre o URI do script que foi executado no host. O texto a seguir é um exemplo dessas informações:
'Start downloading script locally: ', u'https://hdiconfigactions.blob.core.windows.net/linuxrconfigactionv01/r-installer-v01.sh'
É possível que você crie repetidamente um cluster de ação de script com o mesmo nome. Nesse caso, você pode distinguir os logs relevantes com base no nome da pasta DATE . Por exemplo, a estrutura de pastas para um cluster, mycluster, criado em datas diferentes é semelhante às seguintes entradas de log:
\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
Se você criar um cluster de ação de script com o mesmo nome no mesmo dia, poderá usar o prefixo exclusivo para identificar os arquivos de log relevantes.
Se você criar um cluster perto das 12h00, meia-noite, é possível que os arquivos de log se estendam por dois dias. Nesse caso, você verá duas pastas de data diferentes para o mesmo cluster.
O carregamento de arquivos de log para o contêiner padrão pode levar até cinco minutos, especialmente para clusters grandes. Portanto, se você quiser acessar os logs, não deve excluir imediatamente o cluster se uma ação de script falhar.
Cão de guarda Ambari
Não altere a senha do cão de guarda Ambari, hdinsightwatchdog, em seu cluster HDInsight baseado em Linux. Uma alteração de senha interrompe a capacidade de executar novas ações de script no cluster HDInsight.
Não é possível importar o nome BlobService
Sintomas. A ação de script falha. Texto semelhante ao seguinte erro é exibido quando você visualiza a operação no 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
Causa. Este erro ocorre se você atualizar o cliente de Armazenamento do Python Azure incluído no cluster HDInsight. O HDInsight espera o cliente de Armazenamento do Azure 0.20.0.
Resolução. Para resolver esse erro, conecte-se manualmente a cada nó de cluster usando ssh
. Execute o seguinte comando para reinstalar a versão correta do cliente de armazenamento:
sudo pip install azure-storage==0.20.0
Para obter informações sobre como se conectar ao cluster com SSH, consulte Conectar-se ao HDInsight (Apache Hadoop) usando SSH.
O histórico não mostra os scripts usados durante a criação do cluster
Se o cluster tiver sido criado antes de 15 de março de 2016, talvez você não veja uma entrada no histórico de ações de script. O redimensionamento do cluster faz com que os scripts apareçam no histórico de ações do script.
Existem duas exceções:
Seu cluster foi criado antes de 1º de setembro de 2015. Esta data é quando as ações de script foram introduzidas. Qualquer cluster criado antes dessa data não poderia ter usado ações de script para a criação do cluster.
Você usou várias ações de script durante a criação do cluster. Ou você usou o mesmo nome para vários scripts ou o mesmo nome, mesmo URI, mas parâmetros diferentes para vários scripts. Nesses casos, você recebe o seguinte erro:
No new script actions can be run on this cluster because of conflicting script names in existing scripts. Script names provided at cluster creation must be all unique. Existing scripts are run on resize.
Próximos passos
Se não viu o problema ou não conseguiu resolvê-lo, visite um dos seguintes canais para obter mais suporte:
Obtenha respostas de especialistas do Azure através do Suporte da Comunidade do Azure.
Conecte-se com o @AzureSupport - a conta oficial do Microsoft Azure para melhorar a experiência do cliente. Ligar a comunidade do Azure aos recursos certos: respostas, suporte e especialistas.
Se precisar de mais ajuda, você pode enviar uma solicitação de suporte do portal do Azure. Selecione Suporte na barra de menus ou abra o hub Ajuda + suporte . Para obter informações mais detalhadas, consulte Como criar uma solicitação de suporte do Azure. O acesso ao suporte para Gestão de Subscrições e faturação está incluído na sua subscrição do Microsoft Azure e o Suporte Técnico é disponibilizado através de um dos Planos de Suporte do Azure.