历史版本36 :配置Hadoop Hive数据源 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:
icon提示:  4.0.29 之前版本,为保证写入性能,建议使用 Hadoop Hive (HDFS) 数据连接。


icon提示:
4.0.29 及之后版本,若只是读取 Hadoop Hive 数据库数据,新建数据连接时,无需配置「HDFS 设置」;若需要写入数据到 Hadoop Hive 数据库,需要配置「HDFS 设置」。

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本
功能变动
4.0.4.2-
4.0.29新建数据连接时,Hadoop Hive (HDFS) Hadoop Hive数据源,合并为Hadoop Hive
4.1.3

数据写入 Hive 数据库时,支持创建、写入分区

4.1.13.2
  • 「HDFS设置」支持配置高可用 HDFS 地址和 HDFS 用

  • 支持写入 Hive 压缩表

4.2.12.3 HDFS设置新增「OSS-HDFS」配置方式
4.2.12.4

HDFS 配置中:

  • 支持指定存放中间表的 HDFS 路

  • 支持配置扩展参数项

  • 认证方式支持 Kerberos

1.2 应用场景

Hadoop 是个很流行的分布式计算解决方案,Hive 是建立在 Hadoop 上的数据仓库基础构架。

FineDataLink 支持连接 Hadoop Hive ,进行定时任务读写

2. 配置数据连接编辑

2.1 前提条件

详情请参见:前提条件

2.2 版本和驱动

请根据数据库版本下载对应的驱动,并将其上传至 FineDataLink,如何上传可参见:驱动管理 2.1 节。

支持的数据库版本驱动包下载 日志jar下载
hive_1.1

Hadoop_Hive_1.2

hive2.3

hive2.1.2

hive2.1.1

hive3.3.1

请依据 Hive 版本自行获取驱动,推荐使用 Hive 社区打包的 hive-jdbc-standalone.jar

(帆软不提供驱动)

日志jar.rar

在上传驱动包时,需要解压「日志jar」文件和驱动一起上传至 FineDataLink

2.3 收集连接信息

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

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

  • 数据库的名称。

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

  • HDFS 文件系统地址(IP 地址和端口号)(若只是读取 Hadoop Hive 数据库中的数据,无需准备该信息;若需要向Hadoop Hive 数据库中写入数据,为保证写入性能,需要准备该信息)。注:同时需要保证 FineDataLink 所在服务器能访问 HDFS 文件系统端口,例如 HDFS 文件系统默认端口为 8020,且服务器开启了防火墙,则需要参考下文开放 8020 端口。

Windows 系统开放端口步骤请参见:Windows服务器设置出入站规则 

Linux 系统开放端口步骤请参见:Linux防火墙使用及配置

  • 若需要写入 Hive 压缩表,4.1.13.2 及之后的版本可以配置数据连接 URL,示例为:jdbc:hive2://192.168.101.119:10000/hive?hive.exec.compress.output=true;mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;hive.stats.autogather=false

2.4 具体连接步骤

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

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

部分设置项说明见下表:

1.png

2.4.1 基础配置

Hive「认证方式」可选择两种:用户名密码、Kerberos,说明见下表:

设置项
说明
用户名

用户名密码:输入数据库的用户名和密码

2.png

Kerberos

Kerberos 认证方式详情可参见:数据连接 Kerberos 认证

3.png

使用 Kerberos 认证需要注意以下事项:

  • 连接前请检查 /etc/hosts 中的机器名对应 IP 是否为局域网 IP

  • 检查 /etc/hostname 中机器名设置和 /etc/hosts 中是否配置一致

  • 检查 FineDataLink 所在机器 hosts 配置的 IP+ 机器名是否正确

  • 本地连接时需要配置 /etc/hosts 文件,添加远端映射:IP+机器名,例如:192.168.5.206  centos-phoenix

2.4.2 HDFS设置

HDFS 配置方式有两种:HDFS、OSS-HDFS(4.2.12.3 及之后版本新增),说明见下表:

注:若需要向 Hadoop Hive 数据库中写入数据,为保证写入性能,需要配置该设置项;若只是读取 Hadoop Hive 数据库中的数据,无需配置该设置项。

配置方式为「HDFS」时,设置项说明如下表:

6.jpg

设置项说明
HDFS 地址

为 Hadoop HDFS文件系统处于活跃状态的节点地

格式:hdfs://<hostname>:<port>/<path>

示例:hdfs://nn01:8020/user/

确定 HDFS 地址中 IP 和端口的方法请参见:确认HDFS地址中的IP和端口

4.1.13.2 以及之后的版本支持填写多个地址,多个地址用逗号隔开,例如:hdfs://ip1:port1,hdfs://ip2:port2,hdfs://ip3:port3

HDFS 认证方式

无认

当 Hive 的认证方式选择「用户名密码」时,支持配置 HDFS 用户,填写后,使用配置的用户名作为连接 HDFS 的用户;

如果留空,默认使用启动 Tomcat 时的服务器用户,连接 HDFS 进行读写

Kerberos(4.2.12.4 及之后版本新增)

配置项同 Hive 数据连接基础配置中的 Kerberos 配置,详情请参见上方表格;

允许 Hive 数据连接和 HDFS 连接配置不同的认证方式

HDFS装载路径可以选择:默认、自定义

默认时为 HDFS 根目录 /fdl

自定义填写路径时,需要从根目录开始

扩展参数项对 HDFS 做自定义参数配置
配置方式为 「OSS-HDFS」时,设置项说明如下表所示:

7.jpg

设置项
说明
OSS-HDFS地址

格式:oss://<BucketName>.<BucketEndpoint>/<path>

示例:oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/dir/

AccessKey ID

AccessKey Secret

AccessKey ID用于标识用户

AccessKey Secret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥

3. 使用数据源编辑

3.1 数据开发-定时任务

可以在数据同步数据转换中使用数据源进行数据读取和写入。

3.1.1 数据去向与映射-分区表

定时任务支持选择分区表作为数据去向,如下图所示:

详情请参见:读取、创建、写入分区表

51.png

定时任务自动建表支持指定分区键,如下图所示:

注:Hive 数据库不支持动态分区键的值为中文。

52.png

支持作为分区键的字段类型:

分类字段类型
Hive分区键支持的字段类型
  • 整数类型:如 tinyint、smallint、int、bigint。

  • 浮点数类型:如 float、double。

  • 字符串类型:如 string、varchar。

  • 日期类型:如 date、timestamp。

Hive分区键不支持的字段类型
  • 复杂类型:例如 array、map、struct 等,这些类型在 Hive 中不被支持作为分区键。

  • NULL 类型:Hive 不支持 NULL 作为分区键。

  • 集合类型:例如 set、list、tuple 等,这些类型在 Hive 中不被支持作为分区键。

  • 其他特定数据类型:例如 bit、decimal、binary 等,这些类型在 Hive 中也不被支持作为分区键。

  • 分区存在层级的关系,基于顺序,自动形成层级,第 1 个分区键为一级分区,第 2 个分区键为二级分区,以此类推,最多 8 级分区。

  • 若某个字段被定义为分区字段,其在字段映射里默认处于末尾。

3.1.2 数据去向与映射-存储格式

4.2.12.4 及之后版本,Hive 支持配置「存储格式」。

41.png

写入 Hive 数据库时:

1)若目标表为自动建表,支持的存储格式:「ORC」、「HOLODESK」、「PARQUET」。

2)若目标表为已存在表,不限制存储格式。

3)不同的文件格式支持不同的高级配置项,可以通过手动建表进行配置:

  • ORC:可以指定压缩类型、压缩快大小、行组级别索引数据量大小、创建行级别索引等

  • Textfile:可以指定行列分隔符、压缩格式等

  • Parquet:可以指定压缩类型、启用字典编码、每个页面大小、写入文件块大小等

4)若制定目标表文件存储格式必须为 Textfile 且数据中有默认行列分隔符时,会出现数据错位或一条数据被拆分成多条。建议通过建立 ORC 表来避免这种情况的发生。如果指定要用 Textfile 格式存储,建议通过手动建表时修改 Textfile 默认分隔符为数据中不会出现的字符。

3.1.2 写入方式

当选择的目标表是分区表(包含分区键),或自动建表时定义了分区键,写入方式新增「分区写入」设置项。如下图所示:

详情请参见:读取、创建、写入分区表

53.png

4. 兼容说明编辑

4.2.12.4 之前的版本,升级至 4.2.12.4 及之后的版本:

1)对于已存在的数据连接:

  • 当 Hive 是用户名密码认证时,HDFS 认证方式为无认证,HDFS 用户名与之前一致;

  • 当 Hive 是 Kerberos 认证时,HDFS 认证方式为 Kerberos 认证,配置项和其内容与 Hive 的 Kerberos 认证的配置保持一致;

  • HDFS 装载路径为默认值;

2)写入 Hive 选择自动建表的任务,历史版本自动建表的文件格式均为 Textfile;

3)写入 Hive 选择已存在表的任务,用户打开任务时,或者点击节点时获取表格式进行展示;