Apache Flink 1.10 schließt Integration von Apache Hive ab

Beim Stream- und Batch-Processing bietet Flink ein verbessertes Speichermanagement und eine einfachere Konfiguration zur Anpassung an Deployment-Umgebungen.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 36 Beiträge
Von

Die Apache Flink Community hat Version 1.10.0 des Frameworks für Stream- und Batch-Processing vorgelegt. Mehr als 200 Entwickler haben zu dem Update beigetragen und über 1200 Issues abgearbeitet. Zu den wichtigsten Neuerungen zählen dabei die nun vollständige Integration von Apache Hive, Verbesserungen bei der Speicherkonfiguration mit TaskExecutor, eine engere Anbindung an Kubernetes sowie Support für Python User-Defined Functions (UDF) in der Table API/SQL.

Die in Flink 1.9 noch als Preview eingeführte Integration mit Apache Hive ist im aktuellen Release nun für den Produktiveinsatz freigegeben. Flink soll zu den meisten Hive-Versionen kompatibel sein, sodass Anwender Metadaten wie etwa Kafka Tables aus Flink per SQL DDL im Hive Metastore persistieren können. Auch der Aufruf von in Hive definierten UDFs ist dadurch möglich. Darüber hinaus lassen sich Hive-Tabellen von Flink auslesen und darin schreiben. Während Schreibzugriffe bisher auf unpartitionierte Tabellen beschränkt waren, erlauben die Syntax-Erweiterungen INSERT OVERWRITE und PARTITION nun auch Schreibvorgänge in statischen und dynamischen Hive-Partitionen. Dadurch wird es außerdem beim Lesen möglich, Partitionen zu beschneiden, um die zu scannende Datenmenge zu reduzieren und von höherer Leistung bei solchen Vorgängen zu profitieren.

Eine grundlegende Überarbeitung des Speichermodells und der Konfigurationslogik von TaskExecutor soll Flink-Anwendern nicht nur mehr Kontrolle beim Speichermanagement und damit eine bessere Ressourcenauslastung verschaffen, sondern auch die Anbindung an unterschiedliche Deployment-Umgebungen wie Yarn, Mesos und Kubernetes optimieren. Die Neuerungen betreffen unter anderen den Einsatz von RocksDBStateBackend. Um Flink-Nutzern künftig einen Wechsel zwischen Streaming- und Batch-Betrieb zu ermöglichen, ohne die Cluster-Konfiguration ändern zu müssen, ist Managed Memory nun stets off-heap – da Streaming-Jobs mit RocksDBStateBackend grundsätzlich darauf beschränkt sind.

Darüber hinaus lässt sich nun dank einer Out-of-the-Box-Konfiguration für RocksDB auch das Speicherkontingent für RocksDBStateBackend genauso leicht anpassen wie die Größe des Managed Memory – der bisher erforderliche manuelle Anpassungsaufwand soll dadurch entfallen. Flink ist nun außerdem in der Lage, den nativen Speicherverbrauch von RocksDB zu begrenzen, um insbesondere in containerisierten Umgebungen wie Kubernetes ein Überschreiten des Kontingents zu verhindern.

Apache Flink 1.10.0 vollzieht den ersten Schritt hin zu einer nativen Integration in Kubernetes. Analog zu den bestehenden Anbindungen an Yarn und Mesos soll die Active Kubernetes Integration (FLINK-9953) dem Ressourcen-Manager K8sResMngr eine native Kommunikation mit der Containerorchestrierung erlauben, wenn es darum geht, bei Bedarf neue Pods zu allokieren. Darüber hinaus sollen Anwender auf Namespaces zurückgreifen können, wenn sie neue Flink-Cluster in Multi-Tenant-Umgebungen anlegen. Die Active Kubernetes Integration steht vorläufig noch als Preview-Funktion zur Verfügung, wer die native Anbindung aber bereits testen möchte, findet auf der Projektwebsite eine Anleitung für das Setup.

Schematische Darstellung der Active Kubernetes Integration von Flink

(Bild: Apache Flink)

Mehr Details und ein kompletter Überblick aller Neuerungen lassen sich der offiziellen Ankündigung zu Flink 1.10.0 entnehmen. Das neue stabile Release steht ab sofort zum Download bereit. Anwendern sei vor dem Upgrade geraten, einen Blick in die Release Notes zu werfen, die auf relevante Änderungen gegenüber Flink 1.9 eingehen. (map)