Más de diez discursos de ByteDance se reunieron en CommunityOverCode Asia 2023 para compartir prácticas de código abierto

18-20 de agosto de 2023, Park Plaza Hotel, Beijing

La primera cumbre fuera de línea en China de la serie global oficial de conferencias de la Apache Software Foundation, CommunityOverCode Asia (anteriormente ApacheCon Asia), se llevará a cabo en el Park Plaza Hotel en Beijing del 18 al 20 de agosto de 2023. La conferencia incluirá 17 direcciones del foro y cientos de temas de vanguardia.

La experiencia del código abierto de ByteDance ha pasado por diferentes etapas de "usar el código abierto, participar en el código abierto y tomar la iniciativa de abrir el código abierto". Su actitud hacia el código abierto siempre ha sido abierta y alentadora. En esta cumbre CommunityOverCode Asia, 15 estudiantes de Byte compartirán la experiencia práctica de los proyectos de código abierto de Apache en el negocio de ByteDance en torno a 10 temas divididos en 6 temas, y el miembro de Apache Calcite PMC compartirá el discurso de apertura. Espero compartir mis experiencias y logros. de participar en contribuciones de código abierto con los asistentes en el sitio.

Discurso de apertura: ¿Es difícil contribuir al código abierto?

Quizás muchos estudiantes hayan pensado en participar en algunas contribuciones de código abierto para mejorar sus capacidades técnicas e influencia. Pero suele haber cierta distancia entre los ideales y la realidad: porque estoy demasiado ocupado en el trabajo y no tengo tiempo para participar; el umbral para los proyectos de código abierto es demasiado alto y no sé cómo empezar; , pero la respuesta de la comunidad no es alta y no he persistido. En esta conferencia magistral, Li Benchao combinará su propia experiencia para compartir algunas historias breves y pensamientos sobre su contribución a la comunidad de código abierto, cómo superar estas dificultades, lograr finalmente avances en la comunidad de código abierto y lograr un equilibrio entre el trabajo y la apertura. contribución de la fuente.

Li Benchao

Director técnico de ByteDance Flink SQL

Miembro de Apache Calcite PMC, Apache Flink Committer, graduado de la Universidad de Pekín, actualmente trabaja en el equipo de computación de transmisión de ByteDance y es el líder técnico de Flink SQL.

Discurso de apertura

Tema: Lagos de datos y almacenes de datos

La práctica de construir un lago de datos en tiempo real basado en Flink

Los lagos de datos en tiempo real son un componente central de la arquitectura de datos moderna y permiten a las empresas analizar y consultar grandes cantidades de datos en tiempo real. Al compartir, primero presentaremos los puntos débiles actuales de los lagos de datos en tiempo real, como la alta puntualidad, diversidad, coherencia y precisión de los datos. Luego, presentaremos cómo construimos un lago de datos en tiempo real basado en Flink e Iceberg, principalmente a través de las dos partes siguientes: cómo colocar datos en el lago en tiempo real y cómo usar Flink para realizar consultas OLAP ad hoc. Finalmente, presentemos algunos beneficios prácticos de ByteDance en el lago de datos en tiempo real.

Wang Zheng

Ingeniero I+D de Computación Nativa en la Nube de Volcano Engine

Se unió a ByteDance en 2021 y trabajó en el equipo de plataforma abierta de infraestructura, principalmente responsable de la investigación y el desarrollo de Serverless Flink y otras direcciones.

Min Zhong Yuan

Ingeniero I+D de Computación Nativa en la Nube de Volcano Engine

Se unió a ByteDance en 2021 y trabaja en el equipo de plataforma abierta de infraestructura, principalmente responsable de la investigación y el desarrollo de Serverless Flink, Flink OLAP y otras direcciones.

La práctica de ByteDance de reducción de costes y mejora de la eficiencia basada en el formato Parquet

El almacén de datos fuera de línea de ByteDance utiliza el formato Parquet para el almacenamiento de datos de forma predeterminada. Sin embargo, durante el uso comercial, encontramos problemas relacionados, como demasiados archivos pequeños y altos costos de almacenamiento de datos. Para abordar el problema de demasiados archivos pequeños, la solución técnica existente generalmente es leer varios archivos pequeños de Parquet a través de Spark y luego volver a generar los datos y fusionarlos en uno o más archivos grandes. Para el problema de los costos de almacenamiento excesivos, los almacenes de datos actualmente fuera de línea solo tienen soluciones TTL a nivel de fila a nivel de partición si necesita eliminar datos de campo detallados (TTL a nivel de columna) que ya no se utilizan en la partición y representan una gran cantidad. En proporción, debe leer los datos a través de Spark y sobrescribir los campos que deben eliminarse configurándolos en NULL. Ya sea que se trate de una combinación de archivos pequeños o TTL a nivel de columna, existe una gran cantidad de operaciones de sobrescritura en los archivos de datos de Parquet. Dado que el formato Parquet tiene reglas de codificación especiales, se requieren una serie de operaciones especiales como (des)serialización, (des)compresión y (des)codificación para leer y escribir datos en Parquet. En este proceso, operaciones como codificación, decodificación y descompresión son cálculos que requieren un uso intensivo de la CPU y consumen una gran cantidad de recursos informáticos. Para mejorar la eficiencia de sobrescritura de archivos en formato Parquet, estudiamos en profundidad la definición del formato de archivo Parquet y utilizamos el método de copia binaria para optimizar la operación de sobrescritura de datos, omitiendo operaciones redundantes como la codificación y decodificación en la sobrescritura ordinaria. La eficiencia de sobrescritura de archivos ha mejorado enormemente y el rendimiento es 10 veces mayor que el de los métodos de sobrescritura normales. Para mejorar la facilidad de uso, también proporcionamos una nueva sintaxis SQL para ayudar a los usuarios a completar cómodamente operaciones como la combinación de archivos pequeños y TTL a nivel de columna.

Xu Qing

Ingeniero senior de I+D de Volcano Engine LAS

Ha estado involucrado en la investigación y el desarrollo de componentes relacionados con big data, como Hive Metastore, SparkSQL, Hudi, etc., durante muchos años.

Wang Ence

Ingeniero senior de I+D de Volcano Engine LAS

Responsable del diseño y desarrollo del motor de computación distribuida big data de ByteDance, ayudando a la empresa a extraer información de alto valor a partir de datos masivos.

Tema: Inteligencia artificial/Aprendizaje automático

Práctica de capacitación integrada de flujo por lotes de aprendizaje profundo de ByteDance

Con el desarrollo del negocio de la empresa, la complejidad de los algoritmos sigue aumentando y cada vez más modelos de algoritmos exploran el entrenamiento en tiempo real basado en actualizaciones fuera de línea para mejorar los efectos del modelo. Para lograr una disposición flexible y un cambio gratuito de capacitación compleja fuera de línea y en tiempo real, y programar recursos informáticos fuera de línea en un rango más amplio, la capacitación del modelo de aprendizaje automático tiende gradualmente a integrar lotes y transmisiones. Esta vez, compartiremos el aprendizaje automático de ByteDance. programación de capacitación Algunos contenidos incluyen la evolución arquitectónica del marco, la práctica de integración de flujo por lotes, capacitación elástica heterogénea, etc. También se centra en la experiencia práctica de la orquestación híbrida de múltiples fuentes de datos y etapas, la reproducción aleatoria global de muestras de transmisión, la nativaización de enlace completo y la información sobre datos de capacitación en el escenario MFTC (capacitación colaborativa integrada de flujo por lotes).

Mao Hong Yue

Ingeniero de Infraestructura ByteDance

Se unió a ByteDance en 2022 y se dedica a la investigación y el desarrollo de capacitación en aprendizaje automático. Es el principal responsable del motor de capacitación de modelos de IA integrados de flujo por lotes nativo de la nube a gran escala, que respalda empresas que incluyen la recomendación de video de Douyin, la recomendación de Toutiao y la publicidad de pangolines. Publicidad gráfica de Qianchuan y otros negocios.

ByteDance Spark admite la práctica de inferencia del modelo Wanka

Con el desarrollo del negocio de la empresa, la complejidad de los algoritmos sigue aumentando y cada vez más modelos de algoritmos exploran el entrenamiento en tiempo real basado en actualizaciones fuera de línea para mejorar los efectos del modelo. Para lograr una disposición flexible y un cambio gratuito de capacitación compleja fuera de línea y en tiempo real, y programar recursos informáticos fuera de línea en un rango más amplio, la capacitación del modelo de aprendizaje automático tiende gradualmente a integrar lotes y transmisiones. Esta vez, compartiremos el aprendizaje automático de ByteDance. programación de capacitación Algunos contenidos incluyen la evolución arquitectónica del marco, la práctica de integración de flujo por lotes, capacitación elástica heterogénea, etc. También se centra en la experiencia práctica de la orquestación híbrida de múltiples fuentes de datos y etapas, la reproducción aleatoria global de muestras de transmisión, la nativaización de enlace completo y la información sobre datos de capacitación en el escenario MFTC (capacitación colaborativa integrada de flujo por lotes).

Liu Chang

Ingeniero de Infraestructura ByteDance

Se unió a ByteDance en 2020 y trabaja en el equipo de computación por lotes de infraestructura. Es el principal responsable del desarrollo de Spark cloud nativo y Spark On Kubernetes.

Zhang Yongqiang

Ingeniero de sistemas de aprendizaje automático ByteDance

Se unió a ByteDance en 2022, trabajó en el equipo del sistema de aprendizaje automático AML y participó en la construcción de una plataforma de aprendizaje automático a gran escala.

Tema especial: almacenamiento de datos y computación

Bytedance MapReduce -> Spark práctica de migración fluida

Con el desarrollo del negocio, ByteDance ejecuta alrededor de 1,2 millones de trabajos Spark en línea todos los días. En contraste, todavía hay entre 20.000 y 30.000 tareas de MapReduce en línea todos los días. Como marco de procesamiento por lotes con una larga trayectoria, la operación y mantenimiento del motor MapReduce enfrenta una serie de problemas desde la perspectiva de la investigación y el desarrollo de big data. Por ejemplo, el retorno de la inversión de la iteración de actualización del marco es bajo, la adaptabilidad al nuevo marco de programación informática es deficiente, etc. Desde la perspectiva del usuario, también existen una serie de problemas al utilizar el motor MapReduce. Por ejemplo, el rendimiento informático es deficiente y se necesitan herramientas Pipeline adicionales para administrar los trabajos que se ejecutan en serie. Quiere migrar Spark, pero hay una gran cantidad de trabajos existentes y una gran cantidad de trabajos utilizan varios scripts que Spark no admite. . En este contexto, el equipo de Bytedance Batch diseñó e implementó una solución para migrar sin problemas las tareas de MapReduce a Spark. Esta solución permite a los usuarios completar la migración sin problemas de MapReduce a Spark agregando solo una pequeña cantidad de parámetros o variables de entorno a los trabajos existentes. reduciendo en gran medida los costos de migración y logrando buenos beneficios de costos.

Wei Zhongjia

Ingeniero de Infraestructura ByteDance

Se unió a ByteDance en 2018 y actualmente es ingeniero de desarrollo de big data de la infraestructura de ByteDance. Se centra en el campo de la informática distribuida de big data y es el principal responsable del desarrollo del kernel Spark y del servicio Shuffle de desarrollo propio de ByteDance.

La práctica del clúster HDFS de cientos de miles de millones de archivos de ByteDance

Con el profundo desarrollo de la tecnología de big data, la escala de datos y la complejidad de uso son cada vez mayores, y Apache HDFS enfrenta nuevos desafíos. En ByteDance, HDFS es el almacenamiento para el negocio tradicional de almacenamiento de datos de Hadoop, la base para el almacenamiento y los motores informáticos de arquitectura de separación informática, y la base de almacenamiento para el entrenamiento de modelos de aprendizaje automático. En ByteDance, HDFS no solo crea capacidades de programación de almacenamiento para servir la programación de recursos informáticos a gran escala en múltiples regiones y mejora la estabilidad de las tareas informáticas, sino que también proporciona identificación de datos y programación en caliente y en frío que integra caché del lado del usuario, tres copias convencionales, y capacidad de almacenamiento en frío. Este intercambio presenta cómo ByteDance comprende internamente los nuevos requisitos para el almacenamiento tradicional de big data en escenarios emergentes y respalda la estabilidad del sistema en diferentes escenarios a través de la evolución tecnológica y la construcción del sistema de operación y mantenimiento.

Xiong Mu

Ingeniero de I+D en almacenamiento de Big Data de Volcano Engine

Principalmente responsable de la evolución de los servicios de metadatos HDFS de almacenamiento de big data y el soporte ecológico informático de capa superior.

Tema: OLAP y análisis de datos

Mejores prácticas para la gestión de indicadores multimotor basados ​​en Apache Calcite

Introducción al tema

Hay varios indicadores en el análisis de datos. Al mantener indicadores masivos, a menudo existen los siguientes puntos débiles:

  • Los segmentos repetidos no se pueden reutilizar
  • Diferentes motores requieren escribir SQL diferente
  • Los cambios de calibre son difíciles de sincronizar en todos los niveles posteriores.

Para resolver estos problemas, ByteDance ha intentado utilizar las capacidades técnicas existentes para diseñar soluciones:

  • Almacene los indicadores en tablas de Hive tanto como sea posible: aumentará en gran medida los costos de almacenamiento y los costos de seguimiento, lo cual no es factible
  • Encapsular indicadores en Ver: no solo generará información de tabla adicional en Hive, duplicando el número de tablas, sino que también es poco amigable para admitir la partición. La experiencia de uso de consultas es deficiente, por lo que es difícil promoverla.

Debido a que la tecnología actual no es suficiente para resolver los problemas anteriores, ByteDance diseñó e implementó dos conjuntos de nuevas capacidades de sintaxis basadas en Apache Calcite:

  • Columnas virtuales: vistas a nivel de columna, reutilización de permisos de columna de tabla, promoción simple
  • Función de definición de SQL: utilice SQL para definir funciones directamente para facilitar la reutilización de fragmentos de SQL

La combinación de estas dos capacidades puede reducir efectivamente el costo de la gestión de indicadores. Por ejemplo:

  • El indicador solo necesita modificarse una vez y no es necesario modificarlo sincrónicamente en sentido descendente.
  • Los campos de tipos de colección como MAP y JSON se pueden definir como columnas virtuales, lo que hace que la lógica sea más clara y cómoda de usar.

En el discurso PPT se presentarán casos típicos específicos y principios de implementación.

Xie Jiajun

Ingeniero senior de I+D de Volcano Engine LAS

Participó en un discurso en Apache Asia Con 2022. Me encanta el código abierto y participo a menudo en el trabajo comunitario. Ahora soy un colaborador activo de Apache Calcite y colaborador de Linkedin Coral.

Práctica de gestión refinada de permisos mixtos en colas de big data

fondo:

En los últimos años, las cuestiones de seguridad de los datos han atraído gradualmente la atención de gobiernos y empresas de todo el mundo. Con la promulgación e implementación de leyes nacionales de seguridad de datos y leyes de protección de la información personal, se han propuesto requisitos claros para el principio de suficiencia mínima de datos. Por lo tanto, cómo controlar los permisos de una manera más detallada se ha convertido en un problema que toda empresa debe resolver.

Asuntos actuales:

La industria generalmente extrae puntos de permiso en SQL de acuerdo con reglas y administra estos puntos de permiso horizontalmente según la dimensión de la fila o verticalmente según la dimensión de la columna.

Esta granularidad de control de permisos unidimensional es demasiado aproximada y no puede admitir la relación combinada entre múltiples permisos. En un escenario de tabla ancha y grande en etapa intermedia como ByteDance, donde se almacenan múltiples líneas de negocios de manera unificada, es difícil satisfacer la demanda de un control de permisos de datos detallado.

solución:

Basándose en los problemas anteriores, ByteDance diseñó una solución de gestión refinada para permisos mixtos en filas y columnas basada en Apache Calcite y su servicio de permisos de desarrollo propio Gemini.

  • Extracción precisa de puntos de autoridad basada en el linaje de calcita

    • Según la capacidad de parentesco, localiza con precisión la información del punto de permiso (tabla, fila, columna, etc.) realmente utilizada en SQL y realiza una extracción de permisos refinada.
  • Gestión y control de permisos multidimensionales con permisos mixtos en filas y columnas.

    • Además de los permisos de biblioteca tradicionales, los permisos de tabla y los permisos de columna, se agrega un nuevo permiso de restricción de fila. Los permisos de fila se pueden adjuntar a los permisos de tabla/columna como un recurso especial.
    • Cada permiso de tabla/permiso de columna se puede agrupar con varios recursos de permisos de fila al mismo tiempo, y las restricciones de fila de diferentes permisos de tabla/permisos de columna son independientes entre sí.
    • Mediante la agrupación de puntos de permiso horizontales/verticales, los recursos de consulta se colocan en las 'celdas de recursos' con filas y filas superpuestas para lograr permisos a nivel de recursos más detallados.

Ventajas de la solución:

  • Con la nueva solución, a través de la extracción precisa de puntos de permiso y el soporte de permisos mixtos multidimensionales de filas y columnas, la gestión y el control de recursos se refinan desde una fila horizontal o una columna vertical hasta 'celdas de recursos' con filas y filas superiores superpuestas. .
  • El alcance del control de permisos se refina aún más y los permisos requeridos se otorgan con la granularidad más pequeña, al tiempo que se garantiza el uso normal de los usuarios.
  • En el discurso PPT se presentarán casos típicos específicos y principios de implementación.

Zhu Jiang

Ingeniero senior de I+D de Volcano Engine LAS

Tema: Nativo de la nube

Práctica de YARN nativa de ByteDance Cloud

El negocio interno fuera de línea de Bytedance tiene una escala enorme. Hay cientos de miles de nodos y millones de tareas que se ejecutan en línea todos los días, y la cantidad de recursos utilizados cada día alcanza decenas de millones. Internamente, el sistema de programación fuera de línea y el sistema de programación en línea son. Responsable respectivamente de la gestión de programación de negocios fuera de línea y en línea. Sin embargo, con el desarrollo de la escala empresarial, este sistema ha expuesto algunas deficiencias: pertenece a dos sistemas fuera de línea y algunos escenarios de actividades importantes requieren la conversión de recursos fuera de línea mediante operación y mantenimiento, la carga de operación y mantenimiento es pesada y el ciclo de conversión es largo. La falta de uniformidad del grupo de recursos hace que la tasa general de utilización de recursos sea baja y la gestión y el control de cuotas, la operación y el mantenimiento de las máquinas, etc., no se puedan reutilizar y las operaciones de big data no puedan disfrutar de los diversos beneficios de la nube nativa, como el aislamiento confiable y estable; Capacidades, capacidades convenientes de operación y mantenimiento, etc. Los sistemas fuera de línea necesitan ser unificados con urgencia, y los motores de big data tradicionales no están diseñados para la nube nativa y son difíciles de implementar directamente en la nube nativa. Cada motor informático y cada tarea requieren una transformación profunda para admitir varias funciones originalmente en YARN, y el costo. de transformación es enorme. Con base en estos antecedentes, ByteDance propone una solución YARN nativa de la nube: Serverless YARN, que es 100% compatible con el protocolo Hadoop YARN. Los trabajos de big data en el ecosistema Hadoop se pueden migrar de forma transparente a sistemas nativos de la nube sin modificaciones y recursos en línea. y Los recursos fuera de línea se pueden convertir y reutilizar de manera eficiente y flexible en tiempo compartido, y la utilización general de recursos del clúster mejora significativamente.

shao kaiyang

Ingeniero I+D de Computación Nativa en la Nube de Volcano Engine

Responsable del trabajo relacionado con la programación fuera de línea en la infraestructura de ByteDance y tiene muchos años de experiencia en arquitectura de ingeniería.

Tema: Sistema de mensajería

Kafka sin Zookeeper

Actualmente, Kafka depende de ZooKeeper para almacenar sus metadatos, como información del corredor, temas, particiones, etc. KRaft es una nueva generación de Kafka sin Zookeeper. Esta conferencia incluirá:

  1. Por qué Kafka necesita desarrollar nuevas funciones de KRaft
  2. Arquitectura del antiguo Kafka (con Zookeeper) y del nuevo Kafka (sin Zookeeper)
  3. Beneficios de adoptar Kafka
  4. cómo funciona internamente
  5. Indicadores de seguimiento
  6. Herramientas para ayudar a resolver problemas de Kafka
  7. Una demostración para mostrar lo que hemos logrado hasta ahora.
  8. La hoja de ruta de la comunidad Kafka hacia KRaft

Después de esta charla, la audiencia comprenderá mejor qué es KRaft, cómo funciona, en qué se diferencia de Kafka basado en Zookeeper y, lo más importante, cómo monitorearlo y solucionar problemas.

Lucas Chen

RedHat, ingeniero de software sénior

Ingeniero de software senior en RedHat, dedicado a ejecutar productos Apache Kafka en la nube. Apache Kafka Committer y miembro del PMC, ha contribuido a Apache Kafka durante más de 3 años.

Deng Ziming

ByteDance Ingeniero de I+D de Big Data, Compromiso Apache Kafka

La interacción del stand te está esperando para jugar.

ByteDance Open Source instalará un stand interactivo en el lugar de la conferencia, donde se mostrarán los proyectos de código abierto de ByteDance e interactuarán con los participantes. No solo hay un rico entorno comunitario en el sitio, sino también varios enlaces interactivos. Los amigos que participan pueden registrarse ~.

Siga la cuenta pública de código abierto de ByteDance , ¡habrá sorpresas en el sitio!

Ver la programación completa: https://apachecon.com/acasia2023/en/tracks.html

¡Compañero pollo deepin-IDE de "código abierto" y finalmente logró el arranque! Buen chico, Tencent realmente ha convertido Switch en una "máquina de aprendizaje pensante" Revisión de fallas de Tencent Cloud del 8 de abril y explicación de la situación Reconstrucción de inicio de escritorio remoto de RustDesk Cliente web Base de datos de terminal de código abierto WeChat basada en SQLite WCDB marcó el comienzo de una actualización importante Lista de abril de TIOBE: PHP cayó a un mínimo histórico, Fabrice Bellard, el padre de FFmpeg, lanzó la herramienta de compresión de audio TSAC , Google lanzó un modelo de código grande, CodeGemma , ¿te va a matar? Es tan bueno que es de código abierto: herramienta de edición de carteles e imágenes de código abierto
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/6210722/blog/10095491
Recomendado
Clasificación