Condividi tramite


Che cos'è Apache Flink® in Azure HDInsight nel servizio Azure Kubernetes? (anteprima)

Importante

Questa funzionalità è attualmente disponibile solo in anteprima. Le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure includono termini legali più validi applicabili alle funzionalità di Azure disponibili in versione beta, in anteprima o non ancora rilasciate nella disponibilità generale. Per informazioni su questa anteprima specifica, vedere Informazioni sull'anteprima di Azure HDInsight nel servizio Azure Kubernetes. Per domande o suggerimenti sulle funzionalità, inviare una richiesta in AskHDInsight con i dettagli e seguire microsoft per altri aggiornamenti nella community di Azure HDInsight.

Apache Flink è un framework e un motore di elaborazione distribuito per i calcoli con stato su flussi di dati non associati e delimitati. Flink è stato progettato per essere eseguito in tutti gli ambienti cluster comuni, eseguire calcoli e applicazioni di streaming con stato a velocità in memoria e su qualsiasi scala. Le applicazioni vengono parallelizzate in migliaia di attività distribuite e eseguite simultaneamente in un cluster. Pertanto, un'applicazione può usare quantità illimitate di vCPU, memoria principale, disco e I/O di rete. Inoltre, Flink mantiene facilmente lo stato dell'applicazione di grandi dimensioni. L'algoritmo di checkpoint asincrono e incrementale garantisce un'influenza minima sulle latenze di elaborazione garantendo al tempo stesso la coerenza dello stato esattamente una volta.

Apache Flink è un motore di analisi altamente scalabile per l'elaborazione dei flussi.

Alcune delle principali funzionalità offerte da Flink sono:

  • Operazioni su flussi delimitati e non associati
  • Prestazioni in memoria
  • Possibilità sia per i calcoli di streaming che per i calcoli batch
  • Bassa latenza, operazioni ad alta velocità effettiva
  • Esattamente al momento dell'elaborazione
  • Disponibilità elevata
  • Stato e tolleranza di errore
  • Completamente compatibile con l'ecosistema Hadoop
  • API SQL unificate per flusso e batch

Diagramma dell'architettura Flink.

Apache Flink è un'ottima scelta per sviluppare ed eseguire molti tipi diversi di applicazioni grazie al set di funzionalità completo. Le funzionalità di Flink includono il supporto per l'elaborazione di flussi e batch, la gestione sofisticata dello stato, la semantica di elaborazione in fase di evento e esattamente una volta garanzie di coerenza per lo stato. Flink non ha un singolo punto di errore. Flink è stato dimostrato di ridimensionare fino a migliaia di core e terabyte di stato dell'applicazione, offre velocità effettiva elevata e bassa latenza e supporta alcune delle applicazioni di elaborazione dei flussi più impegnative al mondo.

  • Rilevamento delle frodi: Flink può essere usato per rilevare transazioni fraudolente o attività in tempo reale applicando regole complesse e modelli di Machine Learning sui dati di streaming.
  • Rilevamento anomalie: È possibile usare Flink per identificare outlier o modelli anomali nei dati di streaming, ad esempio letture dei sensori, traffico di rete o comportamento dell'utente.
  • Avvisi basati su regole: Flink può essere usato per attivare avvisi o notifiche in base a condizioni o soglie predefinite sui dati di streaming, ad esempio temperatura, pressione o prezzi azionari.
  • Monitoraggio dei processi aziendali: È possibile usare Flink per tenere traccia dello stato e delle prestazioni dei processi aziendali o dei flussi di lavoro in tempo reale, ad esempio evasione degli ordini, consegna o servizio clienti.
  • Applicazione Web (social network): Flink può essere usato per supportare le applicazioni Web che richiedono l'elaborazione in tempo reale dei dati generati dall'utente, ad esempio messaggi, like, commenti o raccomandazioni.

Altre informazioni sui casi d'uso comuni descritti nei casi d'uso di Apache Flink

I cluster Apache Flink in HDInsight nel servizio Azure Kubernetes sono un servizio completamente gestito. I vantaggi della creazione di un cluster Flink in HDInsight nel servizio Azure Kubernetes sono elencati qui.

Funzionalità Descrizione
Facilità di creazione È possibile creare un nuovo cluster Flink in HDInsight in pochi minuti usando il portale di Azure, Azure PowerShell o l'SDK. Vedere Introduzione al cluster Apache Flink in HDInsight nel servizio Azure Kubernetes.
Semplicità di utilizzo I cluster Flink in HDInsight nel servizio Azure Kubernetes includono la gestione della configurazione basata sul portale e il ridimensionamento. Oltre a questo con l'API di gestione dei processi, si usa l'API REST o portale di Azure per la gestione dei processi.
API REST I cluster Flink in HDInsight nel servizio Azure Kubernetes includono l'API di gestione dei processi, un metodo di invio di processi Flink basato sull'API REST per inviare e monitorare in remoto i processi in portale di Azure.
Tipo di distribuzione Flink può eseguire applicazioni in modalità sessione o in modalità applicazione. Attualmente HDInsight nel servizio Azure Kubernetes supporta solo i cluster di sessione. È possibile eseguire più processi Flink in un cluster di sessione. La modalità app è disponibile nella roadmap per HDInsight nei cluster del servizio Azure Kubernetes
Supporto per metastore I cluster Flink in HDInsight nel servizio Azure Kubernetes possono supportare cataloghi con Metastore Hive in formati di file aperti diversi con checkpoint remoti ad Azure Data Lake Archiviazione Gen2.
Supporto per l'archiviazione di Azure I cluster Flink in HDInsight possono usare Azure Data Lake Archiviazione Gen2 come sink di file. Per altre informazioni su Data Lake Storage Gen2, vedere Azure Data Lake Storage Gen2.
Integrazione con servizi di Azure Il cluster Flink in HDInsight nel servizio Azure Kubernetes include un'integrazione con Kafka insieme a Hub eventi di Azure e Azure HDInsight. È possibile compilare applicazioni di streaming usando Hub eventi o HDInsight.
Adattabilità HDInsight nel servizio Azure Kubernetes consente di ridimensionare i nodi del cluster Flink in base alla pianificazione con la funzionalità di scalabilità automatica. Vedere Ridimensionare automaticamente Azure HDInsight nei cluster del servizio Azure Kubernetes.
Back-end dello stato HDInsight nel servizio Azure Kubernetes utilizza RocksDB come StateBackend predefinito. RocksDB è un archivio chiave-valore permanente che si può incorporare per l'archiviazione veloce.
Checkpoint Il checkpoint è abilitato in HDInsight nei cluster del servizio Azure Kubernetes per impostazione predefinita. Le impostazioni predefinite in HDInsight nel servizio Azure Kubernetes mantengono gli ultimi cinque checkpoint nell'archiviazione permanente. In caso di errore del processo, il processo può essere riavviato dal checkpoint più recente.
Checkpoint incrementali RocksDB supporta checkpoint incrementali. È consigliabile usare checkpoint incrementali per lo stato di grandi dimensioni, è necessario abilitare questa funzionalità manualmente. L'impostazione di un valore predefinito in flink-conf.yaml: state.backend.incremental: true abilita i checkpoint incrementali, a meno che l'applicazione non esegua l'override di questa impostazione nel codice. Questa istruzione è true per impostazione predefinita. In alternativa, è possibile configurare questo valore direttamente nel codice (sostituisce l'impostazione predefinita di configurazione). EmbeddedRocksDBStateBackend` backend = new `EmbeddedRocksDBStateBackend(true); Per impostazione predefinita, vengono mantenuti gli ultimi cinque checkpoint nella directory del checkpoint configurato. Questo valore può essere modificato modificando la configurazione nella sezione gestione della configurazione state.checkpoints.num-retained: 5

I cluster Apache Flink in HDInsight nel servizio Azure Kubernetes includono i componenti seguenti, che sono disponibili nei cluster per impostazione predefinita.

Fare riferimento alla Roadmap per le novità in arrivo.

Flink pianifica i processi usando tre componenti distribuiti, Job Manager, Task Manager e Job Client, che vengono impostati in un modello Leader-Follower.

Processo Flink: un processo o un programma Flink è costituito da più attività. Le attività sono l'unità di base dell'esecuzione in Flink. Ogni attività Flink ha più istanze a seconda del livello di parallelismo e ogni istanza viene eseguita su un TaskManager.

Job manager: il responsabile dei processi funge da utilità di pianificazione e pianifica le attività nei responsabili attività.

Gestione attività: i gestori attività sono dotati di uno o più slot per eseguire attività in parallelo.

Client processo: il client del processo comunica con il gestore processi per inviare processi Flink

Interfaccia utente Web Flink: Flink offre un'interfaccia utente Web per controllare, monitorare ed eseguire il debug delle applicazioni in esecuzione.

Diagramma del processo Flink che mostra come interagiscono il processo, il gestore processi, il gestore attività e il client processo.

Riferimento