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.
- cURL - usado para comunica-se com serviços baseados na Web.
- jq, um processador JSON de linha de comando. Consulte https://stedolan.github.io/jq/.
- CLI do Azure - usada para gerenciar remotamente os serviços do Azure.
- Um cliente SSH. Para saber mais, confira Conectar-se ao HDInsight (Apache Hadoop) usando SSH.
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 Gen2/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.
Consulte Armazenamento de Blobs do Azure e Azure Data Lake Storage Gen2 para obter mais informações.
Ao usar o Armazenamento de Blobs do Azure ou o Data Lake Storage Gen2/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.
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:
No Portal do Azure, escolha o cluster HDInsight.
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 ouaz 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:
- Navegador da Web
- PowerShell
- CLI do Azure
- API de REST WebHDFS
- Ferramentas do Data Lake para Visual Studio
- .NET
- Java
- Python
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 de comunidade que podem ser usados, como: página de perguntas do Microsoft Q&A 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.