Banco de Dados

23 dez, 2011

Introdução à analítica de dados com base em Hadoop no IBM SmartCloud Enterprise

Publicidade

A computação em nuvem e a analítica de big data são duas áreas de tecnologia que estão ganhando muita força ultimamente:

  • A computação em nuvem fornece os benefícios da elasticidade, acesso sob demanda aos recursos e faturamento parecido com utilitário;
  • O processamento e a analítica de big data com o Hadoop fornecem uma estrutura que aproveita esses recursos por meio da distribuição da carga de trabalho em um cluster de computadores.

Graças à nuvem e ao Hadoop, agora é possível lidar com grandes quantidades de dados estruturados, ou não estruturados, de uma maneira pontual. O Hadoop não foi desenvolvido para ambientes virtualizados como aqueles fornecidos pela nuvem. Ainda assim, a nuvem fornece um ambiente de fácil configuração e com ótimo custo benefício. Os resultados da execução de um trabalho do Hadoop em nós físicos provavelmente serão superiores à execução do mesmo trabalho em nós virtualizados na nuvem. No entanto, a nuvem abriu as portas para qualquer tipo de usuário executar um trabalho do Hadoop, o que significa que um usuário é capaz de manipular big data, algo impossível no passado.

Atualmente, faltam pessoas qualificadas para configurar e gerenciar as tecnologias em nuvem e o Hadoop. Com as instruções práticas deste artigo, você conseguirá começar a trabalhar com essas tecnologias de forma rápida e efetiva. Este artigo mostra:

  • O processo de fornecimento de três instâncias no IBM SmartCloud Enterprise para a configuração de um cluster com três nós;
  • Como verificar se seu cluster está funcionando ao parar e iniciar todos os componentes do Hadoop, testar alguns comandos e revisar o console da Web.

Você poderá seguir as mesmas instruções deste artigo para configurar um cluster maior que atenda às suas necessidades.

Antes de iniciar

O software IBM InfoSphere BigInsights Basic (BigInsights) é usado neste artigo. BigInsights é a distribuição da IBM do Hadoop com recursos adicionais. A edição básica está disponível gratuitamente.

Você pode ver uma demonstração em vídeo da configuração descrita neste artigo no curso online gratuito Noções básicas I do Hadoop no BigDataUniversity.com. Lá você também encontra demonstrações da execução de alguns comandos do Hadoop no IBM Cloud. Esse material é fornecido em, “Lesson 1: Hands-on lab: Creating your own Hadoop cluster, Option 3” do curso.

Pronto para começar? Você precisará de uma conta no IBM Cloud.

Introdução à analítica de dados na nuvem

Para fornecer as três instâncias no IBM Cloud para configurar um cluster com três nós, verificar e testar seu cluster:

  • Efetue logon no IBM Cloud;
  • Forneça uma instância de nó do BigInsights Master;
  • Forneça uma instância de nó do BigInsights Data;
  • Verifique se seu cluster do Hadoop está funcionando.

Etapa 1: Efetuar logon no IBM Cloud

   1. Abra a página do portal IBM Cloud para efetuar sign in;

   2. Insira seu ID do usuário e a senha e clique em Submit.

3. Depois de efetuar o logon, o painel do IBM Cloud abre com a guia Overview selecionada. Isso exibe as instâncias fornecidas no passado. Clique na guia Control panel.

Etapa 2: Fornecendo uma instância do BigInsights Master Node

No momento da gravação, o IBM Cloud oferece dois tipos de imagens para o BigInsights:

  • Nó IBM BigInsights Basic 1.1 Hadoop Master;
  • Nó IBM BigInsights Basic 1.1 Hadoop Data.

Essas imagens estão em execução no RedHat Enterprise Linux (RHEL) 5.6, 64 bits, com a opção “pay as you go”. Como mencionado anteriormente, não há cobrança para a edição do BigInsights Basic, mas há uma cobrança de US$ 0,30/hora (no momento da gravação) pelo uso do RHEL e da infraestrutura do IBM Cloud.

O Hadoop usa uma arquitetura mestre-escravo na qual o mestre inclui um NameNode e um nó JobTracker e os escravos incluem um DataNode e um nó TaskTracker.

O Hadoop pode ser configurado de modo que você trabalhe em um dos três modos diferentes:

  • modo standalone: não inicia todos os componentes e trabalha em um único nó;
  • modo pseudo-distributed: inicia todos os componentes e trabalha em um único nó;
  • modo fully distributed: inicia todos os componentes e exige que você trabalhe em mais de um nó.

Os modos standalone e pseudo-distributed são normalmente usados no desenvolvimento, ou teste, enquanto o modo totalmente distribuído é normalmente usado em cenários de produção.

Este artigo presume que você esteja trabalhando no modo pseudo-distributed, ou no modo fully distributed, dependendo se você fornece nós Hadoop Data, além do nó Hadoop Master.

  • Se você fornecer apenas um nó Hadoop Master e, portanto, trabalhar apenas nesse único nó, estará trabalhando no modo pseudo-distributed;
  • Se você fornecer um ou mais nós Hadoop Data, além do nó Hadoop Master, estará trabalhando no modo fully distributed.

As imagens do IBM Cloud BigInsights foram configuradas de modo que o cluster seja facilmente desenvolvido por meio da especificação do endereço IP do nó Hadoop Master, ao fornecer nós Hadoop Data. A instância do nó Hadoop Master precisa ser fornecida primeiro.

Se você quiser trabalhar no modo standalone, poderá fornecer um nó BigInsights Master e configurar esse modo de operação no Hadoop comentando quaisquer parâmetros nos arquivos core-site.xml, hdfs-site.xml e mapred-site.xml.

Vamos fornecer a instância do nó Hadoop Master.

1. Na guia Control panel, clique em Add instance:

2. Selecione o datacenter no qual deseja executar sua instância:

As imagens do BigInsights devem estar disponibilizadas em todos os datacenters. Neste exemplo, o datacenter de Markham, Canadá, foi selecionado.

3. Após a seleção do datacenter, uma lista de imagens disponíveis nesse datacenter é exibida. Selecione a imagem IBM BigInsights Basic 1.1 – Hadoop Master Node e clique em Next:

4. Configure a imagem BigInsights Hadoop Master Node:

Neste exemplo, a instância é chamada “Hadoop master”

Para a opção Server configuration, Copper provavelmente é um tamanho bom o suficiente para sua instância, supondo que você esteja apenas experimentando e não configurando realmente para produção. Se você estiver configurando para produção, revise o desempenho de seus trabalhos do MapReduce com cada um dos tamanhos de configuração (Copper, Bronze, Silver, Gold, Platinum) no IBM Cloud. Também é possível tentar as referências especificadas no wiki Hadoop (ver em Recursos). Se você tentar essas referências, tente-as somente com um nó (o nó Hadoop Master). Depois de configurar seu cluster, é possível repetir as referências. Para as imagens do BigInsights IBM Cloud em específico, os seguintes comandos precisam ser executados para a referência:

cd /mnt/biginsights/opt/ibm/biginsights/IHC
hadoop jar hadoop-*-examples.jar randomwriter rand
hadoop jar hadoop-*-examples.jar sort rand rand-sort

Como eu já trabalhei com o IBM Cloud, tenho chaves geradas anteriormente em Key. Portanto, vou reutilizar uma dessas chaves. Este exemplo usa IBM Cloud Raul.

    5. Mantenha o padrão para todos os outros parâmetros e clique em Next.

6. Um resumo das configurações especificadas para sua imagem é exibido. Se estiver satisfeito, clique em Next:

7. Um contrato de prestação de serviço é apresentado. É necessário atender aos termos do contrato para continuar. Clique em I agree (se você concordar!) e clique em Submit:

8. Um painel de mensagem de êxito é exibido após o envio de sua solicitação para fornecimento da imagem:

9. Alguns minutos depois, sua instância é solicitada, fornecida e ativada, o que significa que ela está pronta para uso. Para essa imagem, todos os componentes do Hadoop são automaticamente iniciados assim que a imagem entra no status ativo. O endereço IP da instância também deve ser exibido, como mostra a seguir:

Neste exemplo, o endereço IP atribuído a essa instância do nó Hadoop Master é 170.224.193.137. Anote esse número, ele será usado ao fornecer os nós do Hadoop Data.

Etapa 3: Fornecimento de uma instância do nó BigInsights Data

Após o fornecimento da instância do nó Hadoop Master, inicie o fornecimento de quantos nós Data quiser para uso em seu cluster. Nesse caso, convém fornecer dois nós Data para desenvolver um cluster de Hadoop com três nós.

Como o processo de fornecimento de uma instância de nó Hadoop Data é muito parecido com o fornecimento de uma instância de nó Hadoop Master, somente as etapas que são diferentes ou que exigem atenção são descritas aqui.

1. A pior situação ao trabalhar com o Hadoop é acessar os dados em datacenters diferentes. Portanto, nesse exemplo, o mesmo datacenter escolhido para o nó Master (Markham, Canadá) é usado. No entanto, para a imagem escolha o nó IBM BigInsights Basic 1.1 – Hadoop Data , como mostra a próxima imagem:

2. Insira Hadoop slave 1 como o nome da instância. Para todas as outras configurações, mantenha o padrão ou mantenha os mesmos valores escolhidos para o nó Hadoop Master:

3. Depois de configurar seu nó BigInsights Hadoop Data, insira o endereço IP do nó Hadoop Master no painel exibido. Isso é necessário para que o nó Hadoop Data possa ser automaticamente adicionado ao cluster. Insira o endereço IP e clique em Next. Neste exemplo, o endereço IP do nó Hadoop Master é 170.224.193.137:

  1. Continue com as próximas etapas, aceitando o padrão, para adicionar a instância do nó Hadoop Data.
  2. Repita exatamente o mesmo processo para criar outro nó Hadoop Data. Dessa vez, dê a ele o nome de Hadoop slave 2.

A figura seguir mostra a instância do Hadoop Master e as duas instâncias do nó (slave) Hadoop Data.

Quando todas as instâncias tiverem sido fornecidas e estiverem ativas, seu cluster Hadoop estará pronto para uso. Parabéns!

Etapa 4: Verificando se seu cluster Hadoop está funcionando corretamente

1. Na guia Control panel do IBM Cloud, clique na instância Hadoop master . Role a tela para baixo. Você verá informações parecidas com as exibidas na duas imagens a seguir:

A imagem mostra um resumo do que foi configurado para o nó Hadoop Master:

A figura anterior mostra uma lista de links úteis para o monitoramento de seu cluster. Em particular, observe o primeiro link BigInsights Web Console. Quando você clicar nesse link, o Web Console abre em seu navegador, como mostra a figura a seguir:

2. No Web Console do BigInsights, confirme se o cluster Hadoop está em execução por meio da seção Components, verificando se cada componente foi iniciado. Na seção Start Stop Summary, verifique se os três nós foram iniciados.

3. Vamos experimentar alguns comandos. Use putty para ssh no nó Master. Assim como em outras instâncias no IBM Cloud, especifique idcuser como o usuário.

4. Pare todos os componentes do Hadoop com o comando stop-all.sh:

5. Agora, inicie todos os componentes do Hadoop com o comando start-all.sh:

6. Execute estes comandos para verificar se tudo está funcionando adequadamente:

  • hadoop fs -ls /
    Isso testa se o Hadoop Distributed File System (HDFS) está funcionando ao listar todos os arquivos e diretórios na raiz de HDFS.
  • pig
    Grunt> quit;
    Isso inicia o pig e sai.
  • hive
    Hive> quit
    Isso inicia o hive e sai.
  • jaqlshell
    Jaql> quit;
    Isso inicia o jaql e sai.

Esses mesmos comandos e saídas são exibidos a seguir:

Conclusão

Este artigo descreveu instruções detalhadas para a configuração rápida de um cluster Hadoop com três nós no IBM Cloud. O processo é bem simples e pode ser replicado para um cluster maior. É necessário se certificar de que o nó Hadoop Master tenha sido fornecido primeiro e anotar seu endereço IP para que você possa especificá-lo ao fornecer seus nós Hadoop Data.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

***

Sobre o autor: Raul F. Chong é gerente de programa DB2 no IBM Information Management Cloud Computing Center of Competence no IBM Toronto Laboratory. Raul é DB2 Certified Solutions Expert em desenvolvimento de aplicativos e administração do DB2. Ocupou diversos cargos na IBM desde 1997, e é o autor principal do livro Understanding DB2 – Learning Visually with Examples 2nd Edition (ISBN-10: 0131580183).