Posts in Category: big data

Big Data, Hadoop e HDFS para os iniciantes em ciência de dados

Ao entrar em algumas lojas Marisa no centro de São Paulo, a locutora diz “use o wifi da Marisa para fotografar seus looks no provador”. Por algum tempo tentou-se descobrir uma forma de monitorar o comportamento do cliente offline e o oferecimento do wi-fi gratuito já está sendo implementado aos poucos pelo varejo. A Marisa, se for mais esperta do que imagino, poderá somente com isso saber o comportamento de centenas de pessoas que entram em suas lojas diariamente e obter uma enorme quantidade de insights.

Será que a mulherada vai diretamente para as seções dos looks ou para as promoções? Lingerie ou acessórios? Cartão de crédito ou sapatos? Será que a sazonalidade influencia? Se está frio eu devo esconder os bikinis e oferecer uma maior oferta de meias? E quem entrou em minha loja, experimentou e não comprou nada? Eu posso ter indícios disso do por quê, certo? Concordamos aqui que é um bando de informação. Ao lado disso tem mais dados vindo de todos os lados: das compras das pessoas desta loja, do setor de telemarketing com as reclamações, do Google Trends, da loja física, etc. Após a extração das informações, elas chegarão em em três formatos: não estruturada (80%), estruturada ou semi estruturada. Uma coisa não muda em nenhuma das três, o volume.  Neste cenário, entra o cientista de dados que minera informações para tomada de decisão.

Leia mais: Varejo oferece Wi-Fi gratuito para agradar e, ao mesmo tempo, entender melhor o cliente

Tá e esse tal de Big Data?

De forma clássica, big data é a forma que encontraram para descrever o imenso volume de dados que cresceram com as plataformas digitais e que podem trazer insights para obtermos melhores decisões e estratégias de negócio. É comportamento, é mina de ouro. Se antes não tínhamos noção de quem era o cliente, hoje sabemos demais, como no caso citado acima. Outro ponto fundamental é o barateamento do armazenamento das informações, o que torna possível até uma startup ser data driven. O volume de informação não para de crescer porque de toda a quantidade de dados disponível hoje, aproximadamente 90% foram produzidas nos últimos dois anos 

Um projeto de Big Data (responsável) é composto geralmente por 5 profissionais:  Gerente de big data, Engenheiro de dados, Administrador de banco de dados, Designer de big data e analista de dados. As skills principais envolvem programação, matemática e estatística. Em 2016 quando fui aprender python em um workshop não imaginava como a desmitificação da programação no período foi importante neste caminho profissional.

Resultado de imagem para https://i.pinimg.com/564x/42/0d/62/420d6288d8c0b7deb3ab24c5d468bde7.jpg

Sobre o analista de dados, eu, particulamente, defendo que exista mais uma cisão entre o analista de dados (geral ou específico) e o analista de dados de redes sociais, sobretudo se a empresa tiver um grande volume de conversas que mencionam sua empresa (ou o seu negócio). Ambos vão trabalhar com as mesmas ferramentas de mineração de informação, mas terão rotinas diferentes e insights bem diferentes que convergem em torno do negócio. Acho pouco provável que um bom analista de dados consiga dar conta da análise de centenas de milhares de “logs” de consumidores na loja física e outros milhares de tweets em um dia falando sobre a nova campanha da empresa. Neste ecossistema acima, eu ainda argumento a importância de um pesquisador contratado, com as mesmas skills dos analistas, porém um “outsider” que consiga descobrir novidades e trazer soluções que passariam desapercebidas pelo operacional das empresas, visto que estão ocupados com os problemas do dia a dia. Este pesquisador não estaria contaminado pela cultura local e traria uma visão altamente especializada de acordo uma necessidade específica, como redução de custo, por exemplo. Não é consultoria com meia dúzia de conselhos e a recomendação de remédio para um paciente; ou é medicina preventiva ou socorro médico em zona de guerra.  Se bem que na era da vantagem competitiva, nós já estamos no segundo cenário. 

“Atualmente, Ricieri tem se dedicado ao aperfeiçoamento da logística de uma usina de etanol. A “cobaia”, nesse caso, foi a Usina São Domingos, localizada na cidade de Catanduva, no interior de São Paulo. Por meio de equações gigantescas — que levam horas para ser processadas nos computadores da empresa –, o matemático conseguiu combinar mais de 20 milhões de variáveis, como tipo de adubo, espécie de cana, local de plantio e logística. O resultado foi um sistema mais eficiente de produção e transporte que promete aos donos da usina redução de custos de 30% nos próximos cinco anos. O método do “matemático” também leva em conta as oscilações do mercado financeiro. Assim, é possível prever se haverá maior lucratividade na produção de álcool ou açúcar num determinado período. “Esta será a usina mais moderna e eficiente do Brasil”, garante Rodrigo Sanchez, um dos donos da São Domingos, empresa que fatura 140 milhões de reais ao ano.” Via: Exame

Um processo em Big Data é composto por fonte de dados, que podem ser vindos de um CRM (Excel, etc), aquisição (extração de dados de fontes externas),  armazenamento (depósito de dados), análises, claro e, por fim, relatórios. Por este motivo que storytelling é uma das atividades principais neste processo final. Independente de robustos (ou parcos) dados das pesquisas realizadas por mim, eu sempre me preocupei em contar histórias com informação. Não há nada mais chato do que apresentar relatórios onde as pessoas pegam os celulares poucos minutos após as apresentações terem começado numa reunião.

Em específico, sobre armazenamento, existem 4 tipos de armazenamento em Big Data: orientado a chave-valor, orientado a colunas, orientado a documentos e orientado a grafos – não relacionado diretamente com análise em sites de redes sociais. Neste post em específico eu vou falar do Hadoop e HDFS, tecnologias estudadas no primeiro módulo do meu MBA. Fiz questão de incluir como entram as ferramentas de análise de redes sociais já conhecidas neste cenário. Antes de entrar no tema do Hadoop, veja abaixo a tabela que mostra os 8 tipos de dados:

Ferramentas Estruturados Dados semi estruturados Dados não estruturados Dados internos Dados externos Gerados por humanos  Sistemas de negócios Gerados por máquina
Facebook Insights x x
Google Analytics x x
Reclame Aqui x
Social media x x x x
CRM x x x x x
E-mail x x x x
Logs x x
SCUP, Stilingue x x x

Pense, por exemplo, no analista da Marisa no inicio da semana. Digamos que hoje é segunda-feira, e ele tem 2 terabytes de informações de 6 meses de logs de wifi de SP com campos como horário, endereço e, claro, comportamento. Ele precisa identificar os padrões e o framework  Hadoop permite analisar informação volumosa de forma otimizada.

Ferramentas de big data: Hadoop 

Open source, o Hadoop permite a execução de aplicações utilizando milhares de máquinas com recursos de armazenamento, gerenciamento e processamento distribuído de dados. Foi projetado para o processamento de lotes de grandes conjuntos de dados por ser mais barato, flexível e escalável. Em computação, escalabilidade significa a capacidade de manipular uma porção crescente, sem afetar desempenho. O framework possui um ecossistema tão completo que as empresas escolhem a solução, em conjunto com outras, de acordo com a necessidade.

Ele possui dois componentes principais, o HDFS e o Mapreduce (assunto do próximo post). O HDFS é otimizado para ler/armazenar grandes arquivos em um cluster porque os arquivos são divididos em blocos de 128MB e replicados, para serem mais tolerante as falhas. É composto por 3 tipos de processo: Namenode, Datanode e SecondaryNamenode. O primeiro gerencia o namespace do sistema de arquivos Hadoop, o segundo armazena o bloco de dados em um nó e o terceiro oferece tarefas de ponto de verificação e manuntenção de Namenode.  Abaixo, o canal InfoQ traz uma excelente explicação visual do processo (usando legos!!) que mostra como a divisão da informação garante que eu não perca um bloco inteiro de dados, caso haja uma falha em um dos sistemas do cluster.

Estou falando de nós e clusters, mas em computação, eles possuem um conceito diferente de análise de rede:

Um cluster (do inglês cluster : ‘grupo, aglomerado’) consiste em computadores fracamente ou fortemente ligados que trabalham em conjunto, de modo que, em muitos aspectos, podem ser considerados como um único sistema. Diferentemente dos computadores em grade, computadores em cluster têm cada conjunto de nós, para executar a mesma tarefa, controlado e programado por software.[1]

Comandos gerais do HDFS

Os comandos são executados dentro de um terminal em uma máquina virtual Cloudera, que pode ser instalado no VirtualBox ou VMware. É preciso exportar a base de dados para a pasta documentos (ou outra de sua preferência), afim de manipular as informações. Abaixo estão alguns dos comandos utilizados na análise de informações. A lista completa está no File System.

Comandos Função
-mkdir Criação de diretório
-ls Verificar se um diretório foi criado
-put + caminho local do arquivo Envio de base de dados para o HDFS
-ls + input Listando os arquivos armazenados no HDFS
-tail + input/arquivo Visualizando o conteúdo em kbytes do arquivo HDFS
-cat + input/arquivo Visualizar o conteúdo completo do arquivo no HDFS
-get + caminho do arquivo no Cloudera Copiando o arquivo do HDFS para a máquina virtual
-rm + -ls Remover um arquivo
-r Remoção de diretórios
Hdfs balancer Execução de balanceamento
Hdfs dfsadmin -report Gerando um diretório no cluster

Este post foi baseado livremente no material exclusivo de ensino da professora Rosângela Pereira, especialista em java. Não tem por intenção ensinar e sim compartilhar conhecimento. Use as fontes linkadas para aprender mais. 🙂

Ferramenta | Cloudera/Eclipse rodando liso no IOS High Sierra

Para contar palavras contidas em milhares de tweets, afim de fazermos análise com um grande volume de dados, nós podemos usar o programa ‘word count’ em hadoop/cloudera/eclipse. Daí que eu tenho um macbook air com 4G de memória que não é uma grande potência.

Depois de rondar muito a internet, eu achei o tutorial perfeito que não precisa usar o VMWare Fusion com trial de 30 dias.

  • Instale o Virtualbox. Pode dar um erro do tipo “fatal no bootable medium found system halted”, mas fique tranquilo. É por quê está faltando uma ISO que pode ser Windows (versão paga) ou Ubuntu (gratuito). 
  • Baixe o Ubuntu 64bits (se for o de 32 bits não vai rodar)
  • Depois, instale o Cloudera dentro do Virtualbox usando o Ubuntu (não precisa baixar o Ubuntu dentro do virtualbox, só usar sua ISO)

O passo a passo está neste vídeo.