Ctrip Hadoop estudios de arquitectura a través del cuarto

En este artículo se va a compartir Ctrip Hadoop estudios de arquitectura a través del cuarto, que incluye el desarrollo de Hadoop en Ctrip, fondo a través de todo el proyecto de la sala de máquinas, las ideas de selección de la arquitectura a través de la habitación y el aterrizaje práctica, relacionada con la transformación y la visión para el futuro, espero que para darle un poco la iluminación.

En primer lugar, el suelo y el desarrollo de Hadoop en Ctrip

Ctrip Hadoop se introduce a partir de 2014, básicamente, cada año, en comparación con el año anterior, creciendo dos veces más rápido, hemos hecho mucho para transformar el rendimiento de los racimos de Hadoop y optimización.

1) En la actualidad, el HDFS nivel de almacenamiento PB de datos con cientos de miles de nodos, divididos en cuatro espacio de nombres do Federation, el proxy auto-desarrollo NameNode para encaminar RPC para el espacio de nombres correspondiente, a principios de 2019 sobre la base de un conjunto de Hadoop 3 Código borrado cúmulo transparente para el usuario para hacer la separación de almacenamiento de calor y frío, los datos se ha migrado a cúmulo de PB CE docenas, sino el medio de los recursos de almacenamiento.

2) calcular el nivel, la construcción de dos conjuntos de un conjunto de grupos de hilo en línea y fuera de línea hacen Federación, el total de 150.000 + núcleo, + 30 millones de puestos de trabajo al día Hadoop, de los cuales el 90% de la chispa. Los cuatro nodos ubicados en la sala de máquinas, donde la implementación de clúster sin conexión en la que dos habitaciones, tres habitaciones en la implementación de clúster en línea.

En segundo lugar, los antecedentes del proyecto a través del cuarto

Mira el fondo del proyecto. Antes de desplegar la máquina Hadoop en dos salas A y B, el 95% de las máquinas en B. A finales del año pasado, Ctrip de construcción propia oficina C, mientras que el número de bastidores en la sala B ha alcanzado el límite físico, hay manera de continuar la expansión. También de acuerdo con la tasa de crecimiento actual se calcula y se almacena, se espera que a finales de 2024 tamaño del clúster alcanzará el millón de unidades, la compra de nuevas máquinas sólo se puede agregar a la sala C, necesitamos arquitectura multi-habitación y capacidades de despliegue. Desea que el sistema aprenda grandes volúmenes de datos , puede unirse a la gran tecnología de intercambio de datos para aprender abotonada Junyang: 522 189 307

En donde esta dificultad es el ancho de banda de 200Gbps sólo dos habitaciones, retraso de la red en 1 ms, cuando se juega en el caso del ancho de banda, retardo normalmente llega a 10 ms, mientras que hay una tasa de pérdida de paquetes del 10%. Tenemos que minimizar el uso de ancho de banda de red a través del cuarto.

 

2.1 nativo Hadoop cuestiones de arquitectura

Mira problemas nativas de Hadoop. Red IO sobrecarga principalmente de dos aspectos, aleatoria de lectura y escritura HDFS.

1) se verá en la etapa intermedia antes de que un archivo temporal aleatorio, RM y trabajo cepillo chispa en el disco, la siguiente etapa de Fetch a la red. Si la asignación de la tarea mapa en la sala de máquinas 1, 2 reducetask en la sala de máquinas, la cámara tendrá una sobrecarga de tráfico transversal.

2) Segundo nivel de HDFS para la lectura de escena, tres copias almacenadas en diferentes nodos, el cliente recibirá una copia de la información en la distancia ordenada de NameNode, la prioridad lee desde el nodo en el que la copia más reciente. Pero cuando tres copias del caso y el cliente no están en una habitación, sala de lectura se mostrará una cruz-IO de red por encima. Escribir una escena, entonces, HDFS mediante la escritura de la tubería, solamente teniendo en cuenta la estrategia de nivel de rack de almacenamiento de copia cuando se selecciona, se colocarán tres copias en dos bastidores, si selecciona dos bastidores a través del cuarto, habrá otro lado de la habitación gastos generales de escritura red.

 

2.2 Programa opcional

Estábamos hablando de bajar dos soluciones de infraestructura, varias habitaciones y multi-sala de multi-cluster de racimo sola Ambos tienen ventajas y desventajas.

2.2.1 multi-sala de multi-cluster

Ventajas de múltiples habitaciones esquema multi-cluster no hay necesidad de modificar el código fuente se puede implementar directamente. Las desventajas son:

1) transparente para el usuario, el usuario tiene que modificar la configuración, designado a presentar un clúster;

2) más alto de operación y los costes de mantenimiento, y cada habitación tiene un grupo aparte, los problemas de gestión de configuración;

3) que es más importante, el tercer punto, es difícil asegurar la consistencia de los datos. Algunas necesidades de datos común, accesible si hay más de una división, sólo puede ser leído a través del cuarto, la IO no puede salvar, pero si distcp, esta sala también poner algunas copias para guardar esta parte del tráfico de sobrecarga, se copiarán debido NameNode por una administración diferente, lo que lleva al problema de los datos será incorrecta.

2.2.2 Multi-habitación de clúster individual

Echemos un vistazo a una arquitectura única agrupación de varias habitaciones, una desventaja es la necesidad de cambiar el código fuente Hadoop, debido a que el código del núcleo lógica AdministradorDeBloques movimiento, habrá riesgos que es necesario hacer una prueba completa y verificación. Sin embargo, los beneficios son evidentes.

1) transparente para el usuario, la necesidad del usuario no sea que se trate que enviar trabajos a la habitación, donde una copia de la tienda, hay percepción;

2) Operación y mantenimiento de implementación sencilla;

3) Debido a que es una copia de una NameNode para administrar el estado, es posible garantizar la coherencia de las copias de varias habitaciones.

Debido principalmente a la primera y tercera ventaja punto, queremos garantizar la transparencia y la consistencia de los usuarios, la elección final de múltiples habitaciones solución solo grupo.

 

 

En tercer lugar, tratar de avanzar - mezcla en línea y fuera de línea sección transversal habitación

De hecho, durante los primeros soluciones multi-cluster multi-habitación, hemos estado en línea antes de usar y mezclar desconectado proyecto de la unidad. Escena en el momento en que los recursos del clúster jugaron sin conexión en el pico de la mañana, fuera de horas punta día de blanco. Los K8S línea se agrupan por el contrario, queremos utilizar los recursos informáticos K8S mañana para ayudar a reducir la carga. Los K8S desplegados en grupos A y D habitación, sin localidad de datos. Por lo que queremos mantener un poco intensivo de la CPU, pero no una gran presión sobre las operaciones de IO se puede asignar a la agrupación en línea.

Hemos desplegado en K8S grupo conjunto de hilo, y desarrollar un conjunto de retratos recursos del sistema operativo, principalmente la adquisición Vcore / operaciones de memoria utilizan, shuffle, hdfs leer y escribir y otras métricas. Debido a que el sistema de planificación de tareas Zeus presentado en general no es muy modificar, la historia y el tiempo de ejecución de cada uno de los recursos consumidos son la convergencia de trabajo, que la polimerización jobid acuerdo con Zeus, analizar las tendencias en el uso de los recursos para cada trabajo basado en el rendimiento histórico muchas veces. El siguiente trabajo se iniciará volumen Zeus aleatoria y baja cantidad de alfabetización hdfs de trabajo asignado a la agrupación de gestión en línea.

Además, como el clúster en línea también a través de las dos habitaciones, hemos desarrollado un programa basado en FairScheduler la etiqueta, una etiqueta que corresponde a una habitación, que funcionará de acuerdo a la etiqueta pertenece a cada carga etiqueta, la asignación dinámica, una tarea única aplicación de todos será ejecutado dentro de una etiqueta fija, por lo que no hay tráfico aleatoria sala de máquinas. Después de la línea de programa puede aliviar fuera el grupo de 8% de presión calculada.

 

En cuarto lugar, en varias habitaciones esquema único clúster

Tenemos previsto una división que corresponde a una sala de ordenadores por defecto, en la medida de lo posible el flujo de datos en la misma habitación. Así, la transformación de la arquitectura para múltiples habitaciones solo grupo incluye cuatro aspectos: multi-habitación racimo sola HDFS, varias habitaciones racimos multi-hilo, herramientas de migración de datos automatizados y de trabajo a través de la anchura de banda sala de control y la limitación.

 

Habitación individual arquitectura de más de 4,1 HDFS

Primer vistazo a la transformación de HDFS, que transforma la fuente NameNode, en la conciencia de cremallera, el aumento de la percepción habitación, NetworkTopology formó <habitación, estante, DataNode> triples. Al leer el bloque para que el cliente, y se calcula la distancia donde las réplicas de nodo, sin duda menos de la sala local al otro lado de la habitación, la habitación se dará prioridad a los datos de lectura locales.

Además, aumentamos NameNode en las capacidades de gestión de copia a través de varias habitaciones, copiar múltiples habitaciones del número de la guía se puede ajustar, por ejemplo, establecer sólo tres copias en la sala de máquinas 1, 1 o 2 habitaciones y tres copias de cada serie, porque no hay espacio para establecer cruz una copia de la ruta, vamos a mantener la memoria de un empleado del zoológico y de la relación de proyección de sala predeterminada correspondiente usuario, archivos de tiempo de escritura AddBlock, encontrará la sala correspondiente de acuerdo con ugi, seleccione un nodo en la sala de máquinas.

Ponga fuera de servicio o fuera del nodo cuando habrá un gran número de copias de la operación de copia, puede conducir fácilmente a cruzar fácilmente el ancho de banda habitación está descolgado. En este sentido, hemos modificado el hilo ReplicationMonitor lógica, cuando una copia de la copia, se dará prioridad al nodo fuente y el nodo de destino de la misma habitación de replicar través de la habitación para reducir el ancho de banda.

Para obtener una copia de la ruta de información a través de la persistencia habitación, aumentamos Editlog Op través de la habitación para guardar una copia de cada ajuste de grabación cambios, fsimage través de la habitación en una nueva copia de la sección, por lo NameNode sólo se ahorra un pedazo de metadatos, interruptor de conmutación por error de tiempo de espera también puede cargar a cabo, no hay otras dependencias externas.

 

 

 

4.2 transformación del equilibrador y Mover & EC

Hay otros aspectos de la transformación HDFS, como Balancer, apoyamos las implementaciones de varias instancias, cada una de equilibrador para aumentar el rango de listas de IP, cada habitación tendrá un sólo datos equilibrar esta DataNode habitación del IP. Para Mover, también apoyamos las implementaciones de varias instancias de varias habitaciones, debido motor es el nodo réplica de destino elección en el lado del cliente, por lo que necesitan rehabilitación de acuerdo con la copia del directorio a través de las políticas de colocación habitación en el cliente para seleccionar el nodo apropiado.

Punto a destacar aquí es, tratar de asegurarse de que el nodo proxy y el nodo de destino en la misma habitación, ya que la red de migración real de IO se está produciendo en estos dos nodos. Además, hemos implementado una nueva sala C Código Erasure grupo conjunto basado en Hadoop 3, y será parte de la migración de datos histórica más allá del frío, no hay ninguna pieza de código para hacer la transformación a través del cuarto, nuestro programa de migración CE migrará que han sido migrar a C habitación fría al clúster CE datos BU.

4.3 copia de la herramienta de corrección -Cruz FSCK

Ya que tenemos múltiples espacio de nombres, a través de la versión sala de HDFS es un ns líneas en un proceso de grises escala de grises, colocar una copia de otros ns no han considerado las dimensiones de la sala de motores, por lo que hemos desarrollado la herramienta Cruz IDC Fsck que puede detectar a través del cuarto políticas de configuración para corregir, no colocarse correctamente copia.

Debido a la necesidad de dejar de leer una copia de la información, va a generar una gran cantidad de petición getBlockLocations RPC, cambiaremos la solicitud de lectura de la NameNode de espera, si se determina que no coincide con las llamadas reportBadBlocks RPC NameNode activo, AdministradorDeBloques eliminará la copia mal, volver a seleccionar un nuevo copiar. Puesto que esta operación es relativamente pesado, el impacto no será un tiempo máximo para HDFS, por lo que hemos añadido un límite de cliente de RPC, controlar el número de llamadas.

Más de 4,4 múltiples habitaciones Hilados racimo

Echemos un vistazo a la transformación del hilado, se despliega de forma independiente de cada habitación en un clústeres de hilo, auto-desarrollo del proxy ResourceManager, mantiene la correspondencia entre el usuario y la sala de ordenadores, y esta información es compartida NameNode, son cada memoria y zookeper a.

Modificar el hilo de cliente, los trabajos de hilo presentados por el usuario serán primero pasar por rmproxy, y luego presentar a la agrupación de hilo correspondiente. Tal tarea única aplicación todo en uno programación habitación, no cruzar la habitación aleatoria. Si desea cambiar la cuenta de usuario correspondiente a la sala de máquinas y el grupo es también muy conveniente, que de inmediato será notificado por empleado del zoológico a todos rmproxy, modificar la memoria relaciones de mapeo.

rmproxy puede implementar de varias instancias, independientes entre sí, mientras que en Hilados cliente hizo estrategia de rebaja, almacenamiento en caché periódico un completo mapeo de las relaciones a nivel local, una vez que todos rmproxy se colgó el teléfono, el cliente puede hacer rutas locales durante ese momento, enviar a los grupos correspondientes .

la presentación de informes ad hoc y análisis de un amplio uso del servicio Sparkthrift, presto, servicio de colmena para hacer los cálculos. Residente de este servicio ha hecho una renovación, cada habitación cada conjunto de despliegue, antes de que el cliente está conectado directamente a través de JDBC servicio de ahorro, el acceso rmproxy después de la transformación correspondiente, el usuario recibirá la sala correspondiente en el inicio rmproxy URL JDBC Services, la conexión, esto también es transparente para el usuario.

 

En quinto lugar, la herramienta de migración automatizado

Desde el nodo C habitación adquirirá por la llegada de añadir poco a poco, por lo que es necesario de acuerdo con la capacidad de cálculo y almacenamiento para el plan que representan la migración, que es un proceso largo, con la esperanza de tratar de hacer la migración automatizada para BU> cuenta de migración de tamaño, nos peinamos el proceso de migración, dividido en los cuatro pasos siguientes:

1) a granel BU dispuesta cuenta Colmena correspondiente a la migración comenzado (inicialmente 3: 0, es decir, 3 partes de la habitación B, C habitación 0 partes)

2) El usuario DB y de acuerdo con la cuenta de directorio Home dispuesto secuencialmente Colmena 3: 3, copiar los datos a la sala de C

3) migran al número de cuenta y la cola de habitación C

4) se observó la tasa de flujo a través de los recursos de las habitaciones, de computación sala de recuperación y almacenamiento de B (0: 3)

Tenga en cuenta que en algún momento durante el punto de migración:

1) proceso de migración a través de la sala se pasan una gran cantidad de ancho de banda de red, es necesario llevar a cabo en un grupo de tiempo de pico bajo, estamos en entre las 10 am a las 11 pm otras veces hará una pausa automáticamente la migración, si no afectará a los trabajos de informes y ETL en línea el SLA.

2) Incluso migrar durante el día, también es necesario para controlar la velocidad de la migración, uno está tratada para reducir la NameNode presión por sí sola, por otra parte, también reduce el ancho de banda durante el día, habrá algunas necesidades de ETL y de consulta ad hoc a datos de acceso a través del cuarto, si se juega, a continuación, también tendrá un impacto en el rendimiento. Vamos a migrar monitoreo de UnderReplicatedBlocks NameNode a través de las habitaciones y de tráfico métricas en tiempo real, estos valores se ajustan dinámicamente de acuerdo con la tasa de migración.

3) el seguimiento migrado habitación hdfs capacidad disponible, incluyendo diferentes StorageType en tiempo real a prevenir el disco fuera del gancho. Hay cuota alguna biblioteca DB directorio conjunto colmena hdfs, también debido a la configuración de migración 3: 3 encima de la cuota y error, que aumentará automáticamente la cuota temporal, y así después de la finalización de la cuota global de migración transferido de nuevo.

4) mesa de la biblioteca pública debido a ser más dependiente BU tiene acceso, es necesario configurar sala de copias múltiples de antemano, tenemos una función de lista blanca, se puede establecer de forma manual, por lo general se establece en 2: 2, cada habitación y poner en dos.

 

En sexto lugar, a través de la supervisión de la anchura de banda que limita el margen y

Algunos tabla práctica BU, que será tratado como mesa común para el uso, que deben ser identificados, política establecida a través de múltiples sala de fotocopias. El registro actual hdfs de auditoría, sin DataNode acceso DFSClient, la corriente real de transmisión de datos DataNode DataNode y la información de auditoría, pero la información que necesitamos para mirar a esta parte de la ruta real y bloquear el acceso, los datos para su posterior análisis, además de cuando el flujo de sonar en condiciones, lo que limita la necesidad de un servicio prestado ciertas medidas de seguridad de acuerdo con las prioridades de trabajo del SLA, dando prioridad a los puestos de trabajo de alta prioridad llegar a los recursos de ancho de banda.

En este sentido hemos desarrollado un servicio de limitación, enterrado en tiempo real a través de la habitación para leer y camino de escritura al servicio de límite a DFSClient flujo informe y código DataNode, tamaño de bloque a leer y escribir, identificación del trabajo de Zeus y otra información, lo que limita los servicios de información de tráfico en un lado y el registro ES HDFS a escupir y hacer análisis de datos, se decidirá si para liberar el otro lado, un cliente obtener servicios de limitación de permisos, con el fin de continuar con la ejecución de las operaciones de lectura y escritura a través de la habitación de acuerdo a la prioridad de la capacidad y el empleo actual, o un período de tiempo después de dormir de nuevo tratar de aplicar.

Una vez que tenga la corriente real de información, análisis de datos fuera de línea, es fácil saber qué tablas se leen muchas otras BU, a través de una combinación de forma automática y manual a través del cuarto para establecer el número de copias de esta parte de la Tabla 2: 2. Después de ajustar la solicitud de lectura a través del cuarto bloque se redujo a un 20% del original. Ancho de banda a través de la habitación resultó ser jugado, y ahora hasta los 10 originales%.

 

 

 

VII. Resumen y futuros planes

En resumen, este documento presenta la práctica Hadoop Ctrip a través del cuarto, hizo la siguiente transformación importante:

1) hdfs de una habitación con clústeres, copiar la configuración a través del cuarto

2) proxy de programación rm informática basada en la realización y los hilados de federación

3) en tiempo real herramienta de almacenamiento y cálculo de migración automatizada

4) de flujo transversal sala de máquinas seguimiento y servicio limitando

 

Actualmente todo el sistema ha estado en línea durante seis meses y un funcionamiento estable, la migración, el 40% de los puestos de trabajo y el 50% de los datos calculados a una nueva sala de almacenamiento, a través del tráfico de ancho de banda sala también es manejable, la normalización de la migración, los usuarios no necesitan totalmente percibir.

 

Futuro esperamos poder decidir qué cuenta inteligente de la migración, la mayoría camino común se establece en 2: 2 cuatro copias, tendrá que pagar más de la cantidad habitual de almacenamiento físico una copia, ahora se proporciona en una superficie, con la esperanza de perfeccionar aún más el nivel de distrito debido a que el análisis de la mayor parte de las operaciones aguas abajo dependen sólo el último día o partición semana. Así que una vez más el tiempo, puede mantener una copia de la historia de la configuración de las particiones de nuevo a tres para reducir los gastos de almacenamiento. Por último, la transformación a través del cuarto basado en Hadoop CE se aplican también a clúster 3, y también es compatible con la capacidad de cruzar la habitación.

Publicados 174 artículos originales · ganado elogios 3 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/mnbvxiaoxin/article/details/104828410
Recomendado
Clasificación