Informações sobre o uso do HDInsight no Linux

Os clusters do Azure HDInsight disponibilizam o Apache Hadoop em um ambiente Linux conhecido, em execução na nuvem do Azure. Para a maioria da coisas, ele deve funcionar exatamente como qualquer outra instalação do Hadoop no Linux. Este documento indica diferenças específicas que você deve estar atento.

Pré-requisitos

Muitas das etapas neste documento usam os seguintes utilitários, que talvez precisem ser instalados em seu sistema.

Usuários

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

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

Nomes de domínio

O FQDN (Nome de Domínio Totalmente Qualificado) a ser usado ao se conectar a um cluster na 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 do Ambari Web. Para retornar uma lista de hosts da API REST do Ambari, você também pode usar o seguinte:

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, insira a senha para a conta do administrador. Este comando retorna ao documento JSON que contém uma lista de hosts do cluster. jq é utilizado para extrair o valor do elemento host_name de cada host.

Se for necessário localizar o nome do nó para um serviço específico, você pode consultar o Ambari desse componente. Por exemplo, para localizar os hosts do nó do 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'

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

Acesso remoto aos serviços

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

    Autentique usando o usuário e a senha de administrador do cluster e faça logon no Ambari.

    A autenticação é texto sem formatação - sempre usar HTTPS para ajudar a garantir que a conexão seja segura.

    Importante

    Algumas das interfaces do usuário da web disponíveis por meio de dos nós de acesso do Ambari usando um nome de domínio interno. Nomes de domínio internos não são acessíveis publicamente na Internet. Você poderá receber erros de "servidor não encontrado" ao tentar acessar alguns recursos pela Internet.

    Para usar a funcionalidade completa da interface do usuário do Ambari Web, use um túnel SSH para tráfego Web de proxy para nó de cabeçalho 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

    Observação

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

    A autenticação é texto sem formatação - sempre usar HTTPS para ajudar a garantir que a conexão seja segura.

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

    Observação

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

    A autenticação é texto sem formatação - sempre usar 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 a conexão com o nó de cabeçalho primário, enquanto a 23 é usada para a conexão com o secundário. Para obter mais informações sobre os nós de cabeçalho, consulte Disponibilidade e confiabilidade de clusters do Apache Hadoop no HDInsight.

    Observação

    Você só pode acessar os nós de cabeçalho do cluster por meio de SSH de uma máquina cliente. Uma vez conectado, você pode acessar os nós de trabalho usando SSH em um nó de cabeçalho.

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

Locais de arquivos

Arquivos relacionados ao Hadoop encontram-se nos nós de cluster em /usr/hdp. O diretório raiz 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 em seu cluster pode ser diferente do listado aqui.
  • atual: Esse diretório contém links para subdiretórios no diretório 2.6.5.3009-43. Esse diretório existe para que não seja necessário lembrar do número da versão.

Dados de exemplo e arquivos JAR podem ser encontrados no Sistema de Arquivos Distribuído Hadoop em /example e /HdiSamples.

HDFS, Armazenamento do Azure e Data Lake Storage

Na maioria das distribuições do Hadoop, os dados são armazenados no HDFS. O backup do HDFS é feito pelo armazenamento local nos computadores do cluster. Utilizar armazenamento local pode ser dispendioso para uma solução baseada em nuvem onde você é cobrado por hora ou minuto por recursos de computação.

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

  • Armazenamento de longo prazo econômico.
  • Acessibilidade de serviços externos como sites, utilitários de upload/download de arquivos, vários SDKs de idioma e navegadores da Web.
  • Grande capacidade de arquivos e grande armazenamento adaptável.

Para saber mais, confira Armazenamento de blobs 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 precisará fazer nada especial no HDInsight para acessar os dados. Por exemplo, o comando a seguir lista os arquivos na pasta /example/data, caso ele esteja armazenado no Armazenamento do Azure ou no Data Lake Storage:

hdfs dfs -ls /example/data

No HDInsight, os recursos de armazenamento de dados (Armazenamento de Blobs do Azure e Azure Data Lake Storage) são separados dos recursos de computação. Crie clusters do HDInsight para fazer a computação conforme necessário e, posteriormente, exclua o cluster quando o trabalho for concluído. Enquanto mantém os arquivos de dados persistentes com segurança no armazenamento em nuvem, o quanto for necessário.

URI e esquema

Alguns comandos podem exigir que você especifique o esquema como parte do URI ao acessar um arquivo. Ao usar um armazenamento não padrão (armazenamento incluído como “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:///: Acessar o armazenamento padrão usando comunicação não criptografada.

  • wasbs:///: Acessar o armazenamento padrão usando comunicação criptografada. O esquema wasbs tem suporte somente da versão 3.6 do HDInsight em diante.

  • wasb://<container-name>@<account-name>.blob.core.windows.net/: Usado ao se comunicar com uma conta de armazenamento não padrão. Por exemplo, se você tiver uma conta de armazenamento adicional ou ao acessar dados armazenados em uma conta de armazenamento com acesso público.

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

  • abfs://: Acessar 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, se você tiver uma conta de armazenamento adicional ou ao acessar dados armazenados em uma conta de armazenamento com acesso público.

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

  • adl:///: Acessar o Data Lake Storage padrão para o cluster.

  • adl://<storage-name>.azuredatalakestore.net/: Utilizado ao se comunicar com uma conta do Data Lake Storage não padrão. Também é utilizado para acessar dados fora do diretório raíz do seu cluster HDInsight.

Importante

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

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

Que armazenamento o cluster está usando

Você pode usar o Ambari para recuperar a configuração de armazenamento padrão para o cluster. Use o comando a seguir para recuperar informações de configuração do HDFS usando o curl e as filtre usando o 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)'

Observação

Esse 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 localizar a mais recente.

Esse comando retorna um valor semelhante às URIs a seguir:

  • 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 Microsoft Azure. O nome do contêiner é o contêiner de blob que é a raiz do armazenamento de cluster.

  • adl://home se usar o Azure Data Lake Storage. Para obter o nome do Data Lake Storage, 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)'
    

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

    Para obter o diretório no repositório, ou seja, a raiz para o 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)'
    

    Esse comando retorna uma resposta semelhante à seguinte: /clusters/<hdinsight-cluster-name>/.

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

  1. No Portal do Azure, escolha o cluster HDInsight.

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

Como acessar arquivos fora do HDInsight

Há várias maneiras de acessar dados de fora do cluster do HDInsight. A seguir, há 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 ver algumas maneiras de acessar os seus dados:

  • CLI do Azure: Comandos de interface de linha de comando para trabalhar com Azure. Depois de instalar, use o comando az storage para obter ajuda sobre o uso do armazenamento ou az storage blob para comandos específicos do blob.

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

  • Vários SDKs:

Se estiver usando o Azure Data Lake Storage Gen1, confira os links a seguir para ver algumas maneiras de acessar os seus dados:

Dimensionar o cluster

O recurso de dimensionamento de clusters permite que você altere a quantidade de nós de dados utilizados por um cluster. Você pode executar operações de dimensionamento enquanto outros trabalhos ou processos estão sendo executados em um cluster. Veja Escalar clusters HDInsight

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

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

  • Instale e configure um serviço ou um site da Web.
  • Instalar e configurar um componente que requer 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 saber mais sobre como desenvolver suas próprias ações de script, consulte Desenvolvimento de ação de script com o HDInsight.

Arquivos Jar

Algumas tecnologias do Hadoop fornecem arquivos jar independentes. Esses arquivos contêm funções usadas como parte de um trabalho MapReduce ou de dentro do Pig ou do Hive. Geralmente, elas não exigem nenhuma configuração e podem ser carregadas no cluster após a criação e usadas diretamente. Se você deseja verificar se o componente resistirá ao refazer a imagem do cluster, armazene o arquivo jar no armazenamento padrão do cluster.

Por exemplo, para usar a versão mais recente do Apache DataFu, faça o download de um jar que contém o projeto e carregue-o no cluster HDInsight. 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 acompanhamento para procurá-lo em seu cluster:

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

Esse comando retornará o caminho de arquivos jar correspondentes.

Para utilizar uma versão diferente de um componente, carregue a versão necessária e utilize-a em seus trabalhos.

Importante

Há suporte total a componentes fornecidos com o cluster do HDInsight e o Suporte da Microsoft ajudará a isolar e resolver problemas relacionados a esses componentes.

Componentes personalizados recebem suporte comercialmente razoável para ajudá-lo a solucionar o problema. Isso pode resultar na resolução do problema ou na solicitação de você buscar nos canais disponíveis as tecnologias de código-fonte aberto, onde é possível encontrar conhecimento aprofundado sobre essa tecnologia. 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 do Apache têm sites de projetos em https://apache.org, por exemplo: Hadoop, Spark.

Próximas etapas