¿Qué servidor utiliza Alibaba? ¿Qué servidor utiliza Alibaba?
Reimpresión: ¿Por qué Alibaba eligió Apache Flink?
Este artículo se basa principalmente en el discurso pronunciado por Mo Wen, un experto técnico senior de la División de Plataformas de Computación de Alibaba, en la Conferencia de Computación.
Los pequeños árboles jóvenes se convierten en árboles altísimos, y las pequeñas bellotas pueden convertirse en árboles altísimos.
Con el advenimiento de la era de la inteligencia artificial y el crecimiento explosivo del volumen de datos, en un típico gran In En el escenario empresarial de datos, el método empresarial de datos más común es utilizar tecnología de procesamiento por lotes para procesar datos completos y utilizar informática de transmisión para procesar datos incrementales en tiempo real. En la mayoría de los escenarios empresariales, la lógica empresarial del usuario suele ser la misma en el procesamiento por lotes y en el procesamiento en flujo. Sin embargo, los dos conjuntos de motores informáticos utilizados por los usuarios para el procesamiento por lotes y el procesamiento de secuencias son diferentes.
Por lo tanto, los usuarios normalmente necesitan escribir dos conjuntos de código. Sin duda, esto traerá algunas cargas y costos adicionales. El procesamiento de datos de productos de Alibaba a menudo requiere dos procesos comerciales diferentes: incremental y de volumen completo. Por lo tanto, Alibaba ha estado pensando si puede tener una tecnología de motor de big data unificada. Los usuarios solo necesitan desarrollar un conjunto de códigos basados en su propia lógica comercial. . En escenarios tan diferentes, ya sean datos completos, datos incrementales o procesamiento en tiempo real, se puede admitir un conjunto completo de soluciones. Este es también el trasfondo y la intención original de Alibaba al elegir Flink.
Actualmente, existen muchas opciones para motores informáticos de big data de código abierto, como Storm, Samza, Flink, KafkaStream, etc.
Actualmente existen muchos motores informáticos de big data de código abierto para elegir, como Storm, Samza, Flink, KafkaStream, etc., así como motores de procesamiento por lotes como Spark, Hive, Pig y Flink. . Pero solo hay dos opciones para motores informáticos que admiten tanto el procesamiento de flujo como el procesamiento por lotes: uno es ApacheSpark y el otro es ApacheFlink.
Consideración integral de la tecnología, la ecología y otros aspectos. En primer lugar, la idea técnica de Spark es simular la computación de flujo basada en lotes. Flink, por otro lado, utiliza computación basada en flujos para simular el cálculo por lotes.
Desde la perspectiva del desarrollo tecnológico, existen ciertas limitaciones técnicas en el uso del procesamiento por lotes para simular flujos, que pueden ser difíciles de superar, mientras que Flink simula el procesamiento por lotes basado en flujos, que es técnicamente más escalable. sexo. A largo plazo, Alibaba ha decidido utilizar Flink como motor unificado de big data general como su opción futura.
Flink es un motor informático unificado de big data con baja latencia y alto rendimiento. En el entorno de producción de Alibaba, la plataforma informática de Flink puede procesar cientos de millones de mensajes o eventos por segundo, con una latencia de sólo milisegundos. Al mismo tiempo, Flink proporciona una semántica de coherencia única. La exactitud de los datos está garantizada. De esta manera, el motor de big data de Flink proporciona capacidades de procesamiento de datos financieros.
El estado actual de Flink en Alibaba
La plataforma de Alibaba basada en Apache Flink se lanzó oficialmente en 2016 y se implementa en los dos escenarios principales de búsqueda y recomendación de Alibaba. Actualmente, todas las empresas de Alibaba, incluidas todas las filiales de Alibaba, utilizan una plataforma informática en tiempo real basada en Flink. Al mismo tiempo, la plataforma informática Flink se ejecuta en el clúster Hadoop de código abierto. YARN de Hadoop se utiliza como gestión y programación de recursos, y HDFS se utiliza como almacenamiento de datos. Por lo tanto, Flink puede funcionar perfectamente con el software de big data de código abierto Hadoop.
Actualmente, esta plataforma informática en tiempo real basada en Flink no solo sirve al Grupo Alibaba, sino que también proporciona soporte de productos en la nube basados en Flink para todo el ecosistema de desarrolladores a través de la API del producto en la nube de Alibaba Cloud.
¿Cómo se desempeña Flink a la escala de Alibaba?
Escala: La escala es un indicador importante de la madurez de un sistema.
Cuando se lanzó Flink, solo había unos pocos cientos de servidores en Alibaba. Ahora tiene decenas de miles de servidores, que son solo un puñado a nivel mundial;
Datos de estado: basados en. Flink, los datos de estado acumulados internamente han alcanzado el nivel PB;
Eventos: la cantidad de eventos actualmente procesados en la plataforma informática de Flink todos los días es de aproximadamente 1000. La plataforma informática de Flink procesa más de un billón de datos;
PD: puede manejar más de 472 millones de visitas por segundo durante los períodos pico. El escenario de aplicación más típico es la pantalla grande del Doble 11 de Alibaba;
El camino de desarrollo de Flink
A continuación, hablemos de cómo nació Apache Flink y cómo creció desde la perspectiva de la tecnología de código abierto. ¿Cómo se sumó Ali a este momento crítico de crecimiento? ¿Qué aportes y apoyo has hecho para ello?
Flink nació del proyecto europeo de investigación de big data Stratosphere. El proyecto es una iniciativa de investigación de la Universidad Técnica de Berlín. Al principio, Flink hacía computación por lotes, pero en 2014, los miembros centrales de la estratosfera incubaron Flink y lo donaron a Apache ese mismo año, y posteriormente se convirtió en el principal proyecto de big data de Apache. Al mismo tiempo, la dirección principal de la informática Flink se posiciona como la informática de transmisión, que utiliza la informática de transmisión para calcular todos los grandes datos. Este es el trasfondo del nacimiento de la tecnología Flink.
En 2014, Flink comenzó a emerger en la industria de big data de código abierto como un motor de big data centrado en la computación en flujo. A diferencia de Storm, SparkStreaming y otros motores informáticos de transmisión, no solo es un motor informático de alto rendimiento y baja latencia, sino que también proporciona muchas funciones avanzadas. Por ejemplo, proporciona computación con estado, admite gestión de estado, admite una fuerte coherencia de la semántica de datos, admite tiempo de eventos y marcas de agua para manejar el caos de mensajes.
Los conceptos básicos y centrales de Flink
La diferencia entre Flink y otros motores de computación de flujo en realidad radica en la gestión del estado.
¿Qué tipo de estatus? Por ejemplo, si desarrolla un sistema informático de flujo o una tarea para el procesamiento de datos, es posible que a menudo necesite realizar estadísticas sobre los datos, como suma, recuento, mínimo y máximo, y estos valores deben almacenarse. Debido a que se actualizan constantemente, estos valores o variables pueden entenderse como un estado. Si la fuente de datos lee Kafka o RocketMQ, es posible que deba registrar la ubicación de la lectura y registrar el desplazamiento. Estas variables de compensación son los estados que deben calcularse.
Flink proporciona administración de estado integrada, lo que le permite almacenar este estado dentro de Flink en lugar de almacenarlo en un sistema externo. Esto tiene las siguientes ventajas: en primer lugar, reduce la dependencia y el despliegue del motor de cálculo en sistemas externos, simplificando la operación y el mantenimiento. En segundo lugar, proporciona importantes mejoras de rendimiento: si se accede desde el exterior, como Redis, se debe acceder a través de la red; y acceso RPC a HBase. Si Flink accede a estas variables internamente, solo necesita acceder a ellas a través de su propio proceso. Al mismo tiempo, Flink persistirá estos puntos de control de estado con regularidad y los almacenará en un sistema de persistencia distribuido (como HDFS). De esta manera, cuando la tarea de Flink falla, restaura el estado de todo el flujo desde el punto de control más reciente y continúa ejecutando el procesamiento del flujo. Los usuarios no se verán afectados por ningún dato.
¿Cómo garantiza Flink que no haya pérdida ni redundancia de datos durante la recuperación del punto de control? para garantizar la precisión del cálculo?
La razón es que Flink utiliza un conjunto de algoritmos clásicos de Chandy-Lamport. La idea central es considerar este cálculo de flujo como una topología de flujo e insertar datos especiales de la fuente en ciertos intervalos al principio. esta topología los obstáculos se transmiten desde aguas arriba hacia aguas abajo. Después de que cada nodo recibe todos los obstáculos, toma una instantánea de su estado.
Una vez que cada nodo completa la instantánea, toda la topología se considera un punto de control completo. A continuación, cualquiera que sea el fallo que se produzca, la recuperación se realizará desde el punto de control más reciente.
Flink utiliza este algoritmo clásico para garantizar una sólida coherencia semántica. Ésta es la diferencia principal entre Flink y otros motores informáticos de flujo sin estado.
A continuación se muestra cómo Flink resuelve el problema del desorden. Por ejemplo, si miras Star Wars según el momento de su lanzamiento, es posible que notes que la trama salta.
En términos de cálculo de tráfico, esto es muy similar a este ejemplo. La hora de llegada de todos los mensajes no coincide con la hora real en que se produjeron en el registro del sistema en línea de origen. Durante el procesamiento de flujo, uno desea procesar los mensajes en el orden en que realmente aparecen en la fuente, en lugar de cuando realmente llegan al programa. Flink proporciona algunas tecnologías avanzadas de sincronización de eventos y marcas de agua para resolver el problema del desorden, de modo que los usuarios puedan procesar los mensajes de manera ordenada. Esta es una característica muy importante de Flink.
A continuación, presentaremos los conceptos e ideas centrales cuando comenzó Flink. Esta es la primera etapa del desarrollo de Flink en 2015 y 2017. Esta etapa es también cuando Flink se desarrolla y Alibaba se involucra. La historia surge de una encuesta que hicimos en el Grupo de Búsqueda a mediados de 2015. En ese momento, Alibaba tenía sus propias tecnologías de procesamiento por lotes y computación en flujo, algunas de desarrollo propio y otras de código abierto. Sin embargo, para pensar en la dirección del desarrollo y las tendencias futuras de la próxima generación de motores de big data, hemos realizado muchas investigaciones sobre nuevas tecnologías.
Combinando una gran cantidad de resultados de investigación, finalmente llegamos a la conclusión de que los motores informáticos que resuelven las necesidades informáticas generales de big data e integran flujos por lotes son la dirección de desarrollo de la tecnología de big data, y finalmente elegimos Flink.
Pero Flink no estaba lo suficientemente maduro en 2015 y su escala y estabilidad aún no se habían implementado. Finalmente, decidimos establecer una sucursal de Flink en Alibaba y realizar muchas modificaciones y mejoras en Flink para adaptarnos a los escenarios comerciales muy grandes de Alibaba. Durante este proceso, nuestro equipo no solo mejoró y optimizó el rendimiento y la estabilidad de Flink, sino que también realizó muchas innovaciones y mejoras en la arquitectura y las funciones centrales, y contribuyó a la comunidad, como: la nueva arquitectura distribuida de Flink, el mecanismo de punto de control incremental, Mecanismo de control de tráfico de red basado en créditos, streaming de SQL, etc.
La contribución de Alibaba a la comunidad Flink
La contribución de Alibaba a la comunidad Flink
Echemos un vistazo a la contribución de Alibaba a la comunidad Flink
La contribución de Alibaba a la comunidad Flink. /p>
Veamos dos ejemplos de diseño. El primer ejemplo es que Alibaba ha reconstruido la arquitectura distribuida de Flink para hacer que la programación de trabajos y la gestión de recursos de Flink sean más claras en capas y desacopladas. El primer beneficio de esto es que Flink puede ejecutarse de forma nativa en varios administradores de recursos de código abierto. Esta mejora en la arquitectura distribuida permite que Flink se ejecute de forma nativa en HadoopYarn y Kubernetes, los dos sistemas de gestión de recursos más comunes. También cambia la programación de tareas de Flink de centralizada a distribuida, lo que permite a Flink admitir clústeres más grandes y lograr un mejor aislamiento de recursos.
La otra es implementar un mecanismo de punto de control incremental, porque Flink proporciona computación con estado y mecanismos de punto de control de reglas. Si hay más y más datos dentro, el punto de control se hará cada vez más grande y, eventualmente, es posible que no se complete. Después de proporcionar puntos de control incrementales, Flink descubrirá automáticamente qué datos tienen cambios incrementales y qué datos se han modificado. Al mismo tiempo, solo se conservarán estos datos modificados. De esta manera, los puntos de control no serán cada vez más difíciles de ejecutar con el tiempo y el rendimiento de todo el sistema será muy estable. Esta también es una característica muy importante que aportamos a la comunidad.
Después de la mejora de las funciones de transmisión de Flink de 2015 a 2017, la comunidad de Flink ha madurado gradualmente y Flink se ha convertido en el motor informático más importante en el campo de la transmisión de medios. Debido a que la idea original de Flink era ser un motor unificado de big data para procesamiento de flujo y procesamiento por lotes, este trabajo comenzó en 2018. Para lograr este objetivo, Alibaba ha propuesto una nueva arquitectura API unificada y una solución SQL unificada. Al mismo tiempo, una vez mejoradas las diversas funciones de la computación en streaming, creemos que la computación por lotes también debe mejorarse en muchos aspectos. Ya sea en la capa de programación de tareas o en la capa de mezcla de datos, hay mucho trabajo por hacer para mejorar la tolerancia a fallos y la facilidad de uso.
Para descubrir por qué, compartiremos dos puntos clave contigo aquí:
● Pila de API unificada
● Solución SQL unificada
Echemos un vistazo al estado actual de la pila FlinkAPI. Los desarrolladores que hayan estudiado o utilizado Flink deben saber que Flink tiene dos API básicas, una para flujos de datos y otra para conjuntos de datos. La API de flujo de datos se proporciona a los usuarios de flujo de datos y la API de conjunto de datos se proporciona a los usuarios por lotes. Sin embargo, las rutas de ejecución de estas dos API son completamente diferentes e incluso necesitan generar tareas diferentes para su ejecución. Por lo tanto, esto entra en conflicto con la API unificada, que también está incompleta y no es una solución final. Además del tiempo de ejecución, debería haber una capa API base para la integración por lotes unificada, y queremos que la capa API esté unificada.
Por lo tanto, adoptaremos la API DAG (Gráfico acíclico finito) como la capa API unificadora para procesos por lotes en la nueva arquitectura. Para gráficos acíclicos finitos, los cálculos por lotes y de procesos no requieren representación explícita. Los desarrolladores solo necesitan definir diferentes atributos en diferentes nodos y diferentes bordes para planificar si los datos son un atributo de proceso o un atributo de lote. Toda la topología es una representación semántica unificada que puede integrar flujos por lotes. No es necesario distinguir entre computación en flujo y computación por lotes en todo el cálculo, solo necesita expresar sus necesidades. Con esta API, la pila de API de Flink está unificada.
Además de la capa API básica unificada y la pila API unificada, la solución SQL de capa superior también está unificada. En cuanto a SQL por lotes, podemos considerar proporcionar fuentes de datos para transmisión y cálculos por lotes y modelarlos como tablas de datos. La fuente de datos de transmisión de datos puede considerarse como una tabla de datos que se actualiza continuamente, mientras que la fuente de datos de datos por lotes puede considerarse como una tabla relativamente estática que no se actualiza. Todo el proceso de procesamiento de datos puede considerarse como una consulta en SQL y el resultado final se puede simular como una tabla de resultados.
Para la informática de flujo, la tabla de resultados es una tabla de resultados que se actualiza continuamente. Para el procesamiento por lotes, la tabla de resultados equivale a una tabla de resultados que se actualiza una vez. El procesamiento por secuencias y por lotes se puede armonizar en términos de la representación semántica general de SOL. Además, el SQL de proceso y el SQL por lotes pueden utilizar la misma consulta para representar la reutilización. De esta manera, todos los lotes de transmisión se pueden optimizar o analizar con la misma consulta. Incluso se pueden reutilizar muchos operadores de flujo y lotes.
La dirección futura de Flink
En primer lugar, Alibaba espera crear un motor informático de big data integrado y unificado basado en las características de Flink. Sobre la base de la ecología y la escena. En la actualidad, Flink es el principal motor de computación de flujo. Muchas empresas de Internet se han dado cuenta de que Flink es el futuro del big data y el mejor motor de computación de flujo. La siguiente tarea importante es hacer que Flink logre un gran avance en la computación por lotes. En más escenarios de aplicación, se ha convertido en un motor informático por lotes convencional. Luego, cambie sin problemas entre transmisión y procesamiento por lotes, y las líneas entre transmisión y procesamiento por lotes se vuelven cada vez más borrosas. Con Flink, puede completar tanto la computación en flujo como la computación por lotes en un solo cálculo.
La segunda dirección es que Flink sea compatible con un ecosistema de lenguajes más amplio, no solo Java y Scala, sino también Python y Go para el aprendizaje automático. En el futuro, esperamos utilizar lenguajes más ricos para desarrollar tareas informáticas de Flink, describir la lógica informática y conectar más ecosistemas.
Por último, tenemos que hablar de inteligencia artificial, porque muchas necesidades informáticas de big data y volúmenes de datos admiten escenarios de aplicaciones de inteligencia artificial muy populares. Por lo tanto, continuaremos avanzando sobre la base de mejorar el ecosistema de procesamiento por lotes y flujo de Flink y mejorar la biblioteca de algoritmos de aprendizaje automático de Flink de nivel superior. Al mismo tiempo, Flink recurrirá a máquinas maduras para realizar una integración de aprendizaje profundo. Por ejemplo, Tensorflow en Flink se puede utilizar para integrar el procesamiento de datos ETL de big data con el cálculo de características, el cálculo de características y el entrenamiento computacional del aprendizaje automático, lo que permite a los desarrolladores disfrutar de los beneficios de múltiples ecosistemas al mismo tiempo.
¿Qué es Alibaba Cloud Paradise?
Este es un producto de sistema de información fabricado por Alibaba, principalmente para pequeñas y medianas empresas. Alibaba coloca todos sus servidores y soporte de hardware en la nube. ¿Significa que Alibaba gestionará sus datos por usted?
¿Por qué Alibaba, Tencent y otras empresas ponen sus servidores en Estados Unidos?
Para que el pueblo estadounidense pueda disfrutar de los servicios de Alibaba y Tencent, además de los nacionales que vienen a Estados Unidos, también se necesitan servicios relacionados.
¿A qué industria pertenece Alibaba?
El principal negocio de Alibaba es el comercio electrónico, que también incluye finanzas por Internet, pagos electrónicos, logística, etc. Al mismo tiempo, el continuo desarrollo de Alibaba también abarca áreas más amplias como los medios de comunicación y el Internet de las cosas.
Los principales negocios de Alibaba Group: Alibaba, Taobao, Alipay, Alibaba Software, Alimama, Koubei.com, Alibaba Cloud, China Yahoo, Yitao.com, Taobao Mall, China Wanwang, Juhuasuan, Yunfeng Fund, Hormiga financiera.
¿Qué tamaño de servidor necesita una tienda online promedio?
No, porque la tienda Taobao que solicitó proviene de un espacio virtual y se puede usar directamente en la sala de computadoras construida por Alibaba sin tener que proporcionar su propio servidor.
Si su tienda Taobao está abierta en la sala de computadoras construida por Alibaba, puede usarla directamente sin proporcionar su propio servidor.
¿Es posible "construir una sala de ordenadores tú mismo" o "autoconstruirla"?
Sí, uno de los centros de servidores de Alibaba está ubicado en el fondo del lago Qiandao. El centro de datos Alibaba Cloud Qiandao Lake tiene un área de construcción de 30.000 metros cuadrados, 11 pisos y puede acomodar al menos 50.000 dispositivos. Como plantilla de construcción de centros de datos industriales impulsados por refrigeración por agua, es innovadora y representativa. El centro de datos no requiere refrigeración eléctrica el 90% del tiempo. El agua del lago profundo fluye a través del centro de datos a través de tuberías completamente selladas para ayudar a enfriar los servidores, y luego fluye a través del río axial de la Nueva Ciudad de Qingxi, de 2,5 kilómetros de largo, tomando la forma de un paisaje urbano, y regresa al lago Qiandao después. enfriamiento natural.