BigData Plataforms Flashcards

1
Q

Quais são as principais características e capacidades de uma plataforma de Big Data?

A

Uma plataforma de Big Data é uma solução de computação integrada que combina vários sistemas de software, ferramentas e hardware para gerenciar big data.

Principais características:
- Capacidade de acomodar novas aplicações e ferramentas conforme a necessidade evolui.
- Suporte de vários formatos de dados.
- Capacidade de lidar com grandes volumes de dados, sejam streaming ou em repouso.
- Fornecimento de uma ampla gama de ferramentas para converter dados de/para diferentes formatos
- Suporte para escala (linear)
- Capacidade de implantação rápida.
- Fornecimento de ferramentas para análise de dados e criação de relatórios

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quais são as etapas principais na abordagem centrada em dados?

A

Desenvolvimento e Operações
- Ingestão de Dados e ETL (Extract, Transform, Load): Dados movidos das fontes de dados para a plataforma.

Armazenamento e Gestão de Dados
- Dados ingeridos são armazenados e geridos, utilizando diferentes tipos de armazenamentos e bases de dados.

Análise e Aprendizagem de Dados
- Dados processados, analisados e utilizados para criar modelos e obter insights.
- Duas ideias principais: dados em repouso vs. dados em movimento.

Relatórios e Visualização
- Padrões e insights dos dados são interpretados e apresentados para suporte à tomada de decisões.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quais as pipelines de Big Data pelas infraestruturas distribuídas?

A

Data Source
Ingestion
Storage
Learning (Data Source, Ingestion, Store raw data, Data analysis, Store analytical data)
Visualization

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Dá exemplos de sistemas e fontes de dados em Big Data?

A

Fontes de Dados:
- sensores
- ficheiros,
- base de dados
- queues, logs

Armazenamento/Banco de Dados/Data Lake:
- MongoDB
- Hadoop Distributed File System (HDFS)
- Apache Cassandra
- Amazon S3 (parte de um Data Lake)
——–
Sistemas de Processamento de Dados em Lote (Batch):
- Hadoop MapReduce
- Apache Spark Batch.

Sistemas de Processamento de Dados em Streaming:
- Apache Kafka Streams
- Apache Flink Streaming
- Spark Streaming
- Google Dataflow

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Como difere a velocidade de processamento na pipeline?

A

Dependendo se o problema trabalha dados em tempo real ou não, as etapas de processamento variam:

Sem ser em tempo real:
(ex: transações de clientes movidas para centros de dados para fins de análise)
-> Data source, Ingestion, File Storage, Batch processing (Spark), Vidualization

Em tempo real:
(ex: Big Data como sensores rápidos e/ou dados de IoT em fluxos quase em tempo real, por exemplo, localizações de carros)
-> Data source, Message broker, Stream processing, Visualization

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que é prorgamming model?

A

É um programa que processa grandes volumes de uma variedade de dados, estruturados e não estruturados num ambiente paralelo e compartilhado por meio de duas tarefas sequenciais: mapear e reduzir. O Map filtra e classifica os dados enquanto reduz, divide o big data em pedaços menores. Em vez de lidar com as complexidades de sincronização e agendamento, precisamos apenas dar ao MapReduce duas funções, mapear e reduzir

MapReduce assume apenas um modelo limitado para expressar dados Hive e Pig: são dois modelos de programação adicionais no topo do MapReduce para aumentar a modelagem de dados do MapReduce com álgebra relacional e modelagem de fluxo de dados respectivamente
* Hive foi criado para emitir consultas semelhantes a SQL usando MapReduce em HDFS
* Pig foi criado para modelar programas baseados em fluxo de dados usando MapReduce

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quando utilizar MapReduce?

A

USAR QUANDO:
* Problemas que exigem acesso sequencial aos dados
* Arquivos muito grandes e raramente atualizados no local.
* Antecipar o crescimento dos dados
* Desejar disponibilidade de dados a longo prazo (substituição para armazenamento de longo prazo, como fitas)
* Ter muitas plataformas num único armazenamento de dados
* Alto volume de dados
* Alta variabilidade de dados

Estes problemas podem ser resolvidos com duas funções: Map e Reduce

NAO USAR QUANDO:
* Problemas em tempo real
* Problemas que exigem acesso aleatório aos dados
* Problemas onde os dados mudam frequentemente
* Pequenos conjuntos de dados
* Paralelismo a nível de tarefa
* Algoritmos avançados
* Substituição de infraestrutura

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Como implementar Map Reduce?

A

1º Dividir os arquivos de entrada armazenados no HDFS em divisões (normalmente do tamanho de um chunk) e atribui cada divisão a um mapeador diferente Mapper

2º Executar a função map para transformar as divisões numa sequência de pares chave/valor

3º Baralhar e Ordenar:
* O mestre coleta e ordena todos os pares chave/valor por chave
* As chaves são divididas entre todas as tarefas de redução (cada redução obtém todos os valores de chave com a mesma chave)

4ºRedutor:
Executar a função redutora, uma chave por vez, e combinar todos os valores associados a essa chave de alguma forma. Ás vezes podem ser associativas e/ou comutativas. Exemplo: em vez de produzir vários pares (w, 1), (w, 1) pode-se somar e produzir apenas uma chave (w, m), ainda assim é preciso agrupar e agregar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quais as regras práticas a considerar ao usar MapReduce?

A

Determinar:
* M, o número de tarefas de mapa
* R, o número de tarefas de redução

  • M deve ser maior que o número de nós
    Uma tarefa de mapa para um pedaço - R é geralmente menor que M
    A saída final é espalhada pelos R arquivos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Custo computacional:
Quando não considerar o tempocomputacional de MapReduce?

A

O tempo computacional está geralmente relacionado à movimentação de dados entre tarefas
Não deve ser considerado quando:
* O algoritmo executado por cada tarefa é muito simples, muitas vezes linear no tamanho de entrada
* A velocidade de interconexão é muito lenta quando comparada ao tempo computacional
* Mesmo que os dados estejam presentes no mesmo bloco, o tempo que leva para colocá-los na memória excede o tempo necessário para operar os dados uma vez na memória

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

O que é e como funciona Hadoop?

A

É um Open-source framework baseado no MapReduce
- É organizado numa estrutura de camadas
- Um componente, na estrutura de camadas, usa a funcionalidade ou capacidades dos componentes na camada abaixo dele
- Geralmente os componentes da mesma camada não se comunicam (e um componente nunca assume que uma ferramenta ou componente específico está acima)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Fala sobre a arquitetura de Hadoop

A

HDFS (Sistema de Arquivos Distribuídos do Hadoop): Unidade de armazenamento que distribui grandes conjuntos de dados em vários nós de um cluster. fornece armazenamento escalonável e confiável. (low-cost hardware). É responsável por distribuir, armazenar e recuperar informações em diferentes servidores para um processamento paralelo eficaz. Pode processar dados não estruturados e estruturados.

YARN - O Hadoop YARN fornece agendamento flexível e gerenciamento de recursos no armazenamento HDFS. Atua como gestor de cluster do Hadoop MapReduce, encarregado de implementar cargas de trabalho distribuídas. Planeia tarefas e distribui recursos de computação como memória e CPU para aplicativos. É portanto o processador e gestor de solicitações de trabalho e recursos de cluster.

MapReduce

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Fala sobre o restante ecossistema de Hadoop

A

Giraph: construído para processar gráficos de grande escala de forma eficiente

HBase, MongoDB, Cassandra: utilizado quando dados ou tarefas de processamento não são representados de maneira fácil ou eficiente usando sistemas de arquivos clássicos. Exemplos disso incluem coleções de valores-chave ou grandes tabelas esparsas

Zookeeper: sistema de gestão centralizado para sincronização, configuração e para garantir alta disponibilidade de todas essas ferramentas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

O que é Hadoop’s HDFS?

A

É um modelo coerente simples
* Aplicações HDFS precisam de um modelo de acesso de gravação uma vez-leitura-muitos para arquivos
* Anexar o conteúdo ao final dos arquivos é suportado, mas não pode ser atualizado num ponto arbitrário Mover a computação é mais barato do que mover dados
* Uma computação solicitada por uma aplicação é muito mais eficiente se for executada perto dos dados em que opera
* Isso minimiza o congestionamento da rede e aumenta o rendimento geral do sistema

Portabilidade entre plataformas heterogêneas de hardware e software: O HDFS foi projetado para ser facilmente portátil de uma plataforma para outra.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Arquitetura de HDFS

A

O HDFS possui uma arquitetura mestre/escravo:
Expõe um namespace do sistema de arquivos e permite que os dados do usuário sejam armazenados em arquivos
- O HDFS possui um único NameNode para metadados. O NameNode é o nó mestre no HDFS que é responsável por gerenciar a estrutura do sistema de arquivos e os metadados associados:
- Mantém informações sobre os nomes dos arquivos, na
localização no diretório, e a relação entre os arquivos e
os blocos armazenados nos DataNodes (Geralmente um por cluster)

  • O HDFS possui vários DataNodes para armazenamento dos dados em blocos que se comunicam com
    o NameNode para receber instruções sobre como gerenciar esses
    blocos. Há um DataNode por máquina no cluster.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

HDFS - Partição dos dados

A

O particionamento de dados garante escalabilidade.
Cada arquivo é armazenado como uma sequência de blocos
* Os blocos são o menor local contínuo no disco rígido onde os dados são armazenados
* O tamanho padrão de cada bloco é 128 MB no Apache Hadoop 3
* Todos os blocos num arquivo, exceto o último bloco, são do mesmo tamanho. O último ocupa na mesma 128 MB mesmo que só se use p.e 2MB

17
Q

HDFS - Replicação dos dados

A

A replicação garante
* Tolerância a falhas
* Localidade dos dados (mover a unidade de processamento para os dados em vez dos dados para a unidade de processamento) Uma aplicação pode especificar o número de réplicas de um arquivo
* O fator de replicação pode ser especificado no momento da criação do arquivo e pode ser alterado posteriormente
* NameNode toma todas as decisões relativas à replicação de blocos

  • permite o processamento paralelo
  • cada bloco 128MB fica guardado num servidor
18
Q

O que é Apache Spark?

A

Tentativa de ultrapassar desvantagens encontradas no Hadoop MapReduce, nomeadamente no que diz respeito à velocidade computacional Principais características
* Os componentes distribuídos no cluster (executores e gerenciadores) são acessados ​​através de uma instância SparkSession SparkSession criada que fornece um único ponto de entrada para todas as funcionalidades
* É um framework de computação em cluster distribuído de uso geral e de código aberto
* Foi concebido para grandes processamento de dados distribuído em grande escala, com foco em velocidade, flexibilidade de programação, modularidade, capacidade de processar dados quase em tempo real e análises disponíveis
* Fornece armazenamento na memória para cálculos intermediários, divididos no cluster, para que seja rápido.
- A desvantagem é o custo da grande quantidade de memória RAM necessária

Dtaa collection/API’s: Existem APIs de baixo e alto nível relacionadas a coleções (distribuídas) de dados

Conjunto de dados distribuídos resilientes (RDD)( APIs de baixo nível):
- DataFrame
- Dataset

19
Q

Quais as componentes de Apache Spark?

A

Spark Core
Spark SQL
Spark Structured Streaming
Machine Learning MLlib
Graph Processing GraphX

20
Q

Distribuição dos dados e partições

A

O particionamento de dados permite um paralelismo eficiente, uma vez que cada executor pode realizar trabalho em paralelo.
- Os dados físicos são divididos e distribuídos pelo armazenamento como pedaços chamados partições.
- Cada partição é tratada como um DataFrame na memória (abstração lógica de dados). Portanto, é uma coleção de linhas que fica em uma máquina física do cluster.

Se tivermos DataFrames no programa, não manipularemos (na maior parte) partições individualmente - simplesmente especificamos transformações de dados de alto nível nas partições físicas , e o Spark determina como isso acontecerá em todo o cluster.

Tanto quanto possível, a localidade dos dados deve ser buscada. Isso significa que um executor recebe preferencialmente uma tarefa que requer a leitura de uma partição mais próxima a ele na rede, a fim de minimizar a largura de banda da rede.

21
Q

Transformações e ações

A

As operações que existem no Spark podem ser divididas em dois tipos: Transformações e ações

  • Trabalho: computação paralela criada pelo driver, consistindo em múltiplas tarefas que são geradas em resposta a ações, por exemplo, salvar -Estágio: cada trabalho é dividido em conjuntos menores de tarefas chamados estágios, que dependem uns dos outros
  • Tarefa: única unidade de trabalho ou execução a ser enviada a um executor Spark (uma tarefa por núcleo)

As estruturas de dados principais são imutáveis, ou seja, não podem ser alteradas após a criação. Mas podemos obter um novo DataFrame, mas com alterações

Transformações: são instruções para o Spark retornar um DataFrame novo, mas alterado. Eles transformam um DataFrame num novo sem alterar os dados originais

(Spark espera que digamos tudo o que temos que fazer para depois ordenar as operações, otimizando o código) - Lazy Evaluation

A tolerância a falhas, além da replicação de dados entre os nós do cluster, também é alcançada devido à linhagem no contexto da lazy evaluation(registros transformações) e imutabilidade de dados entre transformações O estado original pode ser reproduzido reproduzindo a linhagem registrada