Um mergulho profundo no porco



Esta postagem do blog é um mergulho profundo no Pig e suas funções. Você encontrará uma demonstração de como trabalhar no Hadoop usando Pig sem dependência de Java.

Um dos maiores motivos pelos quais a popularidade do Hadoop disparou nos últimos tempos é o fato de que recursos como Pig e Hive são executados em cima dele, permitindo a não-programadores uma funcionalidade que antes era exclusiva dos programadores Java. Esses recursos foram consequência da crescente demanda por profissionais do Hadoop. Outros recursos usados ​​por profissionais do Hadoop de origens não Java são Flume, Sqoop, HBase e Oozie.





Para entender por que você não precisa de Java para aprender Hadoop, dê uma olhada este blog .

História de 1 Pig



Vamos entender como esses recursos funcionam.

Todos nós sabemos que o conhecimento de programação é uma necessidade para escrever códigos MapReduce. Mas e se eu tiver uma ferramenta que pode fazer a codificação se eu apenas fornecer os detalhes? É aí que Pig exibe sua força muscular. O Pig usa uma plataforma chamada Pig Latin que abstrai a programação do idioma Java MapReduce em uma notação que torna a programação MapReduce de alto nível, semelhante à do SQL para sistemas RDBMS. Os códigos escritos em Pig Latin MapReduce são automaticamente convertidos em funções MapReduce equivalentes. Não é incrível? Outro fato surpreendente é que apenas 10 linhas de porco são necessárias para substituir 200 linhas de Java.



como escrever um scanner em java

10 linhas de Pig = 200 linhas de Java

Isso não significa apenas que os profissionais não Java usam o Hadoop, mas também atesta o fato de que o Pig é usado por um número igual de desenvolvedores técnicos.

Além disso, se você quiser escrever seu próprio código MapReduce, você pode fazer isso em qualquer uma das linguagens como Perl, Python, Ruby ou C. Algumas operações básicas que podemos realizar em qualquer conjunto de dados usando Pig são Grupo, Juntar, Filtrar e Classificar . Essas operações podem ser realizadas em dados estruturados, não estruturados e também semiestruturados. Eles fornecem uma maneira ad-hoc de criar e executar trabalhos MapReduce em conjuntos de dados muito grandes.

A seguir, vamos entender o Hive. É uma estrutura de armazenamento de dados em escala de peta-bytes de código aberto baseada em Hadoop para resumo, consulta e análise de dados. O Hive fornece uma interface semelhante a SQL para Hadoop. Você pode usar o Hive para ler e gravar arquivos no Hadoop e executar seus relatórios a partir de uma ferramenta de BI. Algumas funcionalidades típicas do Hadoop são:

Deixe-me mostrar uma demonstração usando Pig no conjunto de dados Clickstream
Usaremos esses dados de fluxo de cliques e realizaremos transformações, junções e agrupamentos.

ClickStream é uma série de cliques do mouse feitos por um usuário enquanto acessa a Internet, especialmente monitorados para avaliar os interesses de uma pessoa para fins de marketing. É usado principalmente por sites de varejo online, como Flipkart e Amazon, que rastreiam suas atividades para gerar recomendações. O conjunto de dados Clickstream que utilizamos possui os seguintes campos:

1. Tipo de idioma compatível com o aplicativo da web

2. Tipo de navegador

3. Tipo de conexão

4. ID do país

5. Carimbo de data / hora

6. URL

7. Status do usuário

8. Tipo de usuário

Será assim com os campos apropriados.

Abaixo está a lista de tipos de navegadores que foram usados ​​por várias pessoas ao navegar em um determinado site. Na lista estão navegadores como Internet Explorer, Google Chrome, Lynx e outros.

O tipo de conexão com a Internet pode ser Lan / Modem / Wifi. Veja a imagem abaixo para a lista completa:

Na próxima imagem, você encontrará a lista dos países de onde o site atraiu audiência junto com seus IDs.

Depois de reunir todos os conjuntos de dados, temos que lançar o shell Grunt do Pig, que é lançado para executar os comandos do Pig.

A primeira coisa que temos que fazer ao iniciar o Grunt shell é carregar os dados do Clickstream na relação do Pig. Uma relação nada mais é do que uma mesa. Abaixo está o comando que usamos para carregar um arquivo residente no HDFS na relação do Pig.

Podemos verificar o esquema da relação pelo comando descrever click_stream.

Agora precisamos adicionar os arquivos de referência que conterão detalhes sobre a lista de países com seus IDs e os diferentes tipos de navegadores junto com seus IDs.

Agora temos dois arquivos de referência, mas eles precisam estar conectados para formar uma relação.
Executamos um comando connection_ref para indicar o tipo de conexão.

Agora que temos uma conexão funcionando e uma relação estabelecida, mostraremos como podemos transformar esses dados.
Para cada registro no Clickstream, geraremos um novo registro em um formato diferente, ou seja, os dados transformados. O novo formato incluirá campos como TimeStamp, tipo de navegador, IDs de país e alguns mais.

Podemos realizar uma operação de filtro para reduzir o Big Data. Os diferentes tipos de usuários são Administradores, Convidados ou Bots. Em nossa demonstração, filtramos a lista dos Convidados.

Se você se lembra, o ID do país está presente no Clickstream e carregamos um arquivo country_ref contendo os nomes dos países junto com seus IDs. Podemos, portanto, realizar uma operação de junção entre os dois arquivos e mesclar os dados para obter insights.

Se juntarmos os dados, então podemos descobrir os diferentes países onde os usuários estão por agrupamento. Assim que tivermos esses dados, podemos realizar uma operação de contagem para identificar o número de usuários de um determinado país.

Não é nenhuma ciência do foguete derivar insights de Big Data. Esses são apenas alguns dos muitos recursos que implementei e, com ferramentas como Hive, Hbase, Oozie, Sqoop e Flume, há um tesouro de dados ainda a ser explorado. Então, aqueles de vocês que estão se impedindo de aprender Hadoop, é hora de mudar.

Tem alguma questão para nós? Mencione-os na seção de comentários e entraremos em contato com você.

Postagens relacionadas:

4 maneiras de usar R e Hadoop juntos

Tudo sobre Cloudera Certified Developer para Apache Hadoop