Resumen de los puntos de conocimiento de Hadoop

1. Describa brevemente su comprensión del modo SafeMode del clúster Hadoop.

         El clúster está en modo seguro y no puede realizar operaciones importantes (operaciones de escritura). El clúster está en un estado de solo lectura; pero estrictamente hablando, solo garantiza el acceso a la información de metadatos de HDFS, no el acceso a archivos; después de que se inicia el clúster, sale automáticamente del modo seguro, si el clúster está en modo seguro, debe salir del modo seguro si desea completar la operación de escritura

         Verifique el estado del modo seguro: bin / hdfs dfsadmin -safemode get

         Ingrese al estado de modo seguro: bin / hdfs dfsadmin -safemode enter

         Deja el estado de modo seguro: bin / hdfs dfsadmin -safemode leave

         Espere el estado del modo seguro: bin / hdfs dfsadmin -safemode wait

         Para un clúster HDFS recién creado, NameNode no ingresará al modo seguro después del inicio, porque no hay información de bloque

 

2. ¿Cómo configurar la lista negra y la lista blanca en el clúster hadoop? Cuales son los roles?

         Los nodos de host agregados a la lista blanca pueden acceder al NameNode, y los nodos de host que no estén en la lista blanca serán retirados

         Crear archivo white.hosts: el nombre de host agregado en el archivo está en la lista blanca

         Agregue la propiedad white.hosts al archivo de configuración hdfs-site.xml y distribuya el archivo

         Los hosts de la lista negra se verán obligados a salir

         Cree un archivo black.hosts: el nombre de host agregado al archivo es una lista negra

         Agregue la propiedad black.hosts al archivo de configuración hdfs-site.xml y distribuya el archivo

        

3. ¿Es posible ejecutar Hadoop en Windows?

         Hipocresía

 

4. Al procesar tareas en MapReduce, describa brevemente qué proceso básico atraviesa.

         Las instancias concurrentes de MapTask en la primera etapa se ejecutan completamente en paralelo y son independientes entre sí

         Las instancias concurrentes de ReduceTask en la segunda etapa no están relacionadas entre sí, pero sus datos dependen de la salida de todas las instancias concurrentes de MapTask en la etapa anterior.

         El modelo de programación de MapReduce solo puede contener una fase de mapa y una fase de reducción. Si la lógica empresarial del usuario es muy compleja, solo se pueden ejecutar varios programas de MapReduce en serie.

 

5. La respuesta corta describe cómo el siguiente TextInputFormat realiza la segmentación de archivos.

         Después de obtener el archivo, el tamaño de la porción es de 128M por defecto. Si el archivo es mayor que 128M, entonces depende de si el archivo es mayor que 1,1 veces (140,8M) de 128M. Si no es más grande, no será dividir. Simplemente divídalo según el tamaño de 128M

        

6. ¿Qué pasa si no hay datos en Namenode?

         Copie los datos en el NameNode secundario al directorio donde NameNode almacena los datos

         Utilice la opción -importCheckpoint para iniciar el demonio NameNode para copiar los datos en SecondaryNameNode en el directorio NameNode

 

7. ¿Cómo lograr un inicio de sesión sin contraseña entre servidores (versión conveniente), qué cifrado usa SSH?

         Genere claves públicas y privadas: ssh-keygen -t rsa

         Copie la clave pública en la máquina de destino para iniciar sesión sin secreto

         SSH usa cifrado asimétrico

 

8. Describa brevemente los escenarios para los que MapReduce no es adecuado para su uso ¿De hecho, son sus defectos?

         Desventajas de MapReduce: no es bueno para la computación en tiempo real, no es bueno para la computación de transmisión, no es bueno para la computación DAG (gráfico dirigido)

 

9. ¿Cuáles son los tipos de datos básicos de MapReduce?

         BooleanWritable 、 ByteWritable 、 IntWritable 、 FloatWritable 、 LongWritable 、 DoubleWritable 、 TextWritable 、 MapWritable 、 ArrayWritable

 

10. ¿Cuáles son los componentes del hilo y cuáles son sus funciones? ¿Cuáles son los tres programadores principales y cuál utiliza Hadoop por defecto?

         Está compuesto por componentes como ResourceManager, NodeManager, ApplicationMaster y Container;

         ResourceManager: procese las solicitudes de los clientes, supervise NodeManager, inicie o supervise ApplicationMaster, asignación de recursos y programación

         NodeManager: administre recursos en un solo nodo, procese comandos desde ResourceManager y procese comandos desde ApplicationMaster

         ApplicationMaster: Responsable de la segmentación de datos, solicitando recursos para aplicaciones y asignándolos a tareas internas, monitoreo de tareas y tolerancia a fallas.

         Contenedor: El contenedor es la abstracción de recursos en YARN. Encapsula recursos multidimensionales en un nodo, como memoria, CPU, disco y red.

         FIFO, programador de capacidad (programador de capacidad) y programador justo (programador justo)

         El programador de recursos predeterminado de Hadoop es Capacity Scheduler (programador de capacidad)

 

11. Si necesita agrupar los nodos namenode, ¿cómo debe configurarlo?

         Se debe implementar el inicio de sesión sin contraseña entre servidores

         Modifique el archivo etc / hadoop / slaves en la carpeta hadoop2.7.2

        

12. Describa brevemente la función del búfer circular en el proceso Shuffle.

         La clave y el valor se obtienen del método map (), son recopilados por el outputcollector y obtienen el número de partición a través del método getpartitioner (), y luego ingresan al búfer de anillo. Por defecto, el tamaño del búfer de anillo es 100M. Cuando la cantidad de datos ingresados ​​por mapa en el búfer de anillo alcanza 80 MB o más, comienza el proceso de escritura de desbordamiento. Si ingresan otros datos durante el proceso de escritura de desbordamiento, el 20% restante se escribirá en la dirección inversa. El proceso de escritura de desbordamiento primero particionará de acuerdo con la clave y el valor, y luego ordenará. Finalmente, el archivo de desbordamiento de maptask se fusiona y ordena y luego cae en el disco local. ReduTask copia los datos de la misma partición bajo múltiples mapTasks a diferentes reduce tareas para combinar y ordenar. Leer un conjunto de datos en la función reduce () a la vez

 

13. Durante la ejecución de Mapreduce, ¿cuáles son las principales tareas antes de ejecutar Reducir Tarea?

         Calcule el número de MapTasks, divida el archivo, escriba datos en el área del anillo y luego particione el archivo rápidamente, desborde al archivo (particionado y ordenado en el área), y luego combine y ordene

 

14. ¿Cuáles son los tres atributos principales de hdfs-site.xml?

         Especifique el número de réplicas de HDFS: dfs.replication

         指定 SecondaryNameNode: dfs.namenode.secondary.http-address

         指定 DataNode: dfs.datanode.address

 

15. ¿Cuáles son las precauciones para el modo completamente distribuido de Hadoop?

         Diseñe el cluster: ponga namenode, datanode, resourcemanager, nodemanager, historyserver en diferentes servidores

         Establezca la dirección del servidor donde se encuentra el nodo namenode y el directorio de almacenamiento de archivos temporales (core-site.xml)

         El número de copias del archivo de configuración (hdfs-site.xml)

         Ubicación mapred-site.xml suma yarn-site.xml

         Los otros nodos del clúster son coherentes con la configuración de hadoop01

        

16. ¿3 modos en los que se puede ejecutar el clúster de Hadoop?

Modo de funcionamiento local, modo de funcionamiento pseudodistribuido y modo de funcionamiento totalmente distribuido

 

17. ¿Resumir el papel y el significado de Combiner en una oración? ¿Y explicar la premisa de usarlo?

         El significado de Combiner es resumir localmente la salida de cada MapTask para reducir la cantidad de transmisión de red

 

18. Utilice el script de shell para completar las siguientes funciones, encontrar el valor extremo y generar el máximo y el mínimo de acuerdo con los datos de entrada (en la medida de la escritura a mano)

         #! / bin / bash

         min = $ 1

         max = $ 1

         para yo en "$ @"

         hacer

                  si [$ min -gt $ i]

                  luego

                           min = $ i

                  ser

                  si [$ max -lt $ i]

                  luego

                            max = $ i

                  ser

         hecho

         echo "El valor máximo es" $ max

         echo "El valor mínimo es" $ min

        

19. Escriba un mapa para reducir las estadísticas de palabras más básicas del recuento de palabras (en el grado de escritura a mano, puede consultar el ejemplo de código en clase)

         public class WcMapper extiende Mapper <LongWritable, Text, Text, IntWritable> {

             texto privado keyText = nuevo texto ();

             IntWritable privado uno = nuevo IntWritable (1);

             @Anular

             mapa vacío protegido (clave LongWritable, valor de texto, contexto de contexto) lanza IOException, InterruptedException {

                 Línea de cadena = valor.toString ();

                 Cadena [] fileds = line.split ("");

                 para (Cadena archivada: fileds) {

                     keyText.set (archivado);

                     context.write (keyText, uno);

                 }

             }

         }

         public class WcReducer extiende Reducer <Text, IntWritable, Text, IntWritable> {

             total IntWritable privado = nuevo IntWritable ();

             @Anular

             protected void reduce (clave de texto, valores <IntWritable> iterables, contexto de contexto) lanza IOException, InterruptedException {

                 int I = 0;

                 para (valor IntWritable: valores) {

                     suma + = valor.get ();

                 }

                 total.set (suma);

                 context.write (clave, total);

             }

         }

         public class WcDriver {

             public static void main (String [] args) lanza IOException, ClassNotFoundException, InterruptedException {

                 Job job = Job.getInstance (nueva configuración ());

                 job.setJarByClass (WcDriver.class);

                 job.setMapperClass (WcMapper.class);

                 job.setReducerClass (WcReducer.class);

                 job.setMapOutputKeyClass (Text.class);

                 job.setMapOutputValueClass (IntWritable.class);

                 job.setOutputKeyClass (Text.class);

                 job.setOutputValueClass (IntWritable.class);

                 FileInputFormat.setInputPaths (trabajo, nueva ruta (args [0]));

                 FileOutputFormat.setOutputPath (trabajo, nueva ruta (args [1]));

                 booleano b = job.waitForCompletion (verdadero);

                 System.exit (b? 0: 1);

             }

         }

 

20. Enumere los comandos hdfs más utilizados (al menos 10 y explique la función del comando)

         Archivo local à HDFS:

    -put: sube datos locales a hdfs

    -copyFromLocal: copia los datos del archivo local a hdfs

    -moveFromLocal: mueve los datos del archivo local a hdfs, los datos locales se eliminarán después del éxito

    -appendToFile: agrega un archivo al final de un archivo existente

         Entre HDFS y HDFS:

    -ls: Ver el directorio de archivos hdfs

    -mkdir: crea un directorio en HDFS

    -rm: eliminar archivos o carpetas

    -rmr: eliminar de forma recursiva

    -cp: copia archivos de un directorio a otro

    -mv: mueve archivos en el directorio HDFS

    -chown: modifica los permisos de usuario del archivo

    -chmod: modifica los permisos de lectura y escritura del archivo

    -du -h: espacio temporal utilizado por la carpeta

    -df -h: Ver la partición del sistema

    -cat: ver archivos

         HFDSàLocal:

    -get: descarga archivos de hdfs a local

    -getmerge: fusiona archivos en el directorio hdfs con el local

-copyToLocal: copia archivos de hdfs a local

 

21. Enumere 10 comandos de Linux de uso común y explique sus funciones.

         Ver IP de red actual: ifconfig

         Modifique la dirección IP: vim / etc / ssconfig / network-scripts / ifcfg-eth0

         Inicie el firewall: inicio de la red del administrador

         Desactive el inicio automático del servicio iptables: chkconfig iptables off

         Crear un archivo vacío: toque el nombre del archivo

         Agregar un nuevo usuario: useradd username

         Muestra el nombre de usuario del usuario que inició sesión: quién soy

         Cambiar permisos: archivo o directorio chmod 421

         Ver todos los procesos en el sistema: ps -aux

         Consultar el paquete rpm instalado: rpm -qa | grep rpm package

Supongo que te gusta

Origin blog.csdn.net/Poolweet_/article/details/103809280
Recomendado
Clasificación