0% acharam este documento útil (0 voto)
0 visualizações24 páginas

Teo Rico

O documento aborda projetos importantes do Hadoop, como Mahout e Spark, incluindo suas funcionalidades e instalação. O objetivo é capacitar os alunos na instalação do Hadoop e na execução de tarefas como contagem de palavras. Além disso, oferece orientações de estudo e práticas recomendadas para maximizar a aprendizagem.

Enviado por

amany.sleima
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
0 visualizações24 páginas

Teo Rico

O documento aborda projetos importantes do Hadoop, como Mahout e Spark, incluindo suas funcionalidades e instalação. O objetivo é capacitar os alunos na instalação do Hadoop e na execução de tarefas como contagem de palavras. Além disso, oferece orientações de estudo e práticas recomendadas para maximizar a aprendizagem.

Enviado por

amany.sleima
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Big Data

Material Teórico
Outros Projetos Importantes do Hadoop,
sua Instalação e Execução

Responsável pelo Conteúdo:


Prof. Dr. Alberto Messias

Revisão Textual:
Prof.ª Dr.ª Selma Aparecida Cesarin
Outros Projetos Importantes do
Hadoop, sua Instalação e Execução

• Projeto Mahout;
• Projeto Spark;
• Processo de Instalação do Hadoop em um Single Node;
• Iniciando com o Hadoop;
• Exemplo de Contagem de Palavras com o Hadoop.

OBJETIVO DE APRENDIZADO
· Conhecer outros dois importantes projetos agregados ao Hadoop;
· Adquirir conhecimento para a instalação e a configuração de uma
instância Hadoop;
· Fazer experimentos iniciais de contagem de palavras em bases de
Dados reais.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.

Mantenha o foco!
Evite se distrair com
as redes sociais.

Seja original!
Nunca plagie
trabalhos.

Não se esqueça
de se alimentar
Assim: e de se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como seu “momento do estudo”;

Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma


alimentação saudável pode proporcionar melhor aproveitamento do estudo;

No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você
também encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão
sua interpretação e auxiliarão no pleno entendimento dos temas abordados;

Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e
de aprendizagem.
UNIDADE Outros Projetos Importantes do Hadoop,
sua Instalação e Execução

Projeto Mahout
O Projeto Mahout é um Projeto de Código Livre da Fundação Apache que pos-
sui uma biblioteca de implementação de algoritmos para aprendizagem de máquina.
De acordo com Giacomelli (2013), o objetivo do Projeto Mahout é ser uma
escolha de ferramenta para aprendizado por máquina para Processamento de
conjuntos de Dados extremamente grandes, para execução em clusters de ins-
tâncias de Hadoopou numa única máquina.
O Mahout é uma ferramenta desenvolvida em Linguagem de Programação
Java dentro do projeto de computação distribuída Hadoop.
O Projeto Mahout possui implementações de algoritmos de classificação
e clustering, como o algoritmo K-means, que possui grande relevância para
o curso.
O Projeto Mahout possui implementações de diversos algoritmos em sua exe-
cução direta no Hadoop, com o Mapreduce, algoritmos em Spark, além de poder
usar frameworks H2O e Flink.
Usando o Mapreduce, há os seguintes algoritmos implementados:
• Classificação:
» Naive Bayes;
» Hidden Markov Models;
» Logistic Regression;
» Random Forest.
• Clustering:
» k-Means;
» Canopy;
» Fuzzy k-Means;
» Streaming KMeans;
» Spectral Clustering.
• Processamento pós-clustering:
» Cluster Dumper tool;
» Cluster visualisation.
• Redução de dimensionalidade:
» Singular value decomposition;
» Algoritmo Lanczos;
» Stochastic SVD;
» PCA (via Stochastic SVD);
» QR Decomposition.

8
• Outras implementações de suporte:
» Row Similarity Job;
» Collocations;
» Sparse TF-IDF Vectors em Textos;
» XML Parsing;
» Email Archive Parsing;
» Evolutionary Processes.

Não se preocupe nesse momento com os algoritmos aqui citados, pois são ilus-
trações do que se tem disponível no projeto Mahout. No momento adequado, você
terá contato com alguns desses algoritmos.

Projeto Spark
O Projeto Spark foi desenvolvido inicialmente pelo AMPLab da Universidade de
Berkeley, usando os mesmos conceitos do projeto Mesos, proposto pela mesma Uni-
versidade. Como característica principal, o Spark otimiza os processos executados
por meio do Hadoop MapReduce em memória, o que permite um desempenho em
torno de 100 vezes mais rápido que o MapReduce com Hadoop tradicional.
Em geral, o Spark propõe uma plataforma de processamento ao tradicional
oferecido pelo Hadoop. Ele oferece ou possibilita implementações em lingua-
gens Casa, Java, R e Tom, ainda permite interface com as plataformas tradi-
cionais Hadoop como: HDFS, HBase, Cassandra, MapR-DB, MongoDB e
Amazonas S3.
Segue o diagrama Spark, que ilustra graficamente sua estrutura, com seus prin-
cipais componentes:

Figura 1 – Diagrama Spark


Fonte: Adaptado de Scott, 2015

9
9
UNIDADE Outros Projetos Importantes do Hadoop,
sua Instalação e Execução

Segue a descrição simples de cada um dos componentes principais:

Apache Spark Core

O Spark Core é a plataforma principal de execução; é base para todas as ou-


tras funcionalidades. Ela fornece a execução em memória e faz referência a con-
juntos de dados em Sistemas de Armazenamento externos e distribuídos.

Spark SQL

O Spark SQL é um componente importante do Spark Core, que permite


a abstração de dados chamada Schema RDD, que fornece suporte para dados
estruturados e semi-estruturados.

Spark Streaming

Spark Streaming aproveita a capacidade de processamento rápido da Spark


Core para executar os processamentos. Permite a execução e a transformações
RDD (Solids Distributed Datasets) nesses pedações menores de Dados e lotes
de Processamento.

MLlib (Biblioteca de Machine Learning)

MLlib é uma biblioteca de aprendizagem por máquina distribuída que roda sobre
a arquitetura de Spark baseada em memória distribuída. O SparkMLlib é nove vezes
mais rápido que a versão baseada em HDFS e disco do Hadoop do Apache Mahout
(antes do framework Mahout implementar a interface com Spark). Cabe destacar
que a biblioteca MLib possui uma grande quantidade de funções e algoritmos para
aprendizado por máquina.

GraphX

GraphX é uma estrutura distribuída de processamento de gráficos sob a arqui-


tetura Spark. Ele fornece uma API para computação gráfica que pode modelar
os gráficos definidos pelo usuário usando a API de abstração Pregel. Ele também
fornece um tempo de execução otimizado para essa abstração.

Spark R

Essa funcionalidade permite que usuários da plataforma ou software R utili-


zem funções ou funcionalidades Spark de maneira mais usual.

Resilient Distributed Datasets

O Resilient Distributed Datasets (RDD) é o conceito central da plataforma


Spark. Foi desenvolvido para suportar o armazenamento de dados na memória
e distribuído ou num cluster, que implementa sua tolerância a falhas, devido,
em parte, ao seu rastreamento de dados brutos ou processamentos.

10
Segue um trecho de código de exemplo de Word Count em Scala para
execução em Spark:
[Link]

[Link]._

valtxtFile = “/[Link]”

valtxtData = [Link](txtFile)

[Link]()

[Link]()

valwcData = [Link](l =>[Link](“ “)).map(word => (word, 1)).


reduceByKey(_ + _)

[Link]().foreach(println)

Esse código executa a contagem de palavras do artigo de entrada “[Link]”, pre-


sente na terceira linha.

Caso queira se aprofundar no tema de Spark, segue o link com importantes definições
Explor

em inglêse e o link para introdução à Linguagem Scala, bastante utilizada no Spark.


Disponível em:
• [Link]
• [Link]

Processo de Instalação do Hadoop


em um Single Node
Aqui será descrito o processo de instalação e configuração do Hadoop para um
único nó utilizando o Linux Debian:
• Atualizar o Sistema, trocar o perfil do usuário no Sistema para administrador
(root) e digitar os comandos:
apt-getupdate

apt-get upgrade
• Como administrador, adicionar um grupo hadoop e um usuário hadoop-
-user a esse grupo; há possibilidade de deixar as informações solicitadas por
adduser em branco, com exceção da senha:
add group hadoop

adduser –ingroup hadoop hadoop-user

11
11
UNIDADE Outros Projetos Importantes do Hadoop,
sua Instalação e Execução

• Instalar o Java 8, ainda como administrador do Sistema. Remover o openjdk;


configurar o Java 8:

aptpurgeopenjdk*

echo “deb [Link] trustymain”


| tee/etc/apt/[Link].d/[Link]

echo “deb-src [Link] trusty-


main” | tee -a /etc/apt/[Link].d /webupd8team -[Link]

apt-keyadv --keyserver [Link] --recv-keys EEA14886

• Mais uma vez, atualizar o Sistema e instalar:

apt-getupdate

aptinstall -y oracle-java8-installer

• Aceitar a licença de software e verificar se a versão correta foi instalada:

java -version

Configurar a variável de ambiente $JAVA_HOME, ainda usando o usuário admi-


nistrador do Sistema:

sh -c ‘echo “export JAVA_HOME=/usr/local/JDK...” >> /etc/profile’

source /etc/profile|

O trecho “JDK...” devem ser trocada pelo local onde foi instalado o JDK.
• Comunicações do Hadoop são criptografadas via SSH; portanto, o servidor
foi instalado e configurado:

apt-getinstallopenssh-server

• O hadoop-user foi associado a um par de chaves e, subsequentemente, con-


cedeu o seu acesso à máquina local. Para configurar o SSH, há a necessidade
de mudar para o hadoop-user:

su - hadoop-user

ssh-keygen -t rsa -P “”

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

• O hadoop-user será capaz de acessar via ssh o localhost sem fornecer senha:

sshlocalhost

12
• Voltar ao administrador da máquina, fazer o download do Hadoop, descom-
pactar e mover para “/usr/local”; adicionar o link usando o nome hadoop
alterando do conteúdo para o hadoop-user:

wget[Link]
[Link]

tarxzf [Link]

rm [Link]

mv hadoop-2.7.1 /usr/local

ln -sf /usr/local/hadoop-2.7.1/ /usr/local/hadoop

chown -R hadoop-user:hadoop /usr/localhadoop-2.7.1/

• Mudar para o hadoop-user e adicionar as seguintes linhas no final de ~/.bashrc:

Figura 2
• Para que as novas variáveis de ambiente estejam em vigor, é preciso recar-
regar o arquivo .bashrc:

source .bashrc

• Modificar arquivos de configurações dentro /usr/local/hadoop/etc/hadoop.


Todos eles seguem o formato XML e configuration. As atualizações refe-
rem-se ao nó de nível superior. Especificamente:

13
13
UNIDADE Outros Projetos Importantes do Hadoop,
sua Instalação e Execução

» No arquivo em [Link]:

Figura 3
» No arquivo em [Link]:

Figura 4
• Em [Link] (likey para ser criado através de [Link].
template [Link]):

Figura 5

14
» No arquivo em [Link]:

Figura 6
• Isso requer a criação manual dos dois diretórios especificados nos dois últimos
value nos XML:
mkdir -p /usr/local/hadoop/yarn_data/hdfs/namenode

mkdir -p /usr/local/hadoop/yarn_data/hdfs/datanode
• Insira o “/usr/local/java/JDK...” na variável JAVA_HOME, no arquivo /usr/
local/hadoop/etc/hadoop/[Link].
• Agora você poderá iniciar o serviço do Hadoop. Para isso, use o comando:
/usr/local/hadoop/sbin/[Link]
• Formatar o sistema de arquivos, operação a ser executada como hadoop-user:
hdfsnamenode -format

Note que a instalação aqui descrita foi para um único nó; porém, pode-se
encontrar facilmente na documentação do Hadoop a instalação e a configura-
ção para clusters de hadoop.

Por exemplo, no link:


Explor

Hadoop Cluster Setup. Disponível em: [Link]

15
15
UNIDADE Outros Projetos Importantes do Hadoop,
sua Instalação e Execução

O processo de instalação aqui descrito é importante como referência para um


administrador; porém, há, inúmeras máquinas virtuais que podem ser baixadas
com todas as funcionalidades prontas para o uso, como, por exemplo, da Cloudera
ou Hortonworks. Uma alternativa é usar as máquinas prontas nas plataformas de
computação em nuvem, pois o hadoop está presente em todas as grandes plata-
formas, como Google, IBM, Amazon e Microsoft Azure.

Iniciando com o Hadoop


O Hadoop possui algumas ferramentas administrativas interessantes, que podem
auxiliar no processo de administração diária.

Figura 7

Há uma URL que permitirá ao administrador visualizar todos os arquivos


presentes no HDFS, indo em “Utilities/Browsethe file system”, conforme se
observa na Figura a seguir.

16
Figura 8

Por meio dos links presentes nessa ferramenta, é possível observar, por exem-
plo, o processo de inicialização do hadoop, LOGs, os datanodes e seus respectivos
tamanhos no Sistema de Arquivos, dentre outras informações.

Há, ainda, uma página de administração que exibe uma série de outras infor-
mações a respeito das execuções de processamentos no hadoop.

Figura 9

A interface exibe as aplicações em execução e seu respectivo tempo e porcen-


tagem de conclusão do processamento.
É importante o administrador conhecer alguns comandos para o gerencia-
mento do HDFS, grande parte herdados de comandos Unix/Linux, tais como:
• ls – para listagem de arquivos;

• rm – para remover arquivos;

17
17
UNIDADE Outros Projetos Importantes do Hadoop,
sua Instalação e Execução

• rmdir – para remover diretórios;


• cat – para exibir conteúdos de arquivos;
• cp – para copiar arquivos;
• copyFromLocal – para enviar arquivos para o HDFS;
• find – para buscar arquivos;
• chmod – para editar permissões sobre um arquivo;
• chow – para alterar o dono de um arquivo;
• mv – para mover um arquivo entre diretórios;
• moveFromLocal – para mover um arquivo para o HDFS;
• appendToFile – para inserir conteúdos no final do arquivo.

Esses estão dentre uma lista completa, que se encontra facilmente nos documentos
Explor

presentes no site do fabricante. Disponível em: [Link]

Exemplo de Contagem de
Palavras com o Hadoop
Vamos a um exemplo trivial de contagem de palavras. Assume-se que deve-se
estar autenticado com o usuário hadoop-user em nossa instância de Hadoop.
O primeiro passo será copiar para o HDFS da instância de Hadoop que es-
tamos executando; nesse caso, com o seguinte comando:
hadoopfs -copyFromLocal [Link] /
O comando copia o arquivo [Link] para a raiz do Sistema de Arquivos HDFS.
Pela interface WEB, você consegue se certificar que a cópia do arquivo ocorreu,
conforme se pode observar na Figura a seguir.

Figura 10

O Conteúdo do arquivo é:

18
“Olá mundo hadoop.
Cruzeiro do Sul Virtual Educação a distância.
Professor Alberto.”

Para se certificar que o arquivo foi copiado, você pode acessar a página de na-
vegação em arquivos

Nos diretórios de exemplos do hadoop, há uma implementação de contagem


de palavras no arquivo “[Link]”, que está no
diretório “hadoop/share/hadoop/mapreduce/”.

O comando pode ser executado da seguinte maneira:

hadoopjar [Link] wordcount /[Link] /ola_output

O comando é dividido da seguinte maneira: “hadoopjar” informando que


será executado um arquivo no formato jar. Nesse caso, o “hadoop-mapreduce-
-[Link]”.

Os parâmetros seguintes são, executar a função “wordcount” passando como


parâmetros o arquivo ou diretório de entrada e arquivo de saída.

Para resgatar o arquivo de saída, pode-se copiá-lo por comando no HDFS


ou fazer o download através da interface WEB.

Figura 11

O arquivo de saída o “part-r-00000”. Segue o arquivo de saída do coman-


do executado:

Tabela 1
Alberto. 1
Cruzeiro 1
Educação 1
Olá 1
Professor 1
Sul 1

19
19
UNIDADE Outros Projetos Importantes do Hadoop,
sua Instalação e Execução

a 1
distância 1
do 1
hadoop 1
mundo 1
Virtual 1

Na primeira coluna, o arquivo de saída possui a palavra e na segunda coluna


a frequência com que a palavra ocorreu no texto. Note que o comando não faz
nenhuma limpeza ou pré-processamento na Base de Dados. Nesse caso, ele en-
tendeu como uma única palavra o “hadoop”.

Vamos a um segundo exemplo, com uma base de dados real, o primeiro passo
será baixar a base de dados, a qual iremos utilizar na execução de exemplo.

A base de exemplo se trata de uma base de postagem de 50 autores em Blogs. Ela pode
Explor

ser baixada no link: [Link]

Descompacte o arquivo [Link] baixado do site por meio do comando:

unzip [Link]

hadoopfs -copyFromLocal C50/ /

Verifique, pelo navegador, se os arquivos foram copiados, se agora existem as


duas pastas C50test e C50train, conforme se observa na figura a seguir:

Figura 12

Vamos executar o comando de contagem de palavras para um diretório de


um dos autores e na base de testes.

hadoopjar [Link] wordcount /C50/C50test/


AaronPressman/ C50/output

Ou, caso se queira, executar para a base inteira:

20
hadoopjar [Link] wordcount /C50/C50test/*/*
/C50/output

Figura 13

Essa execução deve demorar, tendo em vista o tamanho da base e que o co-
mando está sendo executado em uma única instância de Hadoop.

O arquivo de saída poderá ser baixado através da interface WEB do Hadoop.

21
21
UNIDADE Outros Projetos Importantes do Hadoop,
sua Instalação e Execução

Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:

Sites
Apache Hadoop
Referência com os diversos comandos existentes para o HDFS.
[Link]
UCI Machine Learning Repository
Download de bases de dados para experimentos BI/Big Data.
[Link]
IBM
Sobre o framework mahout desenvolvido pela IBM.
[Link]
Microsoft
Artigo interessante da MSDN quanto ao uso e o processo de instalação do Spark.
[Link]
DevMedia
Uma breve introdução ao projeto Mahout.
[Link]

22
Referências
GIACOMELLI, P. Apache Mahout Cookbook. [S.l.]: Packt Publishing, 2013.

OWEN, Sean et al. Mahout in Action. Greenwich: Manning Publications


Co., 2011.

QUINTERO, D. et al. IBM Data Engine for Hadoop and Spark. IBM RedBooks.
2016. Disponível em: <[Link]
pdf>. Acesso em: 12 set. 2017.

SCOTT, J. A. Get started with apache spark. MapR Technologies. 2015. Dis-
ponível em: <[Link]
che_Spark.pdf>. Acesso em: 20 ago. 2017.

SHENOY, Aravind. Hadoop Explained. Mumbai: Packt Publishing, 2014. Dis-


ponível em: <[Link]
Acesso em: 12 set. 2017.

TUTORIALS Point Simply easy learning. Disponível em: <[Link]


[Link]/apache_spark/[Link]>. Acesso em: 20 ago 2017.

WHITE, T. Hadoop: The Definitive Guide. 4. ed. [S.l.]: O’Reilly Media, Inc., 2015.

ZECEVICAND, Petar; BONACI, Marko. Spark in Action. Greenwich: Manning


Publications Co., 2016.

23
23

Você também pode gostar