Flink 集成和使用 Hive Metastore

1. AWS EMR 的 Flink 使用 Hive Metastore


想在 Flink 中使用 Hive Metastore 其实只需要将 Flink Hive Connector 以及 Hive Metastore 有关的 Jar 包部署到 `${FLINK_HOME}/lib` 下即可,稍后我们会介绍一下具体做法。但是,如果是 AWS EMR,会有所不同,主要是 EMR 中的默写包是改写过的,特别是和 Hive Metastore 的交互要多留心,因为 EMR 上还有另外一套 Metatstore:Glue Data Catalog,所以,简单的复制开源的 Jar 包可能会有问题,最好做法还是从 EMR 集群上拷贝本地带 `amzn` 后缀的 Jar 包。

EMR 官方文档给出了具体脚本:https://docs.aws.amazon.com/emr/latest/ReleaseGuide/flink-configure.html,以下是以 EMR 6.15 ( Flink 1.17.1)版本为例修改后的脚本:

sudo -u flink cp /usr/lib/hive/lib/antlr-runtime-3.5.2.jar /usr/lib/flink/lib 
sudo -u flink cp /usr/lib/hive/lib/hive-exec-3.1.3*.jar /usr/lib/flink/lib 
sudo -u flink cp /usr/lib/hive/lib/libfb303-0.9.3.jar /usr/lib/flink/lib 
sudo -u flink cp /usr/lib/flink/opt/flink-connector-hive_2.12-1.17.1-amzn-1.jar /usr/lib/flink/lib

部署好 Jar 包,如果是 Session 模式,需要重新启动新的 Session。在 Flink 中使用 Hive Metastore 的方法是:在 Flink Sql Client 中执行:

CREATE CATALOG hive WITH (
  'type' = 'hive',
  'hive-conf-dir' = '/etc/hive/conf'
);

USE CATALOG hive;

CREATE TABLE IF NOT EXISTS your_table (
...
);

2. 开源 Flink 使用 Hive Metastore


如果是开源 Flink,需要根据 [https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/table/hive/overview/#dependencies](https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/table/hive/overview/#dependencies) 提供的依赖项 (以 Flink 1.17.1 版本为例):
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-connector-hive_2.12</artifactId>
  <version>1.17.1</version>
</dependency>

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-table-api-java-bridge_2.12</artifactId>
  <version>1.17.1</version>
</dependency>

<!-- Hive Dependency -->
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-exec</artifactId>
    <version>3.1.3</version>
</dependency>

根据 《快速下载Jar包及其依赖Jar包的方法》 一文第2节介绍的方法制作出依赖包并部署于 ${FLINK_HOME}/lib 下即可。

参考:

https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/table/hive/hive_catalog/

相关推荐

  1. Flink 集成使用 Hive Metastore

    2024-02-01 08:14:03       38 阅读
  2. flink clipper搭配使用

    2024-02-01 08:14:03       9 阅读
  3. wsl内置Ubuntu使用 Dinky 与 Flink 集成

    2024-02-01 08:14:03       31 阅读
  4. .net core 6 集成使用 mongodb

    2024-02-01 08:14:03       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 08:14:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 08:14:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 08:14:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 08:14:03       20 阅读

热门阅读

  1. C++ 结构体的构造函数

    2024-02-01 08:14:03       33 阅读
  2. 面阵相机拍摄运动的物体怎样保证图像清晰

    2024-02-01 08:14:03       41 阅读
  3. TensorFlow2实战-系列教程14:Resnet实战2

    2024-02-01 08:14:03       44 阅读
  4. 3D Gaussian Splatting-实时辐射场渲染技术

    2024-02-01 08:14:03       34 阅读
  5. TensorFlow2实战-系列教程15:Resnet实战3

    2024-02-01 08:14:03       39 阅读
  6. CSS 中的 :is(), :where(), 和 :has() 选择器简介

    2024-02-01 08:14:03       33 阅读
  7. 使用certbot申请https通配符证书【阿里云篇】

    2024-02-01 08:14:03       38 阅读
  8. K8S网络

    K8S网络

    2024-02-01 08:14:03      33 阅读
  9. k8s学习-数据管理

    2024-02-01 08:14:03       29 阅读
  10. brpc之单例

    2024-02-01 08:14:03       33 阅读
  11. Qt之connect函数使用

    2024-02-01 08:14:03       30 阅读
  12. 原型和继承

    2024-02-01 08:14:03       33 阅读
  13. electron从入门到打包exe

    2024-02-01 08:14:03       44 阅读