历史版本30 :配置Apache Impala数据源 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink版本功能说明
3.5定时任务中,数据输入适配 Impala
4.0.1.1定时任务中,数据输出适配 Impala
4.1数据服务支持 Impala 数据源
4.1.8.3适配Impala 3.4、Impala 4.1
4.2.0.2

数据连接中新增「Kudu设置」:

  • 定时任务支持读写 Kudu 表

  • 管道任务支持写入 Kudu 

  • 数据服务支持发布 Kudu 数据

1.2 功能简介

FineDataLink 支持连接 Apache Impala,进行定时任务读取和写入数据服务发布数据管道写入

4.2.0.2 及之后版本,数据连接中新增Kudu设置」:

  • 定时任务支持读写 Kudu 表。

  • 管道任务支持写入 Kudu 表。

  • 数据服务支持发布 Kudu 数据。

2. 配置数据连接编辑

2.1 前提条件

1)详情请参见:前提条件

2)4.2.0.2 及之后版本,若想读取、写入 Kudu 表,需要使用 1.7.0 及以上版本的 Kudu。

3)定时任务&管道任务中,若想写入 Apache Impala,必须配置「Kudu地址」。

4)若需要使用 kudu 表,必须在%FineDataLink%/webapps/webroot/WEB-INF/lib 下放置两个 JAR ,如下图所示:

JAR.zip


2.2 版本和驱动

下载驱动,并将其上传至 FineDataLink,如何上传可参见:驱动管理 第 2 节

支持的数据库版本  驱动包链接

Impala 2.2

Impala 2.3

Impala 2.8

Impala 2.9

Impala 2.10

Impala 3.4

Impala 4.1


ImpalaJDBC41.zip



Impala 2.10 kudu1.5

  


ClouderaImpalaJDBC41_2.5.43.rar



2.3 收集连接信息

在连接数据库之前,请收集以下信息:

  • 数据库所在服务器的 IP 地址和端口号。

  • 数据库的名称。

  • 若是用户名密码认证,需要收集用户名和密码;若是 Kerberos 认证,需要收集客户端 principal 和 keytab 密钥路径。

  • 4.2.0.2 及之后版本,若需要读取或写入 Kudu 表,需要准备 Kudu 地址。

2.4 具体连接步骤

创建数据连接步骤请参见:创建并管理数据源

需注意:

配置数据连接时,驱动需要切换为「自定义」,换为本文 2.2 节的驱动。

1732179219154922.png

各设置项说明如下表所示:

设置项
说明
认证方式
支持 Kerberos 认证,Kerberos 认证方式详情可参见:数据连接 Kerberos 认证
Kudu 地址

4.2.0.2 及之后版本支持该设置项,定时任务&管道任务中,若想写入 Apache Impala,必须配置「Kudu地址」

定 Kudu 的 Master 地址,格式为 hostname:port,如果有多个 Master,用逗号隔开

注:Kudu 地址里不能配置 IP,要配置 hostname 才可以正常连接。

在配置 Kudu 地址前,需要在 FineDataLink 所在服务器的系统 hosts 文件里,为所有 Kudu 服务器配置 hostname 和 IP 的对应关系。

  • 如果 FDL 所在服务器是 Windows,在C:\Windows\System32\drivers\etc的hosts文件中添加对应的映射关系

  • 如果 FDL 所在服务器 Linux,在/etc/hosts文件里,添加对应的映射关系

注:如果是运维平台部署的FineDataLink,host 设置是通过运维平台的开发者模式进行配置,详情参见:host设置

文件里的映射配置示例:

配置数据连接,填写 host 映射后的内容:

注:kudu 不支持修改字段类型。


3. 使用数据源编辑

3.1 数据开发-定时任务

1)定时任务中,支持读取和写入 Apache Impala,若写入 Apache Impala,需要在数据连接中配置「Kudu地址」。

注:写入 Kudu表时,若写入方式为「清空目标表,再写入数据」且清表方式为 TRUNCATE 时,处理逻辑为:先执行删表后建表,再写入数据,且会有删除后无法重新建表的风险。

1732189687188649.png

2)定时任务中写入 Apache Impala 时,目标表若选择已存在表,会校验该表是不是 Kudu 表,若不是,不允许写入。

3)定时任务中写入 Apache Impala 时,不支持设置逻辑主键,必须标记物理主键。

4)定时任务中支持读写 Kudu 分区表:

  • 目标表为已存在表时,点击查看分区键设置按钮,可查看具体的分区键设置。

  • 目标表为自动建表时,配置物理主键后,支持配置分区键。如下图所示:

1732190825604795.png

各设置项说明如下表所示:

设置项
说明
分区方式

支持两种:范围分区、哈希分区

支持同时指定范围分区和哈希分区,此时用户只需要将两个分区方式都设置即可

分区配置-范围分区
设置项
说明
分区字段

下拉框只显示已配置映射且为主键的字段;若某字段被哈希分区选择,则禁用并提

支持选择多个分区字段,选择多个分区字段时,分区配置中只支持指定具体的取数方式

18.png

分区配置

支持两种方式:指定范围、指定具体

17.png

支持添加多个范围分区;可同时指定范围和具体值

分区配置-哈希分区可配置多组哈希分

设置项
说明
分区字段只显示已配置映射且为主键的字段;若某字段被范围分区选择,则禁用并提
分区配置允许为所有分区字段填写哈希分区数量(需填写整数,最小是2

每组分区配置,仅允许为分区字段指定一个分区数量

用户可以建立多组配置,多组配置使用的分区字段,不能重复

分区键弹框配置完成后,将已选的分区字段标记在字段映射中。

3.2 管道任务

4.2.0.2 及之后版本,管道任务支持写入 Impala 数据库的 Kudu 表,目标表若选择「已存在表」,会校验该表是不是 Kudu 表,若不是,不允许写入。

管道任务写入 Kudu 表时,不支持无主键同步。

管道任务的目标表为「自动建表」时,支持配置分区键,配置分区键的界面与功能说明与定时任务配置分区键相同,请参见本文 3.1 节内容。

3.3 数据服务

4.2.0.2 及之后版本,数据服务支持发布 Kudu 数据。

4. 注意事项编辑

1)问题描述:

在使用数据连接运行定时任务时,运行日志出现报错:建表 table owner must not be null or empty 的异常,如下图所示:

解决方案:

需要在创建数据连接位置  URL 后添加参数:;UseSasl=0;AuthMech=0;UID=impala

2)问题描述:

在数据连接时报错:ImpalaJDBCDRIVER 500051。

解决方案:

需要在创建数据连接位置  URL 后添加参数:;UseSasl=0;AuthMech=3;UID=impala;PWD=

3)问题描述:

在运行定时任务(使用 kudu 表)时出现报错,有如下端口没有放开:

解决方案:

impala-kudu 除了三个 master 节点外,还有 5 个 tserver 节点,也需要映射。供远程 rpc 调用,所以要将这 5 个端口:7050、7150、7250、7350、7450映射到外部。