• Nenhum resultado encontrado

Estudo da Integração de Tecnologias de Processamento e Análise de Dados no Apache Zeppelin

N/A
N/A
Protected

Academic year: 2021

Share "Estudo da Integração de Tecnologias de Processamento e Análise de Dados no Apache Zeppelin"

Copied!
12
0
0

Texto

(1)

Estudo da Integração de Tecnologias de Processamento e

Análise de Dados no Apache Zeppelin

Maximilliam A. de Araujo1

1Departamento de Ciência da Computação – Universidade Federal de Minas Gerais (UFMG)

Belo Horizonte – MG – Brasil maxaraujo@dcc.ufmg.br

Abstract. The main goal of this paper is to increase knowledge about

technologies involved in data science. Data science are principles for transforming a bundle of data into information. Using these principles, companies have the ability to analyze large datasets and predict, for example, consumers behavior. It turns out that the data science lifecycle is often complex because it involves many technologies and people with different views of the problems. One way to centralize and facilitate this process is to use tools that enable collaborative and integrated work. Apache Zeppelin is a software that allows this organization. Thus, studying the tool through its architecture and its functionality - which allows the integration of technologies - is a way to understand Data Science from the technology standpoint. Furthermore, it is possible to get to know the current technologies involved in the process. This study is done through basic research involving articles, documentation, video presentations about data science, Apache Zeppelin and technologies integrated with the software. Resulting in a document that demonstrates how the software works, as well as providing an overview of the connected technologies.

Resumo. O principal objetivo do trabalho é aumentar o conhecimento sobre

tecnologias envolvidas em ciências de dados. Ciência de dados são princípios para transformar conjuntos de dados em informação. Utilizando esses princípios, empresas têm a possibilidade de analisar grandes conjuntos de dados e predizer, por exemplo, o comportamento dos consumidores. Acontece que o ciclo de vida de ciência de dados costuma ser complexo por envolver muitas tecnologias e pessoas com visões diferentes dos problemas. Uma forma de centralizar e facilitar esse processo é utilizar ferramentas que permitam o trabalho colaborativo e integrado. O Apache Zeppelin é um software que permite essa organização. Assim, estudar a ferramenta através da arquitetura e de sua funcionalidade – que permite a integração de tecnologias – é uma forma de entender Ciência de Dados do ponto de vista de tecnologia. Ademais, é possível vir a conhecer as tecnologias atuais envolvidas no processo. Este estudo é feito através de pesquisa básica envolvendo artigos, documentações, apresentações em vídeo acerca de ciência de dados, Apache Zeppelin e tecnologias integradas ao software. Tendo como resultado um documento que demonstra o funcionamento do software, além de fornecer uma visão geral de tecnologias conectadas.

(2)

1. Introdução

A produção de dados está aumentando em larga escala e as estimativas indicam que a cada dois anos a quantidade produzida de dados irá dobrar. Estes conjuntos muitas vezes fogem dos convencionais dados estruturados e demandam prontidão em processamento e análise. Além disso, o Big Data introduz uma nova compreensão de valores e gera desafios para organizar e gerenciar tais conjuntos de dados (CHEN; MAO; LIU, 2014).

O mercado de negócios tem dado maior atenção aos dados para aumentar a competitividade. A quantidade e variedade de dados supera a capacidade de análise manual, porém a capacidade computacional vem se tornado mais poderosa e algoritmos e metodologias permitem que a ciência dos dados seja introduzida ao mercado (PROVOST; FOSTER, 2013).

Ciência de dados são princípios que funcionam como base e orientação para a extração de informação baseada a partir dos dados (PROVOST; FOSTER, 2013). O ciclo de vida de um processo de ciência dos dados pode não ser algo trivial. É possível que em detrimento de um problema haja engajamento de diversos agentes. Cientistas de dados, engenheiro de dados, matemáticos, estatísticos, gestores, desenvolvedores entre outros. Além disso, por se tratar de dados massivos não estruturados vindos de diversas fontes, na maioria das vezes existe a necessidade de utilização de diferentes técnicas e ferramentas para resolução dos problemas orientados a dados (LEE, 2015).

No intuito de centralizar e organizar as atividades de processos de ciência dos dados e Big Data, o Apache Zeppelin foi criado (LEE, 2015). Uma ferramenta classificada como um notebook que utiliza artifícios que funcionam em ambiente web para possibilitar análise e compartilhamento de trabalhos orientados a dados (Site Apache Zeppelin 2018). A ferramenta foi criada para se conectar a diferentes tipos de tecnologias, utilizando um conceito de interpretadores, além de permitir o compartilhamento do trabalho executado com outros colaboradores. (LEE, 2015)

O Apache Zeppelin trabalha sobre a plataforma web, o que possibilita um ganho enorme em compartilhamento. Ademais, possui muitas tecnologias plugáveis ao seu backend. Assim, estudar como essa integração funciona possibilita um ganho significativo de conhecimento em tecnologias de ponta do mercado que envolve a ciência dos dados.

O objetivo deste trabalho é entender o funcionamento do Apache Zeppelin a partir da arquitetura do sistema focando na camada dos interpretadores, fazendo com que o trabalho sirva como uma documentação extra para a tecnologia em questão. Além disso, como forma de catalogar as tecnologias conectadas ao Zeppelin, o documento também fornece uma visão geral de algumas tecnologias e padrões que estão na distribuição oficial da ferramenta.

.

2. Apache Zeppelin

A análise e processamento de Big Data através da ciência dos dados é uma forma de aumentar a competitividade e a eficiência das empresas. Ao analisar fatores externos e

(3)

internos a essas empresas e processar o grande conjunto de dados gerados, torna-se possível predizer, por exemplo, possíveis eventos econômicos.

No entanto, essa atividade exige grande interdisciplinaridade e por esse motivo pode se tornar complexa. Além disso, a fim de possibilitar melhores decisões, o ciclo de vida que envolve preparação, engenharia, análise e produção de dados precisa ser maleável de forma a ser compreendido tanto por um profissional técnico, quanto por um gestor que não tem conhecimento técnico de como os dados são tratados.

Em 2013, no intuído de auxiliar, organizar e centralizar parte do ciclo de vida de um processo de ciências dos dados, um projeto nomeado Zeppelin foi criada por uma empresa chamada ZEPL (anteriormente conhecido como NFLabs), comandada por Moon Soon Lee. Em 2014, o projeto Zeppelin tornou-se projeto de incubação na Apache Software Foundation e em 2016, se formou em incubação e se tornou um projeto de alto nível na Apache, dando origem a ferramenta conhecida como Apache Zeppelin.

O Apache Zeppelin é denominado pelos criadores como um notebook, em uma analogia a um caderno de anotações, baseando suas funções em parágrafos. A ferramenta é desenvolvida em tecnologias Web, que permite ao Zeppelin facilidade em compartilhamento de suas funções. Os notebooks interativos permitem que engenheiros, analistas e cientistas de dados tenham melhor aproveitamento, desenvolvendo, organizando, executando e compartilhando código de dados e visualizando resultados sem se referir a linhas de comando ou precisar dos detalhes do cluster. Assim, o Notebook Zeppelin pode ser visto como a interface que conecta os usuários a as tecnologias que desejam utilizar para tratamento dos dados.

O software se destaca por sua capacidade de integrar diversas outras tecnologias através de uma funcionalidade denominada “Interpreter”, em português, Interpretador. O Interpreter é uma camada para integração de “backend” (ferramenta que trabalha por trás da aplicação em sistemas Web), sendo que a ferramenta já possui mais de 20 interpretadores em seu pacote de distribuição oficial, dando a possibilidade a desenvolvedores de integrar outros backends que não estão na distribuição. Essa funcionalidade permite que o Zeppelin seja um notebook com liberdade e flexibilidade para o utilizador.

2.1. Arquitetura do Apache Zeppelin

A arquitetura do Apache Zeppelin é dividida em três camadas, sendo a camada do Frontend, a camada do Servidor do Zeppelin e a camada do Interpreter. A Figura 1 ilustra a arquitetura do software dando uma visão de como a comunicação entre as três camadas acontece e quais tecnologias usam. A partir de um Web Browser, o utilizador tem contato com o Frontend do Zeppelin que é baseado em AngularJS (uma plataforma para construção de aplicações web baseada em Ecmascript) e Twitter Bootstrap (um framework CSS) que tornam a interface da aplicação web mais fluida e dinâmica. A camada de Frontend comunica com o servidor do Apache Zeppelin através de duas interfaces possíveis, REST e Web Socket.

Transferência de Estado Representacional (REST), é um estilo de arquitetura para definir as restrições e propriedades do protocolo HTTP. Já o WebSocket é uma tecnologia que permite comunicação bidirecional por canais full-duplex (Transmissor e

(4)

Figura 1. Arquitetura do Apache Zeppelin.

Receptor podem transmitir dados simultaneamente em ambos os sentidos) sobre um único socket TCP.

O servidor funciona sobre uma Máquina Virtual Java (JVM – Java Virtual Machine) que também é um Interpreter do Notebook. O Interprete se comunica com um programa que executa em plano de fundo do Zeppelin através do Apache Thrift, uma tecnologia que permite definir tipos de dados e interfaces de serviço em um arquivo de definição simples. Tomando esse arquivo como entrada, o compilador gera o código a ser usado para criar facilmente clientes e servidores RPC que se comunicam facilmente entre as linguagens de programação.

2.2. Camadas dos Interpretadores

O Interpreter é uma funcionalidade que torna o Zeppelin plugável a outras tecnologias. Cada processo de Interpretador pertence a um Grupos de Interpretadores, que funcionam como uma unidade de início e parada do interpretador.

É possível ter um grupo para um único interpretador, ou a combinação de outros interpretadores. Para fazer a ligação entre os processos, o Zeppelin fornece três modos diferentes para executar o processo de interpretação: compartilhado, com escopo e isolado.

No modo Compartilhado, o processo da JVM e os grupos de interpretadores atendem a todos os Notes. No modo Escopo, a ferramenta executa um processo, porém há múltiplos grupos de interpretadores. Nesse modo, o Zeppelin possibilita sessão dedicada a cada nota, mas ainda permitindo o compartilhamento de recursos. O modo isolado executa de forma separada, insolando completamente o recurso para todas as notas.

(5)

2.2.1. Backends na Distribuição Oficial

Atualmente, a distribuição oficial do Apache Zeppelin é composta por interpretadores de diversos padrões e diversas ferramentas que atendem diferentes propósitos. Os artifícios por trás do Notebook servem escopos como descoberta, ingestão, armazenamento, análise e visualização de dados. Essa variedade de contextos é atendida pelos seguintes backends.

• Alluxio: um sistema distribuído de armazenamento virtual centralizado em memória que unifica o acesso ao dado às estruturas computacionais e sistemas de armazenamento inferiores;

• Angular: uma plataforma para facilitar a criação de aplicações web baseada em JavaScript. O objetivo é abstrair a manipulação do Modelo de Documento por Objetos e o acoplamento entre o lado do cliente e o lado do servidor, além facilitar a implementação de testes;

• Big Query: um Data Warehouse no-ops altamente escalável na plataforma Google Cloud. A ferramenta permite realizar consultas SQL rápidas em conjuntos de dados grandes em tabelas de anexação utilizando o poder de processamento da infraestrutura do Google;

• Cassandra: um sistema de gerenciamento de banco de dados NoSQL orientado a colunas feito para trabalhar de forma distribuída. O SGBD implementa o modelo de dados Big Table e utiliza aspectos de arquitetura introduzido por Amazon Dynamo. A ferramenta tem como foco alta escalabilidade e disponibilidade;

• ElasticSeach: um mecanismo de busca distribuído para nuvem construído em cima do Apache Lucene. Pode ser usado para pesquisa em todos os tipos de documentos, fornecendo pesquisa escalável quase em tempo real;

• Apache Flink: uma plataforma de código aberto para fluxo distribuído e processamento de dados em lote. O núcleo do Flink é um mecanismo de fluxo de dados de fluxo contínuo que fornece distribuição de dados, comunicação e tolerância a falhas para cálculos distribuídos em fluxos de dados. O Flink também constrói o processamento em lote na parte superior do mecanismo de streaming, sobrepondo o suporte da iteração nativa, da memória gerenciada e da otimização de programas;

• Apache Geode: uma plataforma de gerenciamento de dados que fornece acesso consistente em tempo real a aplicativos com uso intenso de dados em arquiteturas de nuvem amplamente distribuídas. Ele usa técnicas dinâmicas de replicação e particionamento de dados para implementar alta disponibilidade, melhor desempenho, escalabilidade e tolerância a falhas. Além disso, o Geode é um sistema de gerenciamento de dados na memória que fornece notificações de eventos assíncronos confiáveis e entrega garantida de mensagens;

• HBase: um banco de dados não-relacional criado para hospedar tabelas muito grandes, baseado em HDFS. Fornece acesso de leitura e gravação em tempo real a grandes conjuntos de dados;

• Ignite: uma plataforma de processamento, de cache e de banco de dados distribuídos centrada em memória para cargas de trabalhos grandes. A persistência nativa no Ignite pode ser ativada e desativada. Isso permite que o Ignite armazene

poderia ter conectado as tecnologias de alguma maneira... como se integram? (além do que está na arquitetura)

(6)

conjuntos de dados maiores do que os que podem caber na memória disponível. Apesar de ser altamente disponível e escalonável horizontalmente, o Ignite suporta transações SQL e ACID em vários nós do cluster;

• JDBC: Java Database Connectivity é um padrão de conectividade entre a linguagem de programação Java e vários bancos de dados SQL e de outras fontes em tabulares, como planilhas e arquivos simples;

• Kylin: uma ferramenta de análise distribuída projetado para fornecer interface SQL e análise multidimensional no Hadoop;

• Lens: uma plataforma que fornece uma visão comum dos dados armazenados em várias camadas. O objetivo é simplificar a análise de dados concentrando a visualização de várias fontes em um único lugar. Ele fornece um único ponto final para um usuário consultar dados, independentemente de onde e como os dados são armazenados, permitindo efetivamente que várias fontes de dados sejam vistas como um único Data Warehouse. Lens também tem a capacidade de entender a hierarquia dos dados e relacionamentos usando definições de cubo;

• Apache Livy: um serviço que permite interação facilitada com um cluster Spark utilizando uma interface REST. Ele permite o envio de tarefas do Spark ou trechos de código Spark e recuperação dos resultados de forma síncrona ou assíncrona, bem como gerenciamento do Spark Context. O serviço ainda simplifica a interação entre o Spark e os servidores de aplicativos, permitindo a utilização do Spark em aplicativos móveis; • Markdown: uma ferramenta que converte texto simples em estrutura HTML ou XHTML. A meta do Markdown é tornar textos mais legíveis sem parecer que foram marcados com tags ou instruções de formatação;

• Pig: uma plataforma para análise de grandes conjuntos de dados que fornece linguagem de alto nível para expressar programas de análise de dados, juntamente com a infraestrutura para avaliar esses programas. O Pig é passível de grande paralelização, que permite a plataforma manipular conjuntos de dados grandes;

• PostgreSQL: um sistema de gerenciamento de banco de dados do tipo objeto-relacional com voltado extensibilidade e padrões de conformidade. Sua principal função é o armazenamento seguro de dados, seguindo as melhores práticas de banco de dados; • Python: uma linguagem de programação de propósito geral, interpretada, de script, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte;

• R: uma linguagem e um ambiente para computação estatística e gráficos. Fornece uma ampla variedade de estatística e técnicas gráficas e é altamente extensível. Um dos pontos fortes de R é a facilidade com que plotagens podem ser produzidas, incluindo símbolos matemáticos e fórmulas;

• Scalding: uma linguagem de programação dinâmica que faz com que os cálculos pareçam muito semelhantes aos da API de coleta do Scala. O Scalding fornece a funcionalidade de algoritmos de junção personalizados a várias APIs (baseadas em campos, tipo seguro e matriz). A linguagem é fundamentada no framework Cascading e herda extensibilidade com o ecossistema em cascata e portabilidade de aplicativos;

(7)

• Scio: uma API do Scala para Apache Beam e Google Cloud Dataflow. O Scio é descrito como um “thin wrapper” no topo do Java SDK, oferecendo uma maneira fácil de construir pipelines do Dataflow no Scala. O tipo de dados do Scio imita o RDD (conjunto de dados distribuído resiliente) do Spark para oferecer operações paralelas. Além disso, utiliza coleções de tuplas chave-valor para fornecer agrupamento. Há também uma simplificação em sintaxes complexas para apresentar além de junções internas e externas a esquerda, junções hash baseadas em entradas lateral e junções esparsas externas;

• Shell: um interpretador para executar processos externos em Java.

• Spark: um sistema de computação em cluster rápido e de uso geral. Ele fornece APIs de alto nível em Java, Scala, Python e R e um mecanismo otimizado que suporta gráficos gerais de execução. Ele também suporta um conjunto avançado de ferramentas de nível superior, incluindo o Spark SQL para SQL e para o processamento de dados estruturados, MLlib para aprendizado de máquina, GraphX para processamento de gráficos e Spark Streaming.

2.3. Visualização dos Dados

O notebook é composto por parágrafos, fazendo uma analogia a um caderno de anotações. Cada parágrafo é um caixa que recebe algum tipo de script pré-definido nos interpretadores. O texto interpretado possui uma marcação “%” para determinar o interpretador e o script a ser executado. A Figura 2 ilustra um parágrafo com script Markdown e um Spark.

Através da interface construída com Angular e Bootstrap, o usuário tem a possibilidade de personalizar sua visualização, colocando os parágrafos em colunas para permitir uma exibição simultânea do resultado. A interação entre o utilizador, a ferramenta e os dados tem um dinamismo proporcionado pelo frontend. A partir do momento que o Notebook está instalado e configurado com as tecnologias desejadas, todo o resto é abstraído pelo parágrafo. As instruções em forma de scripts e a visualização em forma de gráficos ou tabelas ficam todos no mesmo lugar.

Figura 2. Exemplo de um parágrafo do Apache Zeppelin. bem melhor que a versão original :-)

(8)

Figura 3. Fluxo exemplificando uma consulta SQL no Apache Zeppelin.

A Figura 3 é um exemplo do fluxo de funcionamento do Zeppelin utilizando um backend Spark para fazer o tratamento de uma consulta SQL:

1. uma instrução é feita dentro de um parágrafo e enviada para o servidor virtual do Zeppelin;

2. o servidor lança uma JVM para o interpretador requisitado; 3. a instrução no servidor é enviada para o interpretador;

4. o interpretador utiliza alguma tecnologia para fazer o tratamento; 5. o interpretador devolve os dados em algum formato para o servidor;

6. o Servidor devolve os dados para o browser que interpreta o formato exibe dentro de parágrafo em forma de tabelas, gráficos, textos ou outros formatos que o usuário tenha escolhido;

Por fim, os blocos de anotações podem ser compartilhados entre os colaboradores através de uma URL, ou incorporados em algum site tendo suas alterações exibidas em tempo real. A figura 4 mostra como o resultado de um parágrafo pode ser utilizado em site na web.

(9)

Figura 4. Imagem exemplificando a publicação de um gráfico da ferramenta em um site.

3. Resultados e Discussão

O resultado principal do trabalho é este documento que descreve o funcionamento do Apache Zeppelin através da arquitetura e catalogo das possibilidades de tecnologias já integradas aos backends. O ganho de conhecimento sobre Ciência de Dados é inerente a construção do trabalho, podendo então ser reconhecido como um dos frutos.

Ao entender a arquitetura do Apache Zeppelin, é possível perceber que em quesitos arquiteturais a ferramenta segue padrões bem conhecidos em desenvolvimento de software web. A divisão em camadas e separação de responsabilidades dão a ferramenta um desacoplamento de funções.

O resultado foi alcançado através de leitura, que em maioria eram documentações das tecnologias em questão. A documentação do Zeppelin muitas vezes se mostrou superficial para entendimento da ferramenta, como alternativa foram pesquisados relatos de utilização, palestras em vídeo dos desenvolvedores do Apache Zeppelin, e outros documentos que funcionaram como suporte para alcançar o entendimento da arquitetura do software e do funcionamento dos interpretadores.

Um recurso extra as pesquisas foi vivenciar a utilização da ferramenta, instalando em ambiente particular para teste exploratório. Uma das observações adquiridas nesse processo é que o Zeppelin é muito difícil de instalar. Tendo um começo lento, considerando o quão complicado é fazê-lo funcionar. Assim, a tarefa não se mostra adequada para o dia a dia de uma pessoa que não está inserida em contexto técnico. Porém a partir do momento em que a ferramenta está instalada e configurada, as configurações para utilização de tecnologias são mais amigáveis.

Com uma análise dos resultados do estudo, é possível perceber que a identidade do Zeppelin está nas tecnologias que ele interpreta. Tendo como maior ganho a integração nativa com Spark, um diferencial as outras tecnologias de mesmo fim conhecidas no mercado. Outro ganho é no frontend, que utiliza tecnologias de ponta, dando a ferramenta um visual moderno e avançado. Mas com as documentações e

(10)

pesquisas, é perceptível que ferramenta ainda está em ascensão e não tem ampla utilização no mercado de notebooks.

As pesquisas se limitaram ao Zeppelin, não fazendo comparações com outras ferramentas que entregam o mesmo tipo de serviço, como Jupyter ou IPython, que são ferramentas mais maduras que o Apache Zeppelin em questão de tempo no mercado. Assim, não é possível dizer se o software é a melhor opção de utilização como notebook de ciência dos dados.

4. Conclusão e Trabalhos Futuros

A priori, foi suposto que a ferramenta não tinha documentação, o que não se mostrou verdade. O Apache Zeppelin possui uma documentação em inglês que é mantida por seus desenvolvedores e sua comunidade no GitHub. Apesar disso, as explicações dentro da documentação se limitam a configurações de como utilizar ou integrar funções ao sistema. Por esse motivo, este documento pode ser visto como um suporte a introdução para utilização da ferramenta.

O posicionamento do Zeppelin dentro de um processo de análise de dados pode ser visto como a interface entre o usuário final dos dados e diversas outras tecnologias. Essa flexibilidade vai permitir que os estudos sejam direcionados através de um estudo de caso, para área de conhecimento de banco de dados, tendo como objetivos futuros a extração do conhecimento obtido para verificar a possibilidade de inclusão de estudos de tecnologias recentes de mercado em disciplinas de Bancos de Dados do departamento de compunção da Universidade Federal de Minas Gerais.

Referências

ALLUXIO OPEN FOUNDATION. Documentation. [S.l]: Alluxio Open Foundation. Disponível em: <https://www.alluxio.org/docs/1.7/en/Getting-Started.html>. Acesso em: 5 abr. 2018.

APACHE SOFTWARE FOUNDATION. Apache Ignite. [S.l]: Apache Software

Foundation, 2015-2017. Disponível em:

<https://ignite.apache.org/whatisignite.html>. Acesso em: 20 maio 2018.

APACHE SOFTWARE FOUNDATION. Apache Livy: A REST Service for Apache Spark. [S.l]: Apache Software Foundation, 2017. Disponível em: < https://livy.incubator.apache.org/>. Acesso em: 5 jun. 2018.

APACHE SOFTWARE FOUNDATION. Welcome to Apache Kylin™: Extreme OLAP Engine for Big Data. [S.l.]: Apache Software Foundation, 2015. Disponível em: < http://kylin.apache.org/docs23/>. Acesso em: 30 maio 2018.

APACHE SOFTWARE FOUNDATION. Welcome To Apache Pig! [S.l]: Apache Software Foundation, 2007-2018. Disponível em: < https://pig.apache.org/>. Acesso em: 10 jun. 2018.

APACHE SOFTWARE FOUNDATION. Welcome to Lens! [S.l]: Apache Software Foundation, 2014-2018. Disponível em: < https://lens.apache.org/index.html>. Acesso em: 30 maio 2018.

(11)

APACHE ZEPPELIN. Bigquery Interpreter For Apache Zeppelin. [S.l]: The Apache

Software Foundation. Disponível em:

<https://zeppelin.apache.org/docs/0.7.3/interpreter/bigquery.html>. Acesso em: 6 abr. 2018.

CHEN, Min; MAO, Shiwen; LIU, Yunhao. Big data: A survey. Mobile networks and applications, v. 19, n. 2, p. 171-209, 2014. Disponível em: < https://link-springer-com.ez27.periodicos.capes.gov.br/article/10.1007/s11036-013-0489-0>. Acesso em: 15 jun. 2018.

CONFLUENCE ADMINISTRATOR. Apache Hive. [S.l]: Confluence, jan 2018. Disponível em: <https://cwiki.apache.org/confluence/display/Hive>. Acesso em: 20 maio 2018.

GAVIN; BAWASKAR, Swapnil. Geode. [S.l]: Apache Software Foundation, 2018. Disponível em: <https://cwiki.apache.org/confluence/display/GEODE/Index>. Acesso em: 20 abr. 2018.

ELASTICSEARCH, BV. [S.l]: Elasticsearch, 2018. Disponível em: < https://www.elastic.co/products/elasticsearch >. Acesso em: 6 abr. 2018.

HANSON, J. Uma Introdução Ao Hadoop Distributed File System: Explorar a Estrutura e Subsistemas do HDFS. [S.l]: IBM, 2013. Disponível em: <https://www.ibm.com/developerworks/br/library/wa-introhdfs/index.html>. Acesso em: 3 maio 2018.

LEE, Moon soo. Data Science Lifecycle with Zeppelin and Spark. Youtube, 29 de

outubro de 2015. Disponível em: <

https://www.youtube.com/watch?v=J6Ei1RMG5Xo&t=1533s>. Acesso em: 10 jun. 2018.

ORACLE. Java SE Technologies – Database. [S.l]: ORACLE. Disponível em: <http://www.oracle.com/technetwork/java/javase/jdbc/index.html>. Acesso em: 20 maio 2018.

PROVOST, Foster; FAWCETT, Tom. Data science and its relationship to big data and data-driven decision making. Big data, v. 1, n. 1, p. 51-59, 2013. Disponível: < https://www.liebertpub.com/doi/abs/10.1089/big.2013.1508>. Acesso em: 15 jun. 2018.

THE APACHE SOFTWARE FOUNDATION. Apache HBase. [S.l]: The Apache

Software Foundation, 2007-2018. Disponível em:

<https://hbase.apache.org/index.html>. Acesso em: 3 maio 2018.

THE APACHE SOFTWARE FOUNDATION. Documentation. [S.l.]: The Apache Software Foundation. Disponível em: <https://beam.apache.org/documentation/>. Acesso em: 6 abr. 2018

THE APACHE SOFTWARE FOUNDATION. Introduction To Apache Flink. [S.l]: The Apache Software Foundation, 2014-2017. Disponível em: <https://flink.apache.org/introduction.html>. Acesso em: 20 abr. 2018.

(12)

THE DARING FIREBALL COMPANY LLC. Markdown. [S.l]: The Daring Fireball

Company LLC., 2002-2018. Disponível em: <

Referências

Documentos relacionados

xii) número de alunos matriculados classificados de acordo com a renda per capita familiar. b) encaminhem à Setec/MEC, até o dia 31 de janeiro de cada exercício, para a alimentação de

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades

O presente trabalho tem a pretensão de começar um debate acerca da avalia- ção nas universidades, com base em pesquisa realizada em uma IES e entrevistas com docentes da mesma.

Quando os dados são analisados categorizando as respostas por tempo de trabalho no SERPRO, é possível observar que os respondentes com menor tempo de trabalho concordam menos que

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

◦ Os filtros FIR implementados através de estruturas não recursivas têm menor propagação de erros. ◦ Ruído de quantificação inerente a