通过创建Hive数据源能够实现Dataphin读取Hive的业务数据或向Hive写入数据。本文为您介绍如何创建Hive数据源。
背景信息
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。Hive用于转化HQL或SQL语句为MapReduce、Tez等程序。如果您使用的是Hive,在对接Dataphin进行数据开发或将Dataphin的数据写入至Hive的场景中,您需要先完成Hive数据源的创建。
使用限制
在E-MapReduce5.x Hadoop计算引擎下,若您需要使用基于OSS创建的Hive外部表进行离线集成。您需要进行相关配置后才可以正常使用。配置说明,请参见使用基于OSS创建的Hive外部表进行离线集成。
使用Hive数据源作为集成的输入输出组件时,请确认Dataphin的IP地址已在Hive的网络白名单中,以确保Dataphin能够访问Hive中的数据。
请确保Dataphin的应用集群与调度集群与Hive服务、HDFS的NameNode(包括webUI、IPC)和DataNode、KDC Server、元数据库或Hive Meta Store、Zookeeper的连通性。
权限说明
仅支持具备新建数据源权限点的自定义全局角色和超级管理员、数据源管理员、板块架构师、项目管理员角色创建数据源。
操作步骤
在Dataphin首页顶部菜单栏中,选择管理中心 > 数据源管理。
在数据源页面,单击+新建数据源。
在新建数据源对话框的大数据存储区域,选择Hive。
如果您最近使用过Hive,也可以在最近使用区域选择Hive。同时,您也可以在搜索框中,输入Hive的关键词,快速筛选。
在新建Hive数据源对话框中,配置数据源连接参数。
Hive数据源配置参数中,集成配置是为了支持数据集成,实时研发配置是为了支持实时研发的场景,而元数据库配置是基础的配置,用来获取元数据。
说明通常情况下,生产数据源和开发数据源需配置为非同一个数据源,以实现开发数据源与生产数据源的环境隔离,降低开发数据源对生产数据源的影响。但Dataphin也支持配置成同一个数据源,即相同参数值。
Hive数据源基本信息配置
参数
描述
数据源名称
填写数据源名称。命名规则如下:
只能包含中文、英文字母大小写、数字、下划线(_)或短划线(-)。
长度不能超过64个字符。
数据源编码
配置数据源编码后,您可以在Flink_SQL任务中通过
数据源编码.表名称
或数据源编码.schema.表名称
的格式引用数据源中的表;如果需要根据所处环境自动访问对应环境的数据源,请通过${数据源编码}.table
或${数据源编码}.schema.table
的变量格式访问。更多信息,请参见Dataphin数据源表开发方式。重要数据源编码配置成功后不支持修改。
版本
选择Hive数据源的版本。Dataphin支持以下版本:
CDH5.x Hive 1.1.0
EMR3.x Hive 2.3.5
EMR5.x 3.1.x
CDH6.x Hive 2.1.1
FusionInsight 8.x Hive 3.1.0
CDP7.x Hive 3.1.3
亚信DP5.x Hive 3.1.0。
数据源描述
对数据源的简单描述,128个字符以内。
开启模块
集成:开启后,Hive数据源可用于数据集成。
实时研发:开启后,Hive数据源可用于实时研发。
说明仅CDH6.x Hive 2.1.1、CDP7.x Hive 3.1.3、亚信DP5.x Hive 3.1.0版本支持开启实时研发。
数据湖表格式
选择开启或关闭数据湖表格式,默认为关闭。开启后可选择表格式,目前仅支持Hudi。
说明仅当版本选择为CDP7.x Hive3.1.3时,支持配置此项。
数据源配置
选择数据源的配置环境:
如果业务数据源区分生产数据源和开发数据源,则选择生产+开发数据源。
如果业务数据源不区分生产数据源和开发数据源,则选择生产数据源。
标签
您可根据标签给数据源进行分类打标,如何创建标签,请参见数据源管理标签。
Hive配置
说明若您的数据源配置选择生产+开发数据源,则需配置生产+开发数据源的连接信息。如果您的数据源配置为生产数据源,仅需配置生产数据源的连接信息。
元数据获取方式:支持元数据库、HMS、DLF三种源数据获取方式。获取方式不同,所需配置信息不同。
元数据库获取方式
说明开启模块仅勾选实时研发时,元数据获取方式仅支持元数据库。
参数
说明
数据库类型
请根据集群中使用的元数据库类型,选择对应的数据库类型。Dataphin支持选择MySQL。MySQL数据库类型支持MySQL 5.1.43、MySQL 5.6/5.7和MySQL 8版本。
JDBC URL
填写目标数据库的JDBC连接地址。连接地址格式为
jdbc:mysql://host:port/dbname
。用户名、密码
填写登录Hive的用户名和密码。
Hive JDBC URL
填写Hive的JDBC连接地址。支持配置以下三种类型的连接地址:
Hive Server:连接地址格式为
jdbc:hive://host:port/dbname
。ZooKeeper:例如
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
。Hive已开启Kerberos:连接地址格式为
jdbc:hive2://host:port/dbname;principal=hive/_HOST@xx.com
。
HMS获取方式
参数
说明
认证方式
HMS获取方式支持无认证、LDAP、Kerberos三种认证方式。Kerberos认证方式需上传Keytab File文件及配置Principal。
hive-site.xml
上传Hive的hive-site.xml配置文件。
说明若开启实时研发,则实时研发中也将复用该配置文件。
Hive JDBC URL
填写Hive的JDBC连接地址。支持配置以下三种类型的连接地址:
Hive Server:连接地址格式为
jdbc:hive://host:port/dbname
。ZooKeeper:例如
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
。Hive已开启Kerberos:连接地址格式为
jdbc:hive2://host:port/dbname;principal=hive/_HOST@xx.com
。
DLF获取方式
重要DLF获取方式仅支持E-MapReduce5.x Hadoop5.x Hive 3.1.x版本。
参数
说明
Endpoint
填写集群在DLF数据中心所在地域的Endpoint。如何获取,请参见DLF Region和Endpoint对照表。
AccessKey ID、AccessKey Secret
填写集群所在账号的AccessKey ID和AccessKey Secret。
您可在用户信息管理页面,获取账号的AccessKey ID和AccessKey Secret。
hive-site.xml
上传Hive的hive-site.xml配置文件。
说明若开启实时研发,则实时研发中也将复用该配置文件。
Hive JDBC URL
填写Hive的JDBC连接地址。支持配置以下三种类型的连接地址:
Hive Server:连接地址格式为
jdbc:hive://host:port/dbname
。ZooKeeper:例如
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
。Hive已开启Kerberos:连接地址格式为
jdbc:hive2://host:port/dbname;principal=hive/_HOST@xx.com
。
数据湖配置-Hudi配置
说明仅当开启数据湖表格式,且表格式选择为Hudi时,支持数据湖配置-Hudi配置。
存储路径:输入HDFS的存储路径。
集成配置
支持HDFS、OSS-HDFS集群存储两种方式。存储方式不同,所需配置信息不同。OSS-HDFS存储方式仅支持E-MapReduce5.x Hadoop集群。
HDFS集群存储
参数
描述
NameNode
NameNode是HDFS集群中元数据的管理者,单击新增,在新增NameNode对话框,配置NameNode节点信息。
Web UI Port:访问Hadoop集群中各个组件的Web界面的端口。
IPC Port:进程间通信(IPC)的端口。
Web UI Port和IPC Port在CDH5环境下默认是
50070
和8020
,您可根据实际情况填写对应的端口。说明Web UI Port和IPC Port其中一个填写正确时,可以正常完成测试连接。
配置文件
上传Hadoop的配置文件
hdfs-site.xml
和core-site.xml
,配置文件可在Hadoop集群导出。开启Kerberos
Kerberos是一种基于对称密钥技术的身份认证协议,可以为其他服务提供身份认证功能,且支持SSO(即客户端身份认证后,可以访问多个服务,例如HBase和HDFS)。
如果Hadoop集群有Kerberos认证,则需要完成以下配置。
Kerberos配置方式
KDC Server:KDC服务器地址,辅助完成Kerberos认证。
说明支持配置多个KDC Server服务地址,使用英文逗号(,)分割。
Krb5文件配置:需要上传Krb5文件进行Kerberos认证。
HDFS配置
HDFS Keytab File:上传keytab认证文件,您可以在HDFS Server上获取keytab文件。
HDFS Principal:填写HDFS Keytab File文件对应的Principal名,例如
xxx/hdfsclient@xxx.xxx
。
Hive配置
JDBC URL:填写Hive的JDBC连接地址。支持配置以下三种连接地址:
Hive Server的连接地址,格式为
jdbc:hive://host:port/dbname
。ZooKeeper的连接地址。例如
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
。开启Kerberos的连接地址,格式为
jdbc:hive2://host:port/dbname;principal=hive/_HOST@xx.com
。
Hive Keytab File:上传keytab认证文件,您可以在Hive Server上获取keytab文件。
Hive Principal:填写Hive Keytab File文件对应的Principal名,例如
xxx/hdfsclient@xxx.xxx
。
关闭Kerberos
如果Hadoop集群无Kerberos认证,则需要完成以下配置。
JDBC URL:填写Hive的JDBC连接地址。支持配置以下三种连接地址:
Hive Server的连接地址,格式为
jdbc:hive://hodt:port/dbname
。ZooKeeper的连接地址。例如
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
。开启Kerberos的连接地址,格式为
jdbc:hive2://host:port/dbname;principal=hive/_HOST@xx.com
。
用户名、密码:填写登录Hive用户名和密码。
说明为保证任务正常运行,需确保所填写的用户有访问Hive数据的权限。
OSS-HDFS集群存储
参数
描述
集群存储
可以通过以下方式查看集群存储类型。
未创建集群:可以通过E-MapReduce5.x Hadoop集群创建页面查看所创建的集群存储类型。如下图所示:
已创建集群:可以通过E-MapReduce5.x Hadoop集群的详情页查看所创建的集群存储类型。如下图所示:
集群存储根目录
填写集群存储根目录。可以通过查看E-MapReduce5.x Hadoop集群信息获取进行。如下图所示:
重要若填写的路径中包括Endpoint,则Dataphin默认使用该Endpoint;若不包含,则使用core-site.xml中配置的Bucket级别的Endpoint;若未配置Bucket级别的Endpoint,则使用core-site.xml中的全局Endpoint。更多信息。请参见阿里云OSS-HDFS服务(JindoFS 服务)Endpoint配置。
配置文件
上传集群的
core-site.xml
和hivemetastore-site.xml
配置文件,配置文件可在Hadoop集群导出。AccessKey ID、AccessKey Secret
填写访问集群OSS的AccessKey ID和AccessKey Secret。查看AccessKey,请参见查看AccessKey。
重要此处填写的配置优先级高于core-site.xml中配置的AccessKey。
开启Kerberos
Kerberos是一种基于对称密钥技术的身份认证协议,可以为其他服务提供身份认证功能,且支持SSO(即客户端身份认证后,可以访问多个服务,例如HBase和HDFS)。
如果Hadoop集群有Kerberos认证,则需要完成以下配置。
Kerberos配置方式
Krb5文件配置:需要上传Krb5文件进行Kerberos认证。
Hive配置
JDBC URL:填写Hive的JDBC连接地址。支持配置以下三种连接地址:
Hive Server的连接地址,格式为
jdbc:hive://host:port/dbname
。ZooKeeper的连接地址。例如
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
。开启Kerberos的连接地址,格式为
jdbc:hive2://host:port/dbname;principal=hive/_HOST@xx.com
。
Hive Keytab File:上传keytab认证文件,您可以在Hive Server上获取keytab文件。
Hive Principal:填写Hive Keytab File文件对应的Principal名,例如
xxx/hdfsclient@xxx.xxx
。
关闭Kerberos
如果Hadoop集群无Kerberos认证,则需要完成以下配置。
JDBC URL:填写Hive的JDBC连接地址。支持配置以下三种连接地址:
Hive Server的连接地址,格式为
jdbc:hive://hodt:port/dbname
。ZooKeeper的连接地址。例如
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
。开启Kerberos的连接地址,格式为
jdbc:hive2://host:port/dbname;principal=hive/_HOST@xx.com
。
用户名、密码:填写登录Hive用户名和密码。
说明为保证任务正常运行,需确保所填写的用户有访问Hive数据的权限。
实时研发配置
数据源配置选择生产+开发数据源,开启模块选择实时研发,则实时研发的配置页面如下图所示。数据源配置中选择生产数据源,则仅展示生产数据源的实时研发配置。
按照页面提示,上传
hive-site.xml
文件。
单击测试连接,测试数据源是否可以和Dataphin进行正常的连通。
测试成功后,单击确定。