Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive
En esta página

Principios básicos de Storm

Actualización más reciente 2023-04-14 GMT+08:00

Apache Storm es un sistema de procesamiento de datos en tiempo real distribuido, confiable y tolerante a fallas. En Storm, una estructura de datos en forma de gráfico llamada topología necesita ser diseñada primero para la computación en tiempo real. La topología se enviará a un clúster. A continuación, un nodo máster del clúster distribuye códigos y asigna tareas a los nodos de trabajo. Una topología contiene dos funciones: spout and bolt. Un spout envía mensajes y envía flujos de datos en tuples. Un bolt convierte los flujos de datos y realiza operaciones de computación y filtrado. El bolt puede enviar datos aleatoriamente a otros bolts. Los tuples enviados por un spout son matrices incambiables y se asignan a pares de clave-valor fijos.

Figura 1 Arquitectura del sistema de Storm

La lógica de procesamiento de servicio está encapsulada en la topología de Storm. Una topología es un conjunto de componentes de spout (origen de datos) y bolt (procesamiento lógico) que se conectan mediante Stream Groupings en modo DAG. Todos los componentes (spout and bolt) de una topología trabajan en paralelo. En una topología, puede especificar el paralelismo para cada nodo. A continuación, Storm asigna tareas en el clúster para que la computación mejore las capacidades de procesamiento del sistema.

Figura 2 Topología

Storm es aplicable al análisis en tiempo real, la computación continua y la extracción, transformación y carga distribuida (ETL). Tiene las siguientes ventajas:

  • Amplias aplicaciones
  • Alta escalabilidad
  • Cero pérdida de datos
  • Alta tolerancia a fallos
  • Fácil de construir y controlar
  • Compatibilidad multilenguaje

Storm es una plataforma informática y proporciona Lenguaje de Consulta Continua (CQL) en la capa de servicio para facilitar la implementación del servicio. CQL tiene las siguientes características:

  • Fácil de usar: La sintaxis CQL es similar a la sintaxis SQL. Los usuarios que tienen conocimientos básicos de SQL pueden aprender fácilmente CQL y usarlo para desarrollar servicios.
  • Funciones ricas: Además de las expresiones básicas proporcionadas por SQL, CQL proporciona funciones, como ventanas, filtrado y configuración de simultaneidad, para el procesamiento de flujo.
  • Fácil de escalar: CQL proporciona una API de extensión para soportar escenarios de servicio cada vez más complejos. Los usuarios pueden personalizar la entrada, la salida, la serialización y la deserialización para cumplir con los requisitos de servicio específicos.
  • Fácil de depurar: CQL proporciona una explicación detallada de los códigos de error, facilitando a los usuarios la rectificación de fallas.

Para obtener más información sobre la arquitectura y los principios de Storm, consulte https://storm.apache.org/.

Principio

  • Conceptos básicos
    Tabla 1 Conceptos

    Concepto

    Descripción

    Tuple

    Un tuple es un par de clave-valor invariable utilizado para transferir datos. Tuples se crean y procesan de manera distribuida.

    Stream

    Un stream es una secuencia ilimitada de tuples.

    Topology

    Una topología es una aplicación en tiempo real que se ejecuta en la plataforma Storm. Es un gráfico acíclico dirigido (DAG) compuesto de componentes. Una topología puede ejecutarse simultáneamente en varias máquinas. Cada máquina ejecuta una parte del DAG. Una topología es similar a un MapReduce job. La diferencia es que la topología es un programa residente. Una vez iniciada, la topología no puede detenerse a menos que se termine manualmente.

    Spout

    Un spout es la fuente de tuples. Por ejemplo, un spout puede leer datos de una cola de mensajes, una base de datos, un sistema de archivos o una conexión TCP y los convierte en tuples, que son procesadas por el siguiente componente.

    Bolt

    En una topología, un bolt es un componente que recibe datos y ejecuta lógica específica, como filtrar o convertir tuples, unir o agregar flujos y realizar estadísticas y persistencia de resultados.

    Worker

    Un worker es un procesamiento físico en estado de ejecución en una topología. Cada worker es un proceso de JVM. Cada topología puede ser ejecutada por múltiples workers. Cada worker ejecuta un subconjunto lógico de la topología.

    Task

    Task es una rosca de spout o bolt de un worker.

    Stream groupings

    Stream grouping especifica las políticas de distribución de tuple. Instruye al bolt posterior cómo recibir los tuples. Las políticas admitidas incluyen Shuffle Grouping, Fields Grouping, All Grouping, Global Grouping, Non Grouping, y Directed Grouping.

    Figura 3 muestra una topología (DAG) que consiste en un Spout and Bolt. En la figura, un rectángulo indica un Spout o Bolt, el nodo en cada rectángulo indica tareas, y las líneas entre tareas indican streams.

    Figura 3 Topología
  • Confiabilidad

    Storm ofrece tres niveles de confiabilidad de datos:

    • Como máximo una vez: Los datos procesados pueden perderse, pero no pueden procesarse repetidamente. Este nivel de confiabilidad ofrece el mayor rendimiento.
    • Al menos una vez: Los datos pueden procesarse repetidamente para garantizar una transmisión de datos confiable. Si no se recibe una respuesta dentro del tiempo especificado, el Spout vuelve a enviar los datos a Bolts para su procesamiento. Este nivel de confiabilidad puede afectar ligeramente al rendimiento del sistema.
    • Exactamente una vez: Los datos se transmiten con éxito sin pérdida o procesamiento de redundancia. Este nivel de confiabilidad ofrece el peor rendimiento.

    Seleccione el nivel de confiabilidad en función de los requisitos de servicio. Por ejemplo, para los servicios que requieren una alta confiabilidad de datos, utilice Exactamente una vez para asegurarse de que los datos se procesan solo una vez. Para los servicios insensibles a la pérdida de datos, utilice otros niveles para mejorar el rendimiento del sistema.

  • Tolerancia a fallas

    Storm es un sistema tolerante a fallas que ofrece alta disponibilidad. Tabla 2 describe la tolerancia a fallas de los componentes de Storm.

    Tabla 2 Tolerancia a fallas

    Escenario

    Descripción

    Nimbus failed

    Nimbus es rápido y apátrida. Si el Nimbus activo es defectuoso, el Nimbus en espera se hace cargo de los servicios inmediatamente y proporciona servicios externos.

    Supervisor failed

    Supervisor es un daemon de fondo de Workers. Es fail-fast y apátrida. Si un Supervisor es defectuoso, los Workers que se ejecutan en el nodo no se ven afectados, pero no pueden recibir nuevas tareas. El OMS puede detectar la falla del Supervisor y reiniciar los procesos.

    Worker failed

    Si un trabajador está defectuoso, el supervisor del Worker lo reiniciará de nuevo. Si el reinicio falla varias veces, Nimbus reasigna tareas a otros nodos.

    Node failed

    Si un nodo está defectuoso, todas las tareas procesadas por el nodo expirarán y Nimbus asignará las tareas a otro nodo para su procesamiento.

Características de código abierto

  • Cómputo en tiempo real distribuido

    En un clúster de Storm, cada máquina admite la ejecución de múltiples procesos de trabajo y cada proceso de trabajo puede crear múltiples subprocesos. Cada subproceso puede ejecutar varias tareas. Una tarea indica un procesamiento de datos simultáneo.

  • Alta tolerancia a fallos

    Durante el procesamiento de mensajes, si un nodo o un proceso es defectuoso, la unidad de procesamiento de mensajes puede volver a desplegarse.

  • Mensajes confiables

    Se admiten métodos de procesamiento de datos, incluidos At-Least Once, At-Most Once, y Exactly Once.

  • Mecanismo de seguridad

    Storm proporciona autenticación basada en Kerberos y mecanismos de autorización conectables, admite SSL Storm UI y Log Viewer UI, y admite la integración de seguridad con otros componentes de la plataforma de big data (como ZooKeeper y HDFS).

  • Definición e despliegue de topologías flexibles

    El marco Flux se utiliza para definir e desplegar topologías de servicio. Si se cambia el DAG de servicio, los usuarios solo necesitan modificar YAML lenguaje específico del dominio (DSL), pero no necesitan volver a compilar o empaquetar código de servicio.

  • Integración con componentes externos

    Storm admite la integración con múltiples componentes externos como Kafka, HDFS, HBase, Redis y JDBC/RDBMS, implementando servicios que involucran múltiples fuentes de datos.

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios