Proyecto de Apache Beam

Esta página contiene los detalles de un proyecto de redacción técnica aceptado para la temporada de Documentos de Google.

Resumen del proyecto

Organización de código abierto:
Apache Beam
Escritor técnico:
Sruthi Sree Kumar
Nombre del proyecto:
Actualización de la página de comparación de ejecutores o de la matriz de capacidades
Duración del proyecto:
Duración estándar (3 meses)

Project description

Apache Beam es una plataforma unificada para definir canalizaciones de procesamiento por lotes y de transmisión. Apache Beam te permite definir un modelo para representar y transformar conjuntos de datos independientemente de cualquier plataforma de procesamiento de datos específica. Una vez definido, puedes ejecutarlo en cualquiera de los frameworks de tiempo de ejecución compatibles (ejecutores), incluidos Apache Apex, Apache Flink, Apache Spark y Google Cloud Dataflow. Apache Beam también incluye diferentes SDK que te permiten escribir tu canalización en lenguajes de programación como Java, Python y GO.

Voy a enviar mi solicitud para el GSOD en “Actualización de la matriz de capacidades/página de comparación de ejecutores”. Como Apache Beam admite varios ejecutores y SDK, un usuario nuevo se confundirá al elegir entre ellos. En la documentación actual de los diferentes ejecutores, se brinda una descripción general muy breve del ejecutor. Mi idea es agregar más detalles de comprensión de cada ejecutor en la página de documentación específica del ejecutor. Además, me gustaría actualizar la descripción del proyecto de recuento de palabras de ejemplo para agregar una explicación detallada. Para ello, mi plan es probar cada ejemplo de recuento de palabras de forma local en mi máquina y averiguar si faltan algunos pasos y agregar más explicaciones sobre el proceso. Otro aspecto que noté es que la documentación para los corredores no sigue ningún patrón(pocos tienen una sección de descripción general, mientras que otros comienzan con cómo usar, el prerrequisito o algún título aleatorio). Las actualizaré para que sigan un patrón único y sencillo.

Planeo agregar una nueva página para describir a cada corredor y proporcionar una narración descriptiva para cada uno de ellos [BEAM-3220]. Desde esta página, los usuarios pueden redireccionar a la página de descripción detallada de cada ejecutor y la matriz de funciones. También pienso agregar una comparación descriptiva de cada corredor aquí. Actualmente, estoy usando Beam NEXMark para comparar ejecutores de Flink para mi tesis maestra. Como conozco plenamente las comparativas de NEXMark, me gustaría incluir los resultados de las comparativas de cada ejecutor en el modo por lotes y de transmisión aquí(BEAM-2944). También actualizaría la documentación de NEXMark si descubro algún parámetro o configuración que falta o se quitó. Antes, cuando usaba Flink Runner, estaba bloqueado al principio porque faltaba uno de los parámetros en la documentación. Pero ahora, como estoy más familiarizado con la base de código NEXMark, también sería más fácil para mí comparar los ejecutores y agregar las métricas. En esta misma página, quiero incluir un breve resumen de la preparación para la producción de cada ejecutor.

En la documentación actual, se incluye la compatibilidad con el ejecutor clásico y portátil en la página de descripción de cada ejecutor. Creo que también es mejor ubicarlos todos en un solo lugar, ya sea en la matriz de capacidades o en la página de descripción que se acaba de agregar. Además, por el momento, la compatibilidad con la portabilidad se mantiene en una hoja de cálculo de Google separada que me gustaría combinar con la matriz de compatibilidad: https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0). Como parte de esta tarea, pienso incluir todas las correcciones mayores o menores que se mencionan en BEAM-2888.

Considero que GSoD es una oportunidad para participar en contribuciones de código abierto. Seguiré contribuyendo a proyectos de código abierto, especialmente en Beam, y me gustaría continuar como miembro activo de la comunidad. Como Apache Beam tiene una comunidad activa con funciones continuas en desarrollo, creo que siempre hay un margen para mejorar la documentación para actualizarla. Además, me gustaría contribuir al trabajo de desarrollo. Si tengo conocimientos sólidos sobre Beam, también puedo ayudar a la comunidad de usuarios, ya que siempre recibí ayuda de la comunidad cuando comencé con Beam.

Creo que soy la persona adecuada para este proyecto por los siguientes motivos:

  1. Soy un aficionado de los sistemas distribuidos que intenta comprender la parte interna de los sistemas de procesamiento de datos.
  2. Tengo experiencia en el trabajo con Apache Beam y Apache Flink como usuario.
  3. Como desarrollador, ya tengo claro el código base de Apache Beam y Apache Flink.
  4. Hice un proyecto para comparar diferentes ejecutores de haces.
  5. Tengo experiencia en la escritura de blogs técnicos para explicar conceptos de procesamiento de macrodatos y sistemas distribuidos.
  6. Actualmente, estoy trabajando en mi tesis maestra para mejorar el rendimiento del backend de estado de Apache Flink para el que uso la implementación de NEXMark de Apache Beam para comparativas y también contribuí a actualizar la documentación de Apache Beam.
  7. Como tengo 4 años de experiencia laboral como desarrollador de software, escribí varios documentos de diseño técnico, documentación del producto y archivos readme(a los que no tengo acceso en este momento).
  8. Escribo documentación de modo que cualquier persona sin conocimientos previos la entienda a primera vista.