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