1. Indexación y motores de búsqueda
1.1. Se busca sobre la metadata y no la data.
1.1.1. Se crean archivos de tipo lucene clave valor donde se almacenan los datos
1.2. Lucene
1.2.1. API de programación
1.2.2. Contenedores web que usan la RestAPI
1.2.2.1. Apache Solr
1.2.2.1.1. Wrapper de Lucene, se comunica por HTTP
1.2.2.2. Yeti+Elastic search
1.2.3. Busqueda por indices
1.2.4. Facetados
1.2.4.1. Agrupacion para hacer conteo
2. Pig
2.1. Creado por yahoo
2.2. Hacer consultas tipo procedimiento (paso a paso)
2.3. Analizar grandes volumenes de datos con MapReduce
2.4. Maneja consultas complejas anidadas, no necesita estructura
2.5. Se puede usar de forma local sin hadoop
3. Tres Vs de Big Data
3.1. Volumen
3.1.1. PB
3.1.1.1. Hadoop
3.1.2. TB
3.1.2.1. DataWarehouse
3.1.3. GB
3.1.3.1. Base de datos en memoria
3.1.3.1.1. Redis
3.1.3.1.2. Dynamo
3.1.3.1.3. Hasta TB < DataWarehuose
3.2. Velocidad
3.2.1. Horas
3.2.1.1. DataWarehouse
3.2.1.1.1. Hasta TB
3.2.1.2. Hadoop
3.2.1.2.1. Hasta PB
3.2.2. Min
3.2.2.1. DataWarehouse
3.2.2.1.1. Hasta TB
3.2.2.2. Hadoop
3.2.2.2.1. Hasta PB
3.2.3. Seg
3.2.3.1. Base de datos en memoria
3.2.3.1.1. Redis
3.2.3.1.2. Dynamo
3.2.3.1.3. Hasta TB < DataWarehuose
3.2.4. SubSec
3.2.4.1. ElasticSearch
3.2.4.1.1. Solo GB
3.3. Variedad
4. Apache Hadoop o Hadoop Common
4.1. Hadoop MapReduce + HDFS
5. Apache Spark
5.1. Framework de computación distribuida basado en databricks
5.2. No necesita Hadoop, tiene sus propios mecanismos de MapReduce
5.3. Mejor que Yarn
5.4. Tipos de datos
5.4.1. RDD
5.4.1.1. no se puede modificar
5.4.1.2. Colecciones de datos estructurados y no estructurados
5.4.2. DataFrame
5.4.2.1. Permite hacer operaciones de SparkSQL
5.5. Streaming estructurado
5.5.1. Stateless
5.5.1.1. Puede perder data, no se guardan logs si hay un error se pierden los datos
5.5.1.2. RDD
5.5.2. Stateful
5.5.2.1. No pierde data
5.5.2.2. Dataframe
5.6. Componentes
5.6.1. Spark SQL
5.6.2. Spark Streaming
5.6.3. MLib
5.6.4. GraphX
6. Procesamiento
6.1. Batch
6.1.1. Se usan stored procedures on BDD
6.1.2. Pentaho
6.1.3. Es lento, demora horas
6.2. Near to Real Time
6.2.1. Google Maps
6.2.2. Tipos
6.2.2.1. Suaves
6.2.2.1.1. Puedo perder data
6.2.2.2. Rigidos
6.2.2.2.1. No puedo perder data
6.2.3. Segundos o minutos
6.3. Real Time
6.3.1. Radar de aeropuerto
6.3.2. Menos ed segundos
6.4. Streaming
6.4.1. No significa real time
6.4.2. Significa flujo continuo de datos
7. Google File System
7.1. Master
7.1.1. Unico punto de falla
7.1.2. Se crea el shadow master
7.1.2.1. Cluster activo pasivo (ya no se usa)
7.2. Chunk Server
7.2.1. Guarda archivos por pedazos
8. DataLake
8.1. Base de datos
8.2. Datos semiestructurados
8.2.1. JSON
8.3. Datos no estructurados
8.3.1. Imagenes
8.4. Apache Hadoop por ejemplo
9. Kafka
9.1. Publish Suscribe
9.2. Se divide por topicos
9.3. Ingesta en tiempo real
9.4. Se usa con spark streaming, para agarrar los datos del lake
9.4.1. Implementado con DataFrame
9.4.2. Lee en micro-batches (baldes)
10. DataWarehouse
10.1. Base de datos relacional
10.1.1. Tabla de hechos
10.1.1.1. Goles amarillas
10.1.2. Tabla de dimensiones
10.1.2.1. Goles de Uruguay en el primer mundial
10.1.2.2. Grano grueso o fino
10.1.2.2.1. Por semana
10.1.2.2.2. Por año
11. Snapshot (NO BACKUP)
12. Factor de replicación (IMPAR)
13. Map reduce
13.1. Map
13.1.1. Formatos de archivos clave valor
13.1.1.1. Parquet
13.1.1.2. Avro
13.1.1.3. ORC
13.2. Reduce
13.2.1. Algoritmo de reducción compresion
13.2.1.1. GZ
13.2.1.2. Snappy
13.2.1.3. HUDI
13.3. MapReduce V2 Yarn
13.3.1. Necesita Hadoop
13.3.2. segunda versión del planificador de trabajos y tareas para map reduce
13.3.3. basado en grafo aciclico distribuido
14. Flujo distribuido Juntos generan un cluster de archivos distribuidos ->
14.1. Master
14.1.1. Almacena metadata y ordena a los workers
14.1.2. Trabaja con Jobs
14.1.3. Usa NameNode y SecondaryNameNode por si se cae
14.2. Worker
14.2.1. Almacena data pura replicada
14.2.2. Trabaja con mapeo y reducción
14.2.3. DataNode tiene los datos
15. HBase
15.1. Base de datos NoSQL de Hadoop
15.2. Escribe en el sistema de archivos distribuido
15.3. Versiones
15.3.1. Cloudera
16. ZooKeeper
16.1. Permite sincronizar configuración entre un cluster de servidores
16.2. Sirve para monitorear servidores
16.3. También para decir que va a hacer cuando se levante para ponerse al dia
17. Sqoop
17.1. Migrar datos de bases de datos haciendo map reduce y metiendola en HDFS
18. Arquitecturas de procesamiento
18.1. Lambda
18.1.1. Pueden seguir procesando cosas en batches
18.1.2. Se agrega una speed layer
18.1.2.1. Puede ser Near to Real Time o Real Time
18.2. Kappa
18.2.1. No permite procesar en batches
18.2.2. Solo en speed layer
19. Hue
19.1. Interfaz web para ver todo lo que hace con hadoop en un mismo sitio por HTTP
19.1.1. Hive
19.1.2. Pig
19.1.3. Hadoop
19.1.4. SparkSQL
19.1.5. Bases de datos relacionales
20. ELK
20.1. Elastic search
20.2. Kibana
20.2.1. Hacer graficas con los indices de elastic search
20.3. Logstash
20.3.1. Procesar logs a traves de patrones