国内最专业的IT技术学习网

UI设计

当前位置:主页 > UI设计 >

如何在Flink 1.9中使用 Hive?

发布时间:2019/09/05标签:   版本    点击量:

原标题:如何在Flink 1.9中使用 Hive?
Apache Flink 从 1.9.0 版本开端增添了与 Hive 集成的功效,用户能够经过 Flink 来拜访 Hive 的元数据,以及读写 Hive 中的表。本文将重要从名目的计划架构、最新停顿、应用阐明等方面来先容这一功效。如何在Flink 1.9中使用 Hive?Flink on Hive 先容SQL 是大数据范畴中的主要利用场景,为了完美 Flink 的生态,挖掘 Flink 在批处置方面的后劲,咱们决议加强 FlinkSQL 的功效,从而让用户可能经过 Flink 实现更多的义务。Hive 是大数据范畴最早呈现的 SQL 引擎,进展至今有着丰盛的功效和普遍的用户基本。以后呈现的 SQL 引擎,如 Spark SQL、Impala 等,都在必定水平上供给了与 Hive 集成的功效,从而便利用户应用现有的数据堆栈、停止功课迁徙等。因而咱们以为供给与 Hive 交互的才能关于 FlinkSQL 也长短常主要的。计划架构与 Hive 集成重要包括了元数据和现实表数据的拜访,因而咱们会从这两方面先容一下该名目的架构。元数据为了拜访内部体系的元数据,Flink 供给了 ExternalCatalog 的观点。然而现在 ExternalCatalog 的界说十分不完全,基础处于弗成用的状况。因而,咱们提出了一套全新的 Catalog 接口来代替现有的 ExternalCatalog。新的 Catalog 可能支撑数据库、表、分区等多种元数据工具;同意在一个用户 Session 中保护多个 Catalog 实例,从而同时拜访多个内部体系;而且 Catalog 以可插拔的方法接入 Flink,同意用户供给自界说的完成。下图展现了新的 Catalog API 的整体架构。如何在 Flink 1.9 中使用 Hive?创立 TableEnvironment 的时间会同时创立一个 CatalogManager,担任治理差别的 Catalog 实例。TableEnvironment 经过 Catalog 来为 Table API 和 SQL Client 用户供给元数据效劳。现在 Catalog 有两个完成,GenericInMemoryCatalog 和 HiveCatalog。此中 GenericInMemoryCatalog 坚持了原有的 Flink 元数据治理机制,将全部元数据保留在内存中。而 HiveCatalog 会与一个 Hive Metastore 的实例衔接,供给元数据长久化的才能。要应用 Flink 与 Hive 停止交互,用户须要设置一个 HiveCatalog,并经过 HiveCatalog 拜访 Hive 中的元数据。另一方面,HiveCatalog 也能够用来处置 Flink 本身的元数据,在这类场景下,HiveCatalog 仅将 Hive Metastore 作为长久化存储应用,写入 Hive Metastore 中的元数据并纷歧定是 Hive 所支撑的格局。一个 HiveCatalog 实例能够同时支撑这两种形式,用户无需为治理 Hive 和 Flink 的元数据创立差别的实例。别的,咱们计划了 HiveShim 来支撑差别版本的 Hive Metastore。现在支撑的 Hive 版本包含 2.3.4 和 1.2.1。表数据咱们供给了 Hive Data Connector 来读写 Hive 的表数据。Hive Data Connector 尽能够的复用了 Hive 自身的 Input/Output Format 和 SerDe 等类,如许做的利益一方面是增加了代码反复,更主要的是能够最大水平的坚持与 Hive 的兼容,即 Flink 写入的数据 Hive 能够畸形读取,而且反之亦然。与 HiveCatalog 相似的,Hive Data Connector 现在支撑的 Hive 版本也是 2.3.4 和 1.2.1。名目停顿Flink 与 Hive 集成的功效会在 1.9.0 版本中作为试勤奋能公布,用户能够经过 Table API 或许 SQL Client 的形式与 Hive 停止交互。上面列出的是在 1.9.0 中曾经支撑的功效: 供给简略的 DDL 来读取 Hive 元数据,比方 show databases、show tables、describe table 等。 可经过 Catalog API 来修正 Hive 元数据,如 create table、drop table 等。 读取 Hive 数据,支撑分区表和非分区表。 写 Hive 数据,支撑非分区表。 支撑 Text、ORC、Parquet、SequenceFile 等文件格局。 支撑挪用用户在 Hive 中创立的 UDF。因为是试勤奋能,因而另有一些方面不敷完美,上面列出的是在 1.9.0 中缺失的功效: 不支撑INSERT OVERWRITE。 不支撑写分区表。 不支撑ACID表。 不支撑Bucket表。 不支撑View。局部数据范例不支撑,包含Decimal、Char、Varchar、Date、Time、Timestamp、Interval、Union等。怎样利用增加依靠应用 Flink 与 Hive 集成的功效,用户起首须要增加响应的依靠。假如是应用 SQL Client,则须要将依靠的 jar 增加到 Flink 的 lib 名目中;假如应用 Table API,则须要将响应的依靠增加到名目中(如pom.xml)。如上文所述,现在支撑的 Hive 版本包含 2.3.4 和 1.2.1,下表列出的是针对差别版本所需的依靠。

版权信息Copyright © IT技术教程 版权所有    ICP备案编号:鲁ICP备09013610号