Preguntas prácticas de la entrevista de Big Data sobre Linux

1. ¿Qué es la tecnología de clúster? ¿Cuáles son las ventajas de la tecnología de clústeres?

 (1) La tecnología de clúster de clúster se puede definir de la siguiente manera: un grupo de servidores independientes entre sí se representa como un sistema único en la red y se gestiona en un modo de sistema único. Este único sistema proporciona servicios altamente factibles para las estaciones de trabajo de los clientes. En la mayoría de los modos, todos los equipos del clúster tienen un nombre común y todos los clientes de la red pueden utilizar los servicios que se ejecutan en cualquier sistema del clúster. El clúster debe poder coordinar y gestionar los errores y fallas de componentes separados y agregar componentes de forma transparente al clúster.

Un clúster contiene varios (al menos dos) servidores con espacio de almacenamiento de datos compartido. Cuando cualquier servidor ejecuta una aplicación, los datos de la aplicación se almacenan en el espacio de datos compartidos. El sistema operativo y los archivos de la aplicación de cada servidor se almacenan en su propio espacio de almacenamiento local. Cada servidor de nodo del Clúster se comunica entre sí a través de la LAN interna.

Cuando un servidor de nodo falla, las aplicaciones que se ejecutan en este servidor serán asumidas automáticamente en otro servidor de nodo. Cuando un servicio de aplicación falla, el servicio de aplicación se reiniciará o se hará cargo de otro servidor. Cuando ocurra cualquiera de las fallas anteriores, los clientes podrán conectarse rápidamente al nuevo servicio de aplicación.

(2) Ventajas: alta escalabilidad; alta disponibilidad HA. Si un nodo del clúster falla, sus tareas se pueden transferir a otros nodos. Puede prevenir eficazmente un solo punto de falla;

alto rendimiento. El clúster de equilibrio de carga permite que el sistema acceda a más usuarios al mismo tiempo;

Rendimiento de alto costo. Se puede construir un sistema de alto rendimiento utilizando hardware económico que cumpla con los estándares de la industria.

 

 

2. ¿Qué es NTP? ¿Cuál es el uso?

(1) El nombre completo de NTP es "Network TimeProtocol", es decir, Network Time Protocol. Es un protocolo de sincronización de tiempo definido por RFC 1305, que se utiliza para sincronizar el tiempo entre servidores de tiempo distribuidos y clientes.

NTP se basa en paquetes UDP para la transmisión y el número de puerto UDP utilizado es 123.

El propósito de usar NTP es sincronizar los relojes de todos los dispositivos con los relojes de la red, de modo que los relojes de todos los dispositivos de la red se mantengan consistentes, de modo que los dispositivos puedan proporcionar múltiples aplicaciones basadas en una hora uniforme. Para un sistema local que ejecuta NTP, no solo puede recibir sincronización de otras fuentes de reloj, sino que también se puede utilizar como fuente de reloj para sincronizar otros relojes y puede sincronizarse con otros dispositivos.

(2) El servidor NTP se utiliza principalmente para sincronizar la hora de cada computadora en la red. Su propósito es sincronizar el reloj de la computadora con UTC, con una precisión de 0,1 ms en una red de área local y una precisión de 1 a 50 ms en la mayoría de los lugares de Internet. Puede sincronizar la hora de la computadora con su servidor o fuente de reloj (como un reloj de cuarzo, GPS, etc.), puede proporcionar una corrección de tiempo de alta precisión y puede usar la confirmación encriptada para evitar ataques de protocolo de virus.

3. ¿Qué es SSH? ¿Cuál es el uso?

(1) SSH es la abreviatura de Secure Shell, formulada por el Grupo de trabajo de red IETF; SSH es un protocolo de seguridad basado en la capa de aplicación. SSH es un protocolo más confiable diseñado para brindar seguridad para sesiones de inicio de sesión remotas y otros servicios de red. El uso del protocolo SSH puede prevenir eficazmente la fuga de información en el proceso de administración remota. SSH era originalmente un programa en sistemas UNIX y luego se expandió rápidamente a otras plataformas operativas. SSH puede compensar las lagunas en la red cuando se usa correctamente.

(2) Protocolo de la capa de transporte [SSH-TRANS]

Proporciona autenticación, confidencialidad e integridad del servidor. Además, a veces proporciona compresión. SSH-TRANS generalmente se ejecuta en conexiones TCP / IP y también se puede usar para otros flujos de datos confiables. SSH-TRANS proporciona una sólida tecnología de cifrado, autenticación de host de contraseña y protección de la integridad. La autenticación en este protocolo se basa en el host y el protocolo no realiza la autenticación del usuario. Se pueden diseñar protocolos de autenticación de usuarios de nivel superior para que estén por encima de este protocolo.

 

Protocolo de autenticación de usuario [SSH-USERAUTH]

Se utiliza para proporcionar la función de autenticación de usuario del cliente al servidor. Se ejecuta sobre el protocolo de capa de transporte SSH-TRANS. Cuando se inicia SSH-USERAUTH, recibe el identificador de sesión del protocolo de nivel inferior (del hash de intercambio H en el primer intercambio de claves). El identificador de sesión identifica de forma única esta sesión y es adecuado para marcar para demostrar la propiedad de la clave privada. SSH-USERAUTH también necesita saber si el protocolo de bajo nivel proporciona protección de confidencialidad.

 

Protocolo de conexión [SSH-CONNECT]

Divida varios túneles cifrados en canales lógicos. Se ejecuta en el protocolo de autenticación de usuarios. Proporciona sesión de inicio de sesión interactiva, ejecución remota de comandos, reenvío de conexión TCP / IP y reenvío de conexión X11.

 

4. Describa brevemente el proceso de inicio de sesión del certificado.

Primero, el cliente genera la clave privada y la clave pública del certificado. La clave privada se coloca en el cliente y la clave pública se carga en el servidor (inicio de sesión remoto). Generalmente, por seguridad, para acceder a la clave privada de un pirata informático que copia al cliente, el cliente establecerá una contraseña al generar la clave privada, y cada vez que inicie sesión en el servidor ssh, el cliente debe ingresar la contraseña para desbloquear la clave privada. clave (si está trabajando, se usó una clave privada sin contraseña, y el servidor fue pirateado un día, y no pudo limpiarlo incluso si saltó al río Amarillo).

Luego, el servidor agrega la clave pública de crédito. Cargue la clave pública generada por el cliente al servidor ssh y agréguela al archivo especificado, de esta manera se completa la configuración del inicio de sesión del certificado ssh.

5. ¿Cuál es la filosofía de diseño de HDFS?

Almacena archivos de gran tamaño; los "archivos de gran tamaño" aquí se refieren a archivos de cientos de MB, GB o incluso terabytes; el modo de acceso más eficiente es una escritura y varias lecturas (acceso a datos en continuo). El conjunto de datos almacenados en HDFS se utiliza como objeto de análisis de hadoop. Después de que se genera el conjunto de datos, se realizan varios análisis en este conjunto de datos durante mucho tiempo. Cada análisis diseñará la mayoría o incluso todos los datos del conjunto de datos, por lo que el tiempo de demora para leer todo el conjunto de datos es más importante que el tiempo de demora para leer el primer registro; se ejecuta en un servidor económico ordinario. Uno de los conceptos de diseño de HDFS es permitir que se ejecute en hardware normal. Incluso si el hardware falla, se pueden utilizar estrategias de tolerancia a fallos para garantizar una alta disponibilidad de datos.

6. Describa brevemente la arquitectura de YARN.

El hilo todavía pertenece al modelo maestro / esclavo en su conjunto, y se basa principalmente en tres componentes para lograr funciones.

El primero es ResourceManager, que es el árbitro de los recursos del clúster y consta de dos partes: una es un Programador de programación conectable y la otra es ApplicationManager, que se utiliza para administrar los trabajos de los usuarios en el clúster.

El segundo es el NodeManager en cada nodo, que administra los trabajos de los usuarios y los flujos de trabajo en ese nodo, y también envía continuamente su propio uso de Container al ResourceManager.

El tercer componente es el ApplicationMaster. La función principal del administrador del ciclo de vida del trabajo del usuario es solicitar recursos informáticos (contenedores) del ResourceManager (global) e interactuar con el NodeManager para ejecutar y monitorear tareas específicas.

 

7. ¿Cuáles son las características de HBase?

Primero, lee y escribe con coherencia fuerte. HBase no es un almacén de datos eventualmente consistente, lo que lo hace adecuado para tareas de agregación y conteo de alta velocidad.

En segundo lugar, fragmentación automática. Las tablas de HBase se distribuyen en el clúster a través de regiones. Cuando los datos crezcan, la región se dividirá y redistribuirá automáticamente.

En tercer lugar, el RegionServer falla automáticamente.

Cuarto, integración Hadoop / HDFS. HBase admite HDFS externo como su sistema de archivos distribuido.

Quinto, integración de MapReduce. HBase admite un gran procesamiento simultáneo a través de MapReduce, y HBase puede actuar como fuente y receptor al mismo tiempo.

En sexto lugar, la API del cliente Java. HBase es compatible con la API de Java fácil de usar para el acceso mediante programación.

Séptimo, API de ahorro / REST. Admite Thrift y REST para acceder a HBase.

Octavo, Block Cache y Bloom Filter. HBase admite los filtros Block Cache y Bloom para optimizar las consultas y mejorar el rendimiento de las consultas.

Noveno, gestión de operación y mantenimiento. HBase proporciona páginas web integradas e indicadores JMX para operación y mantenimiento.

Décimo, la mesa grande (BigTable). Una tabla puede tener cientos de millones de filas y millones de columnas.

Undécimo, almacenamiento de columnas (familia), recuperación y control de permisos.

Duodécimo, escasez. Las columnas nulas de la tabla no ocupan espacio de almacenamiento.

 

8. ¿Cómo almacena HBase los datos?

(1) HRegion es la unidad más pequeña de HBASE para almacenar datos. Una tabla puede tener una o más regiones, y pueden estar en el mismo HRegionServer o distribuidas en diferentes HRegionServer. Un HRegionServer puede tener múltiples HRegions, que pertenecen a diferentes tablas. HRegion se compone de varias tiendas, y cada tienda corresponde a una familia de columnas de una tabla en esta HRegion, es decir, cada familia de columnas es una unidad de almacenamiento centralizada.

(2) Store es el núcleo del almacenamiento en HBase. Implementa las funciones de lectura y escritura de HDFS. Un Store consta de un MemStore y cero o más StoreFiles.

(3) MemStore es un búfer de escritura (búfer ordenado en memoria). Todos los datos se escribirán primero en el registro WAL y luego en MemStore. MemStore descarga los datos en el archivo HDFS de estrato (HFile) de acuerdo con un algoritmo determinado, generalmente cada Cada familia de columnas en una HRegion tiene su propio MemStore.

(4) HFile (StoreFile es un paquete simple de HFile, es decir, la capa inferior de StoreFile es HFile) para almacenar datos HBase (Cell / KeyValue). Los datos en HFile se ordenan por RowKey, Column Family y Column. Para la misma celda (es decir, los tres valores son iguales), se ordenan en orden inverso por marca de tiempo.

(5) WAL es Write Ahead Log, que se llama HLog en la versión anterior. Es un archivo en HDFS. Como su nombre lo indica, todas las operaciones de escritura asegurarán primero que los datos se escriban en este archivo de registro antes de que realmente se actualice. MemStore, finalmente escrito en HFile. Los archivos WAL se almacenan en el directorio / hbase / WALs / $ {HRegionServer_Name}.

También hay un BlockCache en la figura anterior: leer caché, cada nueva consulta de datos se almacenará en caché en BlockCache.

La idea de almacenamiento LSM de HBase

LSM (Log-Structured Merge Tree), su idea central es asumir que la memoria es lo suficientemente grande, por lo que no es necesario escribir los datos en el disco cada vez que hay una actualización de datos, y agrupar estas operaciones de modificación después de llegar al límite de tamaño especificado Escribir en disco.

Modelo simple LSM

 

9. ¿Cuáles son las funciones principales de HRegionServer?

RegionServer es un contenedor para almacenar regiones, intuitivamente hablando, es un servicio en el servidor. El RegionServer es el nodo que realmente almacena los datos y finalmente se almacena en el sistema de archivos distribuido HDFS. Una vez que el cliente obtiene la dirección del RegionServer de ZooKeeper, obtendrá directamente los datos del RegionServer. Para el clúster HBase, su importancia es mayor que el servicio Master.

10. ¿Cuál es el papel del Zookeeper?

RegionServer depende en gran medida de los servicios de ZooKeeper, y ZooKeeper desempeña un papel en HBase similar al de un ama de llaves. ZooKeeper administra la información de todos los RegionServers en HBase, incluido en qué RegionServer se almacena el segmento de datos específico. Cada vez que el cliente se conecta a HBase, en realidad se comunica primero con ZooKeeper, pregunta qué RegionServer necesita estar conectado y luego se conecta al RegionServer.

Un breve resumen de la función de Zookeeper en el clúster de HBase es el siguiente: Para el servidor, es una dependencia importante para la coordinación y el control del clúster . Para el cliente, es una parte indispensable de la consulta y operación de datos .

Cabe señalar que cuando se cuelga el servicio Master, las operaciones de lectura y escritura aún se pueden realizar; pero una vez que se cuelga ZooKeeper, los datos no se pueden leer debido a la ubicación de la tabla de metadatos hbase: meata requerida para leer los datos Almacenado en ZooKeeper. Se puede ver que el guardián del zoológico es esencial para HBase.

11. ¿Cuáles son las características de Hive?

Primero, análisis y resumen de datos estructurados masivos.

En segundo lugar, simplifique las complicadas tareas de escritura de MapReduce en declaraciones SQL.

En tercer lugar, formatos de almacenamiento de datos flexibles, que admiten JSON, CSV, TEXTFILE, RCFILE, SEQUENCEFILE, ORC (Optimized Row Columnar) estos formatos de almacenamiento.

 

12. ¿Qué es Metastore? ¿Qué hace? ¿Qué contiene?

Hive Metastore (HMS) es un servicio independiente, que no forma parte de Hive, y ni siquiera tiene que estar en el mismo clúster. HMS almacena metadatos en el back-end de Hive, Impala, Spark y otros componentes.

.Metastore son los datos de los datos, principalmente la información que describe los atributos de los datos . Se utiliza para admitir funciones como la ubicación de almacenamiento, los datos históricos, la búsqueda de recursos y la grabación de archivos. Los metadatos pueden considerarse un catálogo electrónico. Para lograr el propósito de compilar el catálogo, el contenido o las características de los datos deben describirse y recopilarse, a fin de lograr el propósito de ayudar a la recuperación de datos.

Metastore es un servicio de metadatos y su función es: el cliente se conecta al servicio de metastore y la metastore se conecta a la base de datos MySQL para acceder a los metadatos. Con el servicio de Metastore, varios clientes pueden conectarse al mismo tiempo, y estos clientes no necesitan saber el nombre de usuario y la contraseña de la base de datos MySQL, solo necesitan conectarse al servicio de Metastore.

Contiene tabla DBS, tabla TBLS, tabla PARTITIONS y tabla SDS.

13. ¿Cuál es la diferencia entre una mesa y una mesa exterior?

(1) Cuando se construye la tabla, es una tabla externa con la palabra clave externa, de lo contrario es una tabla interna

(2) Tanto las tablas internas como las externas se pueden especificar por su propia ubicación al crear tablas

(3) Al eliminar una tabla, la tabla externa no eliminará los datos correspondientes, solo se eliminará la información de metadatos y la tabla interna se eliminará

(4) Otros usos son los mismos

14. ¿Cuál es la diferencia entre HiveServer y HiveServer2?

HiveServer2 es un servicio integrado de Hive opcional que permite a los clientes remotos utilizar diferentes lenguajes de programación para enviar solicitudes a Hive y devolver resultados. HiveServer2 es una versión mejorada de HiveServer1, que principalmente resuelve el problema de no poder manejar solicitudes simultáneas de múltiples clientes y autenticación.

Supongo que te gusta

Origin blog.csdn.net/qq_45059457/article/details/108873133
Recomendado
Clasificación