Preguntas de entrevista para ingeniero de desarrollo de big data

1. Preguntas de opción múltiple

1. ¿Qué programa es responsable del almacenamiento de datos HDFS?

nodo de datos

2. ¿Cuántas copias de un bloque en HDFS se guardan de forma predeterminada?

Por defecto 3 copias

3. ¿Qué programa se suele iniciar en el mismo nodo que NameNode?

rastreador de empleo

4. ¿Cuál es el tamaño de bloque predeterminado de HDFS?

64MB

5. ¿Cuál suele ser el principal cuello de botella de un cluster?

E/S de disco

6. ¿Acerca del nodo de nombre secundario?

Su propósito es ayudar a NameNode a fusionar registros de edición y reducir el tiempo de inicio de NameNode.

7. ¿Qué se puede utilizar como gestión de clústeres?

Marioneta, Pdsh, Cuidador del zoológico

8. El proceso cuando el cliente sube archivos.

El Cliente inicia una solicitud de escritura de archivo al NameNode. NameNode devuelve parte de la información del DataNode que administra al Cliente en función del tamaño del archivo y la configuración del bloque de archivos. El Cliente divide el archivo en varios Bloques y los escribe en cada bloque de DataNode en orden de acuerdo con la información de dirección del DataNode. (NameNode->Cliente->Bloqueo->DataNode)  

9. ¿Cuál es la configuración principal de Hadoop?

La configuración principal de Hadoop se completa a través de dos archivos xml: ① hadoop-default.xmlhadoop-site.xml . Todos estos archivos usan formato xml, por lo que hay algunos atributos en cada xml, incluidos nombres y valores, pero estos archivos ya no existen.

10. ¿Cómo configurarlo ahora?

Hadoop ahora tiene 3 archivos de configuración, ① core-site.xmlhdfs-site.xmlmapred-site.xml . Estos archivos se guardan en el subdirectorio conf/.

11. ¿Para qué sirve el comando jps?

Este comando puede verificar si Namenode, Datanode, Task Tracker y Job Tracker están funcionando correctamente.

12. ¿Cuál es el principio de mapreduce?        

Etapa del mapa:

  • División : Primero, el conjunto de datos de entrada se divide en varios bloques pequeños, cada bloque pequeño contiene una parte del registro de datos. Estos pequeños fragmentos se denominan fragmentos o fragmentos de entrada.
  • Mapeo: en esta fase, el usuario de la tarea MapReduce especifica una función de mapeo (función de mapa) que convierte cada registro del conjunto de datos de entrada en un conjunto de pares clave-valor. La generación de estos pares clave-valor se realiza de forma independiente y en paralelo. Cada tarea de Mapa corresponde a un fragmento de entrada, por lo que la etapa de Mapa tiene un alto grado de paralelismo. Los pares clave-valor de salida de la función Mapa generalmente están relacionados con las características del problema.
  • Agrupación y clasificación: Los pares clave-valor generados se agruparán para que los valores con la misma clave se puedan pasar a la misma tarea de Reducir. Además, estos pares clave-valor también se ordenarán por clave para que sea más fácil proceso en la etapa Reducir.

Reducir fase:

  • Reducir: en la fase de reducción, el usuario especifica una función de reducción (función de reducción) que recibe un conjunto de pares clave-valor con la misma clave y los combina en uno o más resultados de salida. Cada tarea de Reducir procesa un grupo de claves único y las tareas de Reducir también se pueden ejecutar en paralelo.
  • Salida de resultados: finalmente, los resultados de salida de la tarea Reducir se escriben en un almacenamiento persistente (como un sistema de archivos distribuido) para su posterior análisis y uso.

13. Proceso de escritura HDFS

  • El cliente vincula namenode para almacenar datos
  • El nodo de nombre registra una información de ubicación de datos (metadatos) y le dice al cliente dónde almacenarla.
  • El cliente utiliza la API HDFS para almacenar datos (el valor predeterminado es 64 M) en el nodo de datos.
  • El nodo de datos realizará una copia de seguridad de los datos horizontalmente y enviará comentarios al cliente una vez completada la copia de seguridad.
  • El cliente notifica al nodo de nombre que el bloque de almacenamiento está completo.
  • El namenode sincroniza metadatos en la memoria.
  • Otra pieza recorre el proceso anterior.

   proceso

  • El cliente se conecta al nodo de nombre, verifica los metadatos y encuentra la ubicación de almacenamiento de los datos.
  • El cliente lee datos simultáneamente a través de la API HDFS.
  • Cierra la conexión.

14. ¿Cuál es el papel del Combiner de Hadoop?

Combiner es una implementación de reducir, que ejecuta tareas informáticas en el lado del mapa y reduce los datos de salida en el lado del mapa.

La función es optimización, pero el escenario de uso del combinador es que el mapa y la entrada y salida reducidas de mapreduce son los mismos.

15. Describa brevemente la instalación de hadoop.

  • Crear cuenta hadoop
  • configuración.Cambiar IP
  • Instale Java, modifique el archivo /etc/profile y configure las variables de entorno de Java
  • Modificar el nombre de dominio del archivo host
  • Instale SSH y configure la comunicación sin llave
  • Desempaquetar Hadoop
  • Configure hadoop-env.sh, core-site.sh, mapred-site.sh, hdfs-site.sh en el archivo conf
  • Configurar variables de entorno de hadoop
  • Formato de nodo de nombre de Hadoop
  • empezar todo

16. Indique el nombre del proceso hadoop.

  • namenode administra el clúster y registra la información del archivo del nodo de datos
  • segundo nombre: se puede utilizar como modo de espera en frío para realizar una copia de seguridad instantánea de los datos dentro de un rango determinado.
  • nodo de datos: almacena datos
  • Jobtracker: administre tareas y asigne tareas a tasktracker
  • Tasktracker: ejecutor de tareas

17. Escribe los siguientes comandos.

  • matar un trabajo
  • Eliminar /tmp/aaa en hdfs
  • Se requieren nuevos comandos de estado del clúster para agregar un nuevo nodo de almacenamiento y eliminar un nodo informático
hadoop job -list #拿到job-id
hadoop job -kill job-id
Hadoop fs -rmr/tmp/aaa
#加新节点时:
Hadoop-daemon.sh start datanode
Hadoop-daemon.sh start tasktracker

#删除时
hadoop mradmin -refreshnodes
hadoop dfsadmin -refreshnodes

18. Describe brevemente el programador de hadoop.

  • Calendario FIFO: principio predeterminado de primero en entrar, primero en salir
  • Programación de capacidad: el programador de potencia informática selecciona el que tiene la menor ocupación y la mayor prioridad para ejecutarse primero, y así sucesivamente.
  • Programación justa: programación justa, todos los trabajos tienen los mismos recursos

19. El papel del combinador y la partición. 

  • Combiner es la implementación de reducir, que ejecuta tareas informáticas en el lado del mapa y reduce los datos de salida en el lado del mapa. La función es optimización, pero el escenario de uso de ombiner es que el resultado de salida del mapa de la reducción del mapa es el mismo que la entrada y salida de reducción.
  •   La implementación predeterminada de la partición es Hashpartition: el lado del mapa divide los datos según la cantidad de reductores y utiliza diferentes reductores para copiar sus propios datos. La función de la partición es dividir los datos en diferentes reductores para que el cálculo acelere el efecto del cálculo. 

20. La diferencia entre tablas internas y tablas externas de Hive.

  • Tabla interna: cargue datos en el directorio hdfs donde se encuentra Hive. Cuando se eliminan, se eliminan tanto los archivos de datos como los metadatos.
  • Tabla externa: no cargue datos en el directorio hdfs donde se encuentra Hive. Al eliminar, solo se elimina la estructura de la tabla.

21. ¿Cómo crear una clave de fila de Hbase? ¿Cuál es la mejor manera de crear una familia de columnas?

  • Al almacenar en hbase, los datos se almacenan en orden lexicográfico (orden de bytes) de la clave de fila. Al diseñar la clave, debe estar completamente ordenada.
  • Esta característica del almacenamiento es almacenar filas que a menudo se leen juntas. (Correlación posicional) Una familia de columnas es un archivo en la parte inferior de los datos, por lo que las columnas que a menudo se consultan juntas se colocan en una familia de columnas. Las familias de columnas deben ser la menor cantidad posible para reducir el tiempo de búsqueda del archivo.

22. ¿Cómo lidiar con el problema de sesgo de datos usando mapreduce?

Desvío de datos: cuando se ejecuta el programa de asignación/reducción, la mayoría de los nodos de reducción se han ejecutado, pero uno o varios nodos de reducción se ejecutan muy lentamente, lo que resulta en un tiempo de procesamiento prolongado para todo el programa. Esto se debe a que la cantidad de ciertas claves Es mucho mayor que el de otras claves. Mucho más (a veces hasta cien o mil veces), la cantidad de datos procesados ​​por el nodo reducido donde se encuentra esta clave es mucho mayor que la de otros nodos, lo que resulta en ciertos nodos llegar tarde, lo que se denomina sesgo de datos.

Solución: cuando se utilizan programas Hadoop para la asociación de datos, a menudo se encuentran datos sesgados. Aquí hay una solución: implemente la clase de partición usted mismo y agregue la clave y el valor para obtener el valor hash. 

 23. Cómo optimizar en el marco hadoop

  • Optimice desde la perspectiva de la aplicación. Dado que mapreduce analiza de forma iterativa los archivos de datos línea por línea, cómo escribir aplicaciones eficientes en iteración es una idea de optimización.
  • Ajuste de los parámetros de hadoop. El sistema hadoop actual tiene más de 190 parámetros de configuración. Cómo ajustar estos parámetros para que el trabajo de hadoop se ejecute lo más rápido posible también es una idea de optimización.
  • La optimización desde la perspectiva de la implementación del sistema es la más difícil: descubrir las deficiencias en el diseño e implementación actual de Hadoop desde la perspectiva del mecanismo de implementación de Hadoop y luego realizar modificaciones a nivel del código fuente. Aunque este método es difícil, suele resultar eficaz.
  • Ajuste de parámetros del kernel de Linux

24. Cuando desarrollamos un trabajo, ¿podemos eliminar la fase de reducción?

Sí, simplemente establezca el número de reducción en 0.

25. ¿En qué circunstancias no se realizará una copia de seguridad del nodo de datos?

No se realizará una copia de seguridad del nodo de datos cuando se vea obligado a cerrarse o tenga un corte de energía anormal.

26. Arquitectura HDFS

HDFS consta de namenode, secondraynamenode y datanode. Es el modo n+1.

  • El namenode es responsable de administrar el nodo de datos y registrar metadatos.
  • secondraynamenode es responsable de fusionar registros
  • datanode es responsable de almacenar datos

27. ¿Qué pasará si uno de los tres nodos de datos tiene un error?

Los datos de este nodo de datos se respaldarán nuevamente en otros nodos de datos.

28. Describe dónde se utiliza el mecanismo de almacenamiento en caché en Hadoop y cuáles son sus funciones.

Después de que MapReduce envíe la ID del trabajo, todos los archivos se almacenarán en la caché distribuida para que todos los MapReduce puedan compartirlos.

29. Cómo determinar el estado de salud del clúster Hadoop

A través de monitoreo de página y control de scripts.

30. ¿Por qué se recomienda utilizar tablas externas en un entorno de producción?

  • Debido a que las tablas externas no cargarán datos en Hive, la transmisión de datos se reduce y los datos se pueden compartir.
  • colmena no modificará los datos, por lo que no hay necesidad de preocuparse por daños en los datos
  • Al eliminar una tabla, solo se elimina la estructura de la tabla sin eliminar los datos de la tabla.

Supongo que te gusta

Origin blog.csdn.net/qq_43687860/article/details/133160096
Recomendado
Clasificación