preámbulo
Durante el período de 2018 a 2021, el autor leyó más de 200 libros y columnas relacionadas con big data.
Esta columna es el minucioso trabajo del autor basado en años de lectura de notas, combinado con su propia experiencia en el desarrollo de big data.
Al mismo tiempo, el autor también clasificó los documentos citados según el grado de recomendación personal.Para más detalles, consulte las Referencias.
Ven y presta atención, ¡muchas gracias!
Compañero de esta columna
100 preguntas para resolver el sistema teórico del big data
100 preguntas para resolver la máquina virtual Java
100 preguntas para resolver la concurrencia de Java
Estructura de directorios
HDFS(3.2.2)
- ¿Qué es Hadoop?
- ¿Por qué usar Hadoop?
- ¿Cuáles son las nuevas características de Hadoop3.x?
- ¿Cuál es la diferencia entre Hadoop1.x y Hadoop2.x?
- ¿Cuál es el objetivo de diseño de HDFS?
- ¿Cuáles son los requisitos de diseño de HDFS?
- ¿Qué es HDFS?
- ¿Qué opinas de la idea de diseño de HDFS?
- ¿Cuál es la diferencia entre HDFS y los sistemas de archivos ordinarios?
- Explicación gráfica detallada de la arquitectura HDFS
- ¿Cuál es el papel de SecondaryNameNode?
- ¿Qué es el mecanismo de latido del corazón de HDFS?
- ¿Cómo dividir archivos grandes en HDFS?
- ¿El conjunto de bloques es lo más grande posible? ¿El conjunto de bloques es lo más pequeño posible?
- ¿Qué son la alta disponibilidad y la federación de HDFS?
- ¿Qué son las instantáneas de HDFS?
- ¿Cuál es el principio de alta disponibilidad de HDFS?
- ¿Cuáles son los diseños tolerantes a fallas de HDFS?
- ¿Cuál es el proceso de lectura y escritura de HDFS?
- ¿Cómo elimina HDFS los datos?
- ¿Qué tiene de malo que HDFS almacene muchos archivos pequeños? ¿Cómo almacenar muchos archivos pequeños?
- ¿Qué es SequenceFile? ¿cómo utilizar?
- ¿Qué son los archivos de mapas HDFS?
- ¿Qué es la serialización de Hadoop?
- ¿Qué son los RPC de Hadoop?
- ¿Cuál es la estrategia de almacenamiento del bloque Block? ¿Cuál es la estrategia de colocación de réplicas de HDFS?
- ¿Qué es el mecanismo de replicación HDFS?
- ¿Qué es el reconocimiento de racks de HDFS?
- ¿Cuáles son las estrategias de equilibrio de carga de datos de HDFS?
- ¿Cómo cree que HDFS resuelve el problema del costo de almacenamiento causado por tres copias? ¿Qué es la tecnología de código de borrado de archivos de Hadoop3.x?
- ¿HDFS es compatible con el almacenamiento SSD?
- ¿Qué es la gestión de caché centralizada de HDFS?
- ¿Cuál es el proceso de inicio de HDFS?
- ¿Cómo realiza HDFS la administración de permisos?
- ¿Cómo realiza HDFS la gestión de cuotas?
- ¿Qué es el archivo de archivo (Archive) de HDFS?
- ¿Cómo entender el modelo de seguridad de HDFS?
- ¿Cómo garantizar la seguridad de los datos de HDFS?
- ¿Qué es la autenticación Kerberos para HDFS?
- ¿Cuáles son las operaciones de línea de comandos comúnmente utilizadas para HDFS?
- ¿Cómo escribir código HDFS?
- ¿Cómo transferir datos entre dos clústeres HDFS?
- ¿Cuáles son los requisitos del sistema operativo para los clústeres de Hadoop en entornos de producción?
- ¿Cómo sintonizar HDFS?
- ¿Cómo opera y mantiene HDFS?
- ¿Cómo lidiar con las excepciones comunes en HDFS?
MapReduce(3.2.2)
- ¿Qué es MapReduce? ¿Cuáles son las características?
- ¿Qué es el modelo de programación de MapReduce?
- ¿Por qué debería eliminarse MapReduce?
- ¿Flujo de trabajo de MapReduce?
- Explicación gráfica detallada de MapReduce en YARN
- ¿Cómo resolver el problema del sesgo de datos de MapReduce?
- ¿Cómo escribir código MapReduce?
- ¿Qué es un contador MapReduce (Contador)?
- ¿Cómo ajustar MapReduce?
HILO(3.2.2)
- ¿Cuál es la arquitectura de YARN? ¿Cuáles son los componentes principales de YARN?
- Cuéntame sobre tu comprensión del marco YARN.
- ¿Cuál es el proceso de envío de solicitudes de YARN?
- ¿Qué programadores hay en YARN?
- ¿Cuáles son los diseños de alta disponibilidad de YARN?
- ¿Cómo afinar YARN?
- ¿Cuáles cree que son las fallas en los esquemas de programación tradicionales de Yarn y Mesos? ¿Qué es Quasar?
Guardián del zoológico(3.7.0)
- Tutorial de instalación e implementación de Zookeeper 3.6.3
- ¿Qué es Zookeeper?
- ¿Cuáles son las características de ZooKeeper?
- ¿Cuáles son los escenarios de aplicación de ZooKeeper?
- ¿Cómo implementar bloqueos distribuidos con ZooKeeper?
- ¿Cuál es el mecanismo de elección de ZooKeeper?
- ¿Cuál es el mecanismo de vigilancia de ZooKeeper?
- Explicación detallada del algoritmo de Paxos
Colmena(3.1.2)
- ¿Cómo instalar e implementar Hive?
- ¿Qué es la colmena? ¿Cuáles son las características?
- ¿La diferencia entre Hive y la base de datos?
- ¿Cuál es la diferencia entre el modo de tiempo de lectura y el modo de tiempo de escritura de Hive?
- ¿Qué es la arquitectura del sistema Hive?
- ¿Cuáles son los tipos de datos de Hive?
- ¿Qué es el modelo de datos de Hive?
- ¿Cuál es la diferencia entre las tablas internas y externas de Hive?
- ¿Qué es la tabla de particiones de Hive?
- ¿Cómo funciona la colmena?
- ¿Cómo importar y exportar datos de Hive?
- ¿Qué es la partición estática y la partición dinámica de Hive?
- ¿Cuáles son las formas de asociar la tabla de particiones de Hive con los datos cargando directamente los datos en el directorio de particiones (hdfs)?
- ¿Son mejores más particiones en Hive?
- ¿Qué es la mesa de cubo de Hive? cual es el efecto
- ¿Puede la tabla de cubos de Hive importar datos a través de la carga directa?
- ¿Cuál es la diferencia entre la partición y el depósito de Hive?
- ¿Cuál es la diferencia entre ordenar por, ordenar por, distribuir por y agrupar por?
- ¿Se pueden escribir funciones agregadas después de ordenar por, por qué?
- ¿En qué circunstancias puede Hive evitar MapReduce?
- ¿Cómo elegir el formato de compresión de datos de Hive?
- ¿Cómo elegir el formato de almacenamiento de archivos de Hive?
- ¿Qué es SerDe de Hive?
- ¿Cómo resolver el escenario de segmentación de múltiples caracteres en Hive?
- ¿Cómo sintonizar Hive?
HBase(2.4.4)
- ¿Cómo instalar e implementar HBase?
- ¿Qué es HBase? ¿Cuáles son las características?
- ¿Cuál es la diferencia entre HBase y RDBMS?
- ¿Cuál es la arquitectura general de HBase?
- ¿Cuál es el modelo de datos de la tabla HBase?
- ¿Cuál es el principio de almacenamiento de datos de HBase?
- ¿Cuáles son los mecanismos al ras y compactos de HBase?
- ¿Cuál es el mecanismo de división de regiones de HBase?
- ¿Qué es el particionamiento previo de tablas HBase? ¿Por qué prepartición? ¿Cómo preparticionar?
- ¿Qué es el punto de acceso HBase? ¿Cómo resolver los puntos calientes de HBase?
- ¿Cómo entender los principios internos de HBase?
- ¿Cuál es el proceso de lectura y escritura de datos en HBase?
- Un artículo para entender BlockCache de HBase
- Un artículo para entender el Coprocesador de HBase
- Un artículo para entender el mecanismo BulkLoad de HBase
- Un artículo para entender el MSLAB de HBase
- Un artículo para comenzar con la API de Java de HBase
- ¿Cómo equilibra la carga HBase?
- ¿Cómo configurar el reintento de RPC del cliente HBase?
- ¿Cómo evita HBase el GC completo?
- ¿Qué razones pueden causar que el RegionServer de HBase se caiga?
- Las operaciones de Shell de HBase están todas disponibles
Canal (1.9.0)
- ¿Qué es Flume? ¿Cuáles son las características de Flume?
- ¿Qué es la arquitectura de Flume?
- ¿Cómo asegura Flume la confiabilidad?
- ¿Cuáles son los niveles de fiabilidad de Flume?
- ¿Cómo personaliza Flume Mysql Source?
- ¿Cómo personaliza Flume Mysql Sink?
- ¿Cómo implementa Flume la reanudación de datos?
- ¿Cuál es el caso de uso de Flume?
Sqoop (ha detenido el mantenimiento)
Azkabán(3.30.1)
- ¿Por qué necesita un sistema de programación de flujo de trabajo?
- ¿Qué es Azkaban? ¿Cuáles son las características?
- ¿Cuál es la arquitectura básica de Azkaban?
- ¿Cuáles son los tres modos de implementación de Azkaban?
Kafka(2.8)
- ¿Por qué tener un sistema de cola de mensajes/motor de mensajes?
- ¿Qué es Kafka?
- ¿Por qué usar Kafka?
- ¿Cuáles son los conceptos centrales de Kafka?
- ¿Qué es la solución de implementación de clústeres en línea de Kafka?
- ¿Cuáles son los comandos comunes del clúster de Kafka?
- ¿Cuáles son los tres mecanismos del ack de Kafka?
- ¿Cómo mejorar el rendimiento del productor de Kafka?
- ¿Cómo asegurarse de que los mensajes de Kafka no se pierdan?
- ¿Cómo garantiza Kafka el orden de los mensajes?
- ¿Cómo lidiar con la acumulación de millones de mensajes de Kafka?
- ¿Cómo implementa Kafka la partición personalizada?
- ¿Cómo escribir el código de cliente de Kafka?
- ¿Qué son los algoritmos de compresión del productor Kafka?
- ¿Qué es el productor idempotente de Kafka?
- ¿Qué es el productor de transacciones de Kafka?
- ¿Cuál es la diferencia entre el Productor idempotente y el Productor transaccional de Kafka?
- ¿Cómo gestiona el productor Java de Kafka las conexiones TCP?
- ¿Cómo gestiona el consumidor Java de Kafka las conexiones TCP?
- ¿Qué son los interceptores de Kafka? ¿cómo utilizar?
Grande (1.13.2)
- ¿Comparación de marcos de computación de flujo?
- ¿Cómo implementar e instalar Flink?
- ¿Qué es Flink? ¿Cuáles son las características?
- ¿Cuál es el modelo de programación de Flink?
- ¿Qué es el módulo funcional de Flink?
- ¿Cuál es la arquitectura del sistema de Flink?
- ¿Cuáles son los modos de implementación de clúster de Flink?
- Un artículo para entender la Ventana de Flink
- Hermanos del tiempo de Flink
- Un artículo para entender el mecanismo de marca de agua de Flink
- Preservación y restauración del estado de Flink
- Proceso de envío de la sesión YARN de Apache Flink
- Proceso de envío por trabajo de Apache Flink
- Proceso de envío de la sesión K8s de Apache Flink
ALCE(6.7.0)
- ¿Cómo instalar y desplegar Elasticsearch?
- ¿Qué es ELK?
- ¿Cómo instalar el complemento elasticsearch-head?
- ¿Cuáles son los conceptos centrales de Elasticsearch?
- ¿Cómo administra Elasticsearch los índices?
- Un artículo para comenzar con las consultas de Elasticsearch
- ¿Cómo define Elasticsearch las asignaciones de tipo de campo?
- Solución de paginación de Elasticsearch
- Instalación y uso del separador de palabras chino IK de Elasticsearch
Maxwell
Presto
ClickHouse
¿Qué es ClickHouse? ¿Cuáles son las características de ClickHouse?
Kylin
- ¿Qué es Apache Kylin?
- ¿Cuáles son las características de Apache Kylin?
- ¿Qué pasa con la estimación de Apache Kylin?
- ¿Cuál es el flujo de trabajo de Apache Kylin?
- Un artículo para entender la arquitectura técnica de Apache Kylin 4.x
Kubernetes
- ¿Qué es Kubernetes?
- ¿Cuáles son las características de Kubernetes?
- Los conceptos centrales de Kubernetes se eliminan
- ¿Qué son los pods en Kubernetes?
- ¿Cuál es la arquitectura del sistema de Kubernetes?
CDH/CDP
- ¿Qué son los CDH/CDP?
- Cloudera Manager: herramienta integral de administración de centros de datos empresariales
Núcleo de chispa (3.3.0-INSTANTÁNEA)
Debido a que el autor ha estado estudiando el código fuente de Apache Spark, la versión del código fuente de Spark involucrada en la columna se basa en la rama maestra de github. El número de versión actual es: 3.3.0-SNAPSHOT
Explicación detallada del artículo Spark RDD
Spark RDD Paper Explicación detallada (1) Resumen e introducción
Spark RDD Paper Explicación detallada (2) RDD
Explicación detallada del artículo Spark RDD (3) Interfaz de programación Spark
Explicación detallada de los documentos Spark RDD (4) Expresando RDD
Spark RDD Paper Explicación detallada (5) Implementación
Spark RDD Paper Explicación detallada (6) Evaluación
Explicación detallada del artículo Spark RDD (7) Discusión
Explicación detallada del trabajo y finalización relacionados con el artículo Spark RDD (8)
Explicación detallada de la nueva función aleatoria basada en push en la versión Spark 3.2.0
Spark 3.2.0 nueva característica de papel aleatorio basado en push explicación detallada (5) resultados de evaluación
Spark 3.2.0 nueva característica de papel aleatorio basado en push explicación detallada (6) trabajo relacionado
Spark 3.2.0 nueva característica papel aleatorio basado en push explicación detallada (7) conclusión
ensayo
- ¿Cómo convertirse en colaborador de Apache Spark?
- Instalación e implementación de Spark 2.3
- ¿Por qué Spark es tan increíble?
- Los conceptos básicos de Spark Core están todos en una sola vez
- ¿Qué son los RDD?
- ¿Qué es SparkContext? cual es el efecto
- ¿Qué es SparkConf? cual es el efecto
- ¿Qué es SparkEnv? cual es el efecto
- ¿Qué es SecurityManager? cual es el efecto
- ¿Qué es DAGScheduler? cual es el efecto
- ¿Cómo divide DAGScheduler el escenario?
- ¿Cuál es el proceso de programación de DAGScheduler?
- ¿Qué es TaskScheduler? cual es el efecto
- Consulte Apache Spark para realizar la compilación híbrida maven de Java y Scala
- ¿Cómo unificar el estilo de código de Scala? Puedes copiar esta configuración de scalastyle sin pensar
- Consulte el código fuente de Apache Spark para personalizar la implementación de la herramienta de impresión de registros Logging
- ¿Error al compilar el código fuente de Apache Spark? Eso es porque omitiste la operación clave.
- Implementación de regresión lineal con Spark MLlib
- Usando Spark GraphX para implementar el algoritmo PageRank
- Nueva función de Spark 3.0: programación de tareas con reconocimiento de acelerador
- Resumen de las excepciones de Spark
Spark SQL (3.3.0-INSTANTÁNEA)
Funciones integradas de Spark SQL
Funciones integradas de Spark SQL (1) Funciones de matriz (basadas en Spark 3.2.0)
Funciones integradas de Spark SQL (2) Funciones de mapa (basadas en Spark 3.2.0)
Funciones integradas de Spark SQL (3) Funciones de fecha y marca de tiempo (basadas en Spark 3.2.0)
Funciones integradas de Spark SQL (4) Funciones JSON (basadas en Spark 3.2.0)
Funciones integradas de Spark SQL (5) Funciones agregadas (basadas en Spark 3.2.0)
Funciones integradas de Spark SQL (6) Funciones de ventana (basadas en Spark 3.2.0)
Spark SQL functions.scala análisis de código fuente
Spark SQL functions.scala análisis de código fuente (1) Ordenar funciones (basado en Spark 3.3.0)
Análisis de código fuente Spark SQL functions.scala (2) Funciones agregadas (basadas en Spark 3.3.0)
Spark SQL functions.scala análisis de código fuente (3) Funciones de ventana (basado en Spark 3.3.0)
Spark SQL functions.scala análisis de código fuente (7) Funciones de cadena (basado en Spark 3.3.0)
Análisis de código fuente Spark SQL functions.scala (8) Funciones DateTime (basadas en Spark 3.3.0)
Análisis de código fuente Spark SQL functions.scala (9) Funciones de colección (basadas en Spark 3.3.0)
Spark SQL functions.scala análisis de código fuente (10) Funciones de transformación de partición (basado en Spark 3.3.0)
Análisis de código fuente Spark SQL functions.scala (11) Funciones Scala UDF (basado en Spark 3.3.0)
Análisis de código fuente Spark SQL functions.scala (12) Funciones Java UDF (basadas en Spark 3.3.0)
Análisis del código fuente del flujo de trabajo de Spark SQL
ensayo
- ¿Cómo se desarrolló Spark SQL?
- ¿Qué es Spark SQL?
- ¿Qué hace Spark SQL?
- ¿Qué es el modelo de programación DataFrame?
- ¿Cuál es la diferencia entre RDD y DataFrame?
- Interpretación de Dataset desde la perspectiva del código fuente de Spark
- Hablando sobre la idea de Spark SQL para realizar la gestión de calidad de tareas
- ¿Cómo usar Dataset.show en Spark? ¿Cuáles son los lugares dignos de mención?
- Mecanismo AQE de Spark SQL
- ¿Cómo personaliza Spark SQL las extensiones?
- ¿Qué tipos de JOIN admite Spark SQL?
- ¿Cómo elige Apache Spark la estrategia JOIN?
- ¿Qué es la API de catálogo de tablas de la versión Spark 3.x?
- Análisis de código fuente del mecanismo WSCG de Spark 3.x
- Análisis de código fuente del sistema de intercambio Spark 3.x
- Un artículo para aprender el desarrollo de código de lectura y escritura de datos de Spark
- Un artículo para entender el CacheManager de Spark 3.x
- Un artículo para entender el sistema de Catálogo de Spark 3.x
Referencias (ordenadas por recomendación)
Los documentos oficiales deben leerse primero, las columnas de Geek Time no están mal, ¡y las mejores listas de recomendaciones de libros son muy recomendables!
No hay necesidad de leer los últimos nombres, solo cité algunas palabras, así que las agregué.
Las citas de blog no están incluidas en las clasificaciones de la lista recomendada
y se actualizarán a medida que se actualice la columna ~
- Documentación oficial de Hadoop 3.2.2
- Spark 3.1.2 Documentación oficial
- Documentación oficial de Kafka 2.8
- HBase 2.4.4 Documentación oficial
- Colmena 3.1.2 Documentación oficial
- Columna Geek Time "Tecnología central de Kafka y combate real" Hu Xi
- Columna Geek Time "Aprender Big Data desde 0" Li Zhihui
- Columna Geek Time "Combate real de procesamiento de datos a gran escala" Cai Yuannan
- Columna Geek Time "Principios básicos de Spark y combate práctico" Wang Lei
- "Explicación detallada de la arquitectura de Big Data: desde la adquisición de datos hasta el aprendizaje profundo" editado por Zhu Jie y Luo Hualin
- "Chispa ilustrada: tecnología central y práctica de casos" editado por Guo Jingzhan
- "Análisis del kernel Spark SQL" Zhu Feng, Zhang Shaoquan, Huang Ming
- "Spark Big Data Business Practice Trilogy: Kernel Decryption Business Case Performance Tuning 2nd Edition" editado por Wang Jialin, Duan Zhihua, Xia Yang
- "El arte del diseño Spark Kernel: diseño e implementación de la arquitectura" por Geng Jia'an
- "Hadoop Experts: Management, Tuning, and Spark YARN HDFS Security" (EE. UU.) por Sam R. Alapati, traducido por Zhao Guoxian y otros
- "Guía definitiva de Hadoop (tercera edición)" (EE. UU.) White (White, T.); Traducido por la Facultad de ciencia e ingeniería de datos, Universidad Normal de China Oriental
- "Enterprise Data Lake" (India) Tomcy John (Tomcy John), (India) Pankaj Misra (Pankaj Misra); Traducido por Zhang Shiwu, Li Xiang, Zhang Haolin
- "Spark Kernel Mechanism Analysis and Performance Tuning" editado por Wang Jialin y otros
- "Procesamiento masivo de datos de Hadoop: explicación técnica detallada y práctica del proyecto, 2.ª edición" por Fan Donglai
- "Explicación detallada del sistema de tecnología Big Data: principios, arquitectura y práctica" por Dong Xicheng
- "Principios y aplicaciones de la tecnología de Big Data de Hadoop" escrito por Dark Horse Programmer
- "Extracción de macrodatos de Hadoop desde el inicio hasta la práctica avanzada: versión didáctica en video" editado por Deng Jie
- "Práctica de desarrollo de Big Data de Hadoop & Spark" editado por Xiao Rui y Lei Gangyue
- "Desarrollo y aplicación de Big Data" editado por Qingdao Yinggu Education Technology Co., Ltd., Shandong Business and Technology College
- "Tecnología Hadoop y análisis de aplicaciones en la era de los grandes datos" por Wei Pengcheng, Shi Chengxiang, Cai Yinying
- "De Paxos a Zookeeper: principios y práctica de consistencia distribuida" por Ni Chao
- "Tecnología de big data e investigación de aplicaciones" por Hu Pei, Han Pu
- "Tecnología de big data y práctica de aplicaciones en la era de la nube" Zhu Lihua
- "Tecnología Big Data y aplicación en computación en la nube" por Liang Fan
- "Introducción a la tecnología Big Data" editado por Chen Ming
- Editor en jefe Lou Yan de "Fundamentos de aplicaciones de Big Data"
- "Análisis de grandes datos de Hadoop" editado por Gao Shuibin, Qian Lianghong, Fang Zhijun
- Editor en jefe Zhu Yangyong de "Recursos de Big Data"
- "Construcción y operación y mantenimiento del entorno de alta disponibilidad de Big Data" editado por Tianjin Binhai Xunteng Technology Group Co., Ltd.
- Uso de MapReduce-Counter: realice rápidamente las estadísticas del número de líneas en archivos grandes