Informações sobre como utilizar o HDInsight no Linux

Os clusters do Azure HDInsight fornecem o Apache Hadoop em um ambiente Linux familiar, em execução na nuvem do Azure. Para a maioria das coisas, ele deve funcionar exatamente como qualquer outra instalação do Hadoop-on-Linux. Este documento chama a atenção para diferenças específicas que você deve estar ciente.

Pré-requisitos

Muitas das etapas neste documento usam os seguintes utilitários, que podem precisar ser instalados no seu sistema.

Utilizadores

A menos que ingresse no domínio, o HDInsight deve ser considerado um sistema de usuário único. Uma única conta de usuário SSH é criada com o cluster, com permissões de nível de administrador. Contas SSH adicionais podem ser criadas, mas elas também têm acesso de administrador ao cluster.

O HDInsight ingressado no domínio oferece suporte a vários usuários e a configurações de permissão e função mais granulares. Para obter mais informações, consulte Gerenciar clusters HDInsight ingressados no domínio.

Nomes de domínio

O nome de domínio totalmente qualificado (FQDN) a ser usado ao se conectar ao cluster pela Internet é CLUSTERNAME.azurehdinsight.net ou CLUSTERNAME-ssh.azurehdinsight.net (somente para SSH).

Internamente, cada nó no cluster tem um nome que é atribuído durante a configuração do cluster. Para localizar os nomes dos clusters, consulte a página Hosts na interface do usuário da Web do Ambari. Você também pode usar o seguinte para retornar uma lista de hosts da API REST do Ambari:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/hosts" | jq '.items[].Hosts.host_name'

Substitua CLUSTERNAME pelo nome do cluster. Quando solicitado, digite a senha da conta de administrador. Este comando retorna um documento JSON que contém uma lista dos hosts no cluster. jq é usado para extrair o valor do host_name elemento para cada host.

Se você precisar encontrar o nome do nó para um serviço específico, poderá consultar o Ambari para esse componente. Por exemplo, para localizar os hosts para o nó de nome HDFS, use o seguinte comando:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/HDFS/components/NAMENODE" | jq '.host_components[].HostRoles.host_name'

Este comando retorna um documento JSON descrevendo o serviço e, em seguida , jq extrai apenas o host_name valor para os hosts.

Acesso remoto aos serviços

  • Ambari (web) - https://CLUSTERNAME.azurehdinsight.net

    Autentique-se usando o usuário e a senha do administrador do cluster e entre no Ambari.

    A autenticação é texto simples - use sempre HTTPS para ajudar a garantir que a conexão seja segura.

    Importante

    Algumas das interfaces do usuário da Web disponíveis através de nós de acesso Ambari usando um nome de domínio interno. Os nomes de domínio internos não são acessíveis ao público através da Internet. Você pode receber erros de "servidor não encontrado" ao tentar acessar alguns recursos pela Internet.

    Para usar a funcionalidade completa da interface do usuário da Web do Ambari, use um túnel SSH para fazer proxy do tráfego da Web para o nó principal do cluster. Consulte Usar túnel SSH para acessar a interface do usuário da Web do Apache Ambari, ResourceManager, JobHistory, NameNode, Oozie e outras interfaces do usuário da Web

  • Ambari (REST) - https://CLUSTERNAME.azurehdinsight.net/ambari

    Nota

    Autentique-se usando o usuário e a senha do administrador do cluster.

    A autenticação é texto simples - use sempre HTTPS para ajudar a garantir que a conexão seja segura.

  • WebHCat (Templeton) - https://CLUSTERNAME.azurehdinsight.net/templeton

    Nota

    Autentique-se usando o usuário e a senha do administrador do cluster.

    A autenticação é texto simples - use sempre HTTPS para ajudar a garantir que a conexão seja segura.

  • SSH - CLUSTERNAME-ssh.azurehdinsight.net na porta 22 ou 23. A porta 22 é usada para se conectar ao nó principal primário, enquanto a 23 é usada para se conectar ao secundário. Para obter mais informações sobre os nós principais, consulte Disponibilidade e confiabilidade de clusters Apache Hadoop no HDInsight.

    Nota

    Você só pode acessar os nós principais do cluster por meio de SSH a partir de uma máquina cliente. Uma vez conectado, você pode acessar os nós de trabalho usando SSH de um nó principal.

Para obter mais informações, consulte o documento Portas usadas pelos serviços Apache Hadoop no HDInsight .

Localizações dos ficheiros

Os arquivos relacionados ao Hadoop podem ser encontrados nos nós do cluster em /usr/hdp. Este diretório contém os seguintes subdiretórios:

  • 2.6.5.3009-43: O nome do diretório é a versão da plataforma Hadoop usada pelo HDInsight. O número no cluster pode ser diferente do listado aqui.
  • current: Este diretório contém links para subdiretórios no diretório 2.6.5.3009-43 . Este diretório existe para que você não precise se lembrar do número da versão.

Dados de exemplo e arquivos JAR podem ser encontrados no Hadoop Distributed File System em /example e /HdiSamples.

HDFS, Armazenamento do Azure e Armazenamento Data Lake

Na maioria das distribuições Hadoop, os dados são armazenados no HDFS. O HDFS é apoiado pelo armazenamento local nas máquinas do cluster. Usar o armazenamento local pode ser caro para uma solução baseada em nuvem, onde você é cobrado por hora ou por minuto pelos recursos de computação.

Ao usar o HDInsight, os arquivos de dados são armazenados de forma adaptável e resiliente na nuvem usando o Armazenamento de Blob do Azure e, opcionalmente, o Azure Data Lake Storage Gen1/Gen2. Estes serviços oferecem os seguintes benefícios:

  • Armazenamento barato a longo prazo.
  • Acessibilidade a partir de serviços externos, como sites, utilitários de upload/download de arquivos, SDKs de vários idiomas e navegadores da web.
  • Grande capacidade de arquivos e grande armazenamento adaptável.

Para obter mais informações, consulte Armazenamento de Blob do Azure, Azure Data Lake Storage Gen1 ou Azure Data Lake Storage Gen2.

Ao usar o armazenamento de Blob do Azure ou o Data Lake Storage Gen1/Gen2, você não precisa fazer nada de especial do HDInsight para acessar os dados. Por exemplo, o comando a seguir lista os /example/data arquivos na pasta, estejam eles armazenados no Armazenamento do Azure ou no Armazenamento Data Lake:

hdfs dfs -ls /example/data

No HDInsight, os recursos de armazenamento de dados (Armazenamento de Blobs do Azure e Armazenamento do Azure Data Lake) são dissociados dos recursos de computação. Você pode criar clusters HDInsight para fazer a computação conforme necessário e, posteriormente, excluir o cluster quando o trabalho for concluído. Enquanto isso, manter seus arquivos de dados persistia com segurança no armazenamento em nuvem pelo tempo que você precisasse.

URI e esquema

Alguns comandos podem exigir que você especifique o esquema como parte do URI ao acessar um arquivo. Ao usar armazenamento não padrão (armazenamento adicionado como armazenamento "adicional" ao cluster), você sempre deve usar o esquema como parte do URI.

Ao usar o Armazenamento do Azure, use um dos seguintes esquemas de URI:

  • wasb:///: Acesse o armazenamento padrão usando comunicação não criptografada.

  • wasbs:///: Acesse o armazenamento padrão usando comunicação criptografada. O esquema wasbs é suportado apenas a partir da versão 3.6 do HDInsight.

  • wasb://<container-name>@<account-name>.blob.core.windows.net/: Usado ao se comunicar com uma conta de armazenamento não padrão. Por exemplo, quando você tem uma conta de armazenamento adicional ou ao acessar dados armazenados em uma conta de armazenamento acessível publicamente.

Ao usar o Azure Data Lake Storage Gen2, use o seguinte esquema de URI:

  • abfs://: Acesse o armazenamento padrão usando comunicação criptografada.

  • abfs://<container-name>@<account-name>.dfs.core.windows.net/: Usado ao se comunicar com uma conta de armazenamento não padrão. Por exemplo, quando você tem uma conta de armazenamento adicional ou ao acessar dados armazenados em uma conta de armazenamento acessível publicamente.

Ao usar o Azure Data Lake Storage Gen1, use um dos seguintes esquemas de URI:

  • adl:///: Acesse o armazenamento Data Lake padrão para o cluster.

  • adl://<storage-name>.azuredatalakestore.net/: Usado ao se comunicar com um armazenamento Data Lake não padrão. Também usado para acessar dados fora do diretório raiz do cluster HDInsight.

Importante

Ao usar o Armazenamento Data Lake como o armazenamento padrão para o HDInsight, você deve especificar um caminho dentro do repositório para usar como a raiz do armazenamento do HDInsight. O caminho padrão é /clusters/<cluster-name>/.

Ao usar / ou adl:/// acessar dados, você só pode acessar dados armazenados na raiz (por exemplo, /clusters/<cluster-name>/) do cluster. Para acessar dados em qualquer lugar da loja, use o adl://<storage-name>.azuredatalakestore.net/ formato.

Qual é o armazenamento que o cluster está usando

Você pode usar o Ambari para recuperar a configuração de armazenamento padrão para o cluster. Use o seguinte comando para recuperar informações de configuração do HDFS usando curl e filtrá-las usando jq:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["fs.defaultFS"] | select(. != null)'

Nota

Este comando retorna a primeira configuração aplicada ao servidor (service_config_version=1), que contém essas informações. Talvez seja necessário listar todas as versões de configuração para encontrar a mais recente.

Este comando retorna um valor semelhante aos seguintes URIs:

  • wasb://<container-name>@<account-name>.blob.core.windows.net se estiver usando uma conta de Armazenamento do Azure.

    O nome da conta é o nome da conta de Armazenamento do Azure. O nome do contêiner é o contêiner de blob que é a raiz do armazenamento de cluster.

  • adl://home se estiver usando o Armazenamento do Azure Data Lake. Para obter o nome do Armazenamento Data Lake, use a seguinte chamada REST:

    curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["dfs.adls.home.hostname"] | select(. != null)'
    

    Este comando retorna o seguinte nome de host: <data-lake-store-account-name>.azuredatalakestore.net.

    Para obter o diretório dentro do repositório que é a raiz do HDInsight, use a seguinte chamada REST:

    curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["dfs.adls.home.mountpoint"] | select(. != null)'
    

    Este comando retorna um caminho semelhante ao seguinte caminho: /clusters/<hdinsight-cluster-name>/.

Você também pode encontrar as informações de armazenamento usando o portal do Azure usando as seguintes etapas:

  1. No portal do Azure, selecione seu cluster HDInsight.

  2. Na seção Propriedades , selecione Contas de armazenamento. As informações de armazenamento para o cluster são exibidas.

Como faço para acessar arquivos de fora do HDInsight

Há várias maneiras de acessar dados de fora do cluster HDInsight. A seguir estão alguns links para utilitários e SDKs que podem ser usados para trabalhar com seus dados:

Se estiver usando o armazenamento de Blob do Azure, consulte os links a seguir para obter maneiras de acessar seus dados:

  • CLI do Azure: comandos de interface de linha de comando para trabalhar com o Azure. Após a instalação, use o comando para obter ajuda sobre como usar o az storage armazenamento ou az storage blob para comandos específicos do blob.

  • blobxfer.py: Um script Python para trabalhar com blobs no Armazenamento do Azure.

  • Vários SDKs:

Se estiver usando o Azure Data Lake Storage Gen1, consulte os links a seguir para saber como você pode acessar seus dados:

Dimensionamento do cluster

O recurso de dimensionamento de cluster permite alterar dinamicamente o número de nós de dados usados por um cluster. Você pode fazer operações de dimensionamento enquanto outros trabalhos ou processos estão em execução em um cluster. Consulte Dimensionar clusters HDInsight

Como instalo o Hue (ou outro componente do Hadoop)?

O HDInsight é um serviço gerenciado. Se o Azure detetar um problema com o cluster, ele poderá excluir o nó com falha e criar um nó para substituí-lo. Quando você instala manualmente coisas no cluster, elas não são mantidas quando essa operação ocorre. Em vez disso, use as Ações de Script do HDInsight. Uma ação de script pode ser usada para fazer as seguintes alterações:

  • Instale e configure um serviço ou site.
  • Instale e configure um componente que exija alterações de configuração em vários nós no cluster.

Ações de script são scripts Bash. Os scripts são executados durante a criação do cluster e são usados para instalar e configurar componentes adicionais. Para obter informações sobre o desenvolvimento das suas próprias Ações de Script, consulte Desenvolvimento de Ações de Script com o HDInsight.

Arquivos Jar

Algumas tecnologias Hadoop fornecem arquivos jar independentes. Esses arquivos contêm funções usadas como parte de um trabalho MapReduce, ou de dentro do Pig ou Hive. Eles geralmente não exigem nenhuma configuração e podem ser carregados no cluster após a criação e usados diretamente. Se você quiser garantir que o componente sobreviva à recriação de imagens do cluster, armazene o arquivo jar no armazenamento padrão do cluster.

Por exemplo, se quiser usar a versão mais recente do Apache DataFu, você pode baixar um jar contendo o projeto e carregá-lo para o cluster HDInsight. Em seguida, siga a documentação do DataFu sobre como usá-lo do Pig ou Hive.

Importante

Alguns componentes que são arquivos jar autônomos são fornecidos com o HDInsight, mas não estão no caminho. Se você estiver procurando por um componente específico, você pode usar o seguinte para procurá-lo em seu cluster:

find / -name *componentname*.jar 2>/dev/null

Este comando retorna o caminho de todos os arquivos jar correspondentes.

Para usar uma versão diferente de um componente, carregue a versão que você precisa e use-a em seus trabalhos.

Importante

Os componentes fornecidos com o cluster HDInsight são totalmente suportados e o Suporte da Microsoft ajuda a isolar e resolver problemas relacionados a esses componentes.

Os componentes personalizados recebem suporte comercialmente razoável para ajudá-lo a solucionar ainda mais o problema. Isso pode resultar na resolução do problema OU pedir que você envolva os canais disponíveis para as tecnologias de código aberto onde o conhecimento profundo para essa tecnologia é encontrado. Por exemplo, há muitos sites da comunidade que podem ser usados, como: Página de perguntas e respostas da Microsoft para o HDInsight, https://stackoverflow.com. Além disso, os projetos Apache têm sites de projeto em https://apache.org, por exemplo: Hadoop, Spark.

Próximos passos