Hadoop计算源用于绑定Dataphin项目空间与Hadoop项目,为Dataphin项目提供处理离线计算任务的计算源。如果Dataphin系统的计算引擎设置为Hadoop,则只有项目空间添加了Hadoop计算源,才支持规范建模、即席查询、Hive任务、通用脚本等功能。本文为您介绍如何新建Hadoop计算源。
前提条件
在您开始执行操作前,请确认已满足以下要求:
已设置Dataphin计算引擎为Hadoop。如何设置,请参见设置计算引擎为Hadoop。
确保Hive的用户具有以下的权限:
CREATEFUNCTION权限。
重要只有具备CREATEFUNCTION权限,才可以通过Dataphin在Hive上注册自定义函数。如果没有该权限,则不可以通过Dataphin创建自定义函数,也不能使用Dataphin的资产安全功能。
HDFS上UDF的存放目录的读、写、执行权限。
HDFS上UDF存放目录默认为
/tmp/dataphin
,您也可以修改HDFS上UDF存放目录。
若您需开启Impala任务进行快速查询和分析数据,请您提前在Hadoop集群上部署Impala(Impala v2.5及以上版本)。
在E-MapReduce5.x计算引擎下,若您需要使用基于OSS创建的Hive外部表进行离线集成。您需要进行相关配置后,才可以正常使用。配置说明,请参见使用基于OSS创建的Hive外部表进行离线集成。
Impala任务使用限制
若您需开启Impala任务进行快速查询和分析数据。在Dataphin中存在以下限制:
仅支持Impala v2.5及以上版本。
逻辑表暂不支持使用Impala引擎,但您可使用Impala查询逻辑表。
Dataphin的Impala数据源及计算源使用Impala的JDBC客户端连接Impala的JDBC端口(默认为21050),不支持Hive JDBC端口。若您需在Dataphin创建Impala任务或Impala数据源,请您咨询您的集群供应商是否支持Impala JDBC连接。
因Hive无法访问Kudu表,因此存在以下限制:
Hive SQL无法访问Kudu表,强制访问将导致SQL无法正常执行并报错。报错信息:
FAILED: RuntimeException java.lang.ClassNotFoundException: org.apache.Hadoop.hive.kudu.KuduInputFormat
。不支持建模的来源表为Kudu表,来源表为Kudu表时无法正常执行。
安全识别扫描任务使用Impala SQL进行Kudu表的扫描,若扫描任务所在的项目未开启Impala,则不支持Kudu表的扫描。
质量规则执行时若为Kudu表,将使用Impala SQL进行校验;若未开启Impala,则将导致校验任务失败报错。
标签平台不支持Kudu表作为离线视图表。
不支持获取Kudu表的存储量。
在资产详情中不支持获取Kudu表的存储量信息。
资源治理的空表治理项不支持Kudu表。
Kudu表不支持表大小、表分区大小质量规则。
Spark SQL服务使用限制
若您需开启Spark SQL服务。在Dataphin中存在以下限制:
目前仅支持Spark V3.x 版本。
Spark Thrift Server服务、Kyuubi服务或Livy服务需要提前在Hadoop集群上进行部署及开启服务。
Dataphin对Spark Call命令不做数据权限的校验,请注意谨慎开启和使用。
生产和开发计算源的Spark SQL配置中,服务配置需要保持一致。若不一致,则不可配置Spark SQL任务的Spark资源设置。
计算引擎与支持的服务类型
不同计算引擎支持的服务类型不同。详情如下
计算引擎类型 | Spark Thrift Server | Kyuubi | Livy | MapReduce(MRS) |
E-MapReduce3.x | 支持 | 支持 | 不支持 | 不支持 |
E-MapReduce5.x | 支持 | 支持 | 不支持 | 不支持 |
CDH 5.X、CDH 6.X | 不支持 | 支持 | 不支持 | 不支持 |
Cloudera Data Platform | 不支持 | 支持 | 支持 | 不支持 |
FusionInsight 8.X | 不支持 | 不支持 | 不支持 | 支持 |
亚信DP 5.3 | 支持 | 支持 | 不支持 | 不支持 |
操作步骤
在Dataphin首页,单击顶部菜单栏的规划。进入数仓规划页面。
按照下图操作指引,进入新建计算源页面。
在新建计算源页面,配置参数。
配置计算引擎源基本信息区域的参数。
参数
描述
计算源类型
默认为Hadoop。
计算源名称
命名规则如下:
只能包含汉字、数字、字母、下划线(_)和短划线(-)。
长度不能超过64字符。
计算源描述
对计算源的简单描述,128字符以内。
配置集群基本信息区域的参数。
参数
描述
集群存储
默认为计算设置配置的参数信息,不支持配置。非OSS-HDFS集群存储无该参数项。
集群存储根目录
默认为计算设置配置的参数信息,不支持配置。非OSS-HDFS集群存储无该参数项。
AccessKey ID、AccessKey Secret
集群存储类型为OSS-HDFS,需填写访问集群OSS的AccessKey ID和AccessKey Secret。查看AccessKey,请参见查看AccessKey。
重要此处填写的配置优先级高于core-site.xml中配置的AccessKey。
namenode
默认为初始化系统时配置的NameNode参数值,不支持修改。
说明OSS-HDFS集群存储类型,无namenode配置。
core-site.xml
上传Hadoop集群的core-site.xml配置文件。
hdfs-site.xml
上传Hadoop集群下HDFS的hdfs-site.xml配置文件。
说明OSS-HDFS集群存储类型,不支持上传hdfs-site.xml配置文件。
hive-site.xml
上传Hadoop集群下Hive的hive-site.xml配置文件。
其他配置文件
上传keytab文件,您可以在HDFS集群中的NameNode节点使用ipa-getkeytab命令获取keytab文件。
任务执行机器
配置MapReduce或Spark Jar的执行机器的连接地址。格式为
hostname:port
或ip:port
,port默认为22。MR日志路径
yarn环境参数,格式为
mapreduce.jobhistory.done-dir
。用于采集MapReduce的日志。MR日志Web服务
yarn环境变量参数,格式为
mapreduce.jobhistory.webapp.address
。用于实时采集MapReduce的日志。该参数配置的主机可通过对应地址对Hadoop历史作业情况进行查看。yarn Web服务
yarn环境变量参数,格式为
yarn.web-proxy.address
。用于分发Resource Manager访问请求。从Resourcemanager上点击正在执行的app,会跳转到yarn.web-proxy.address,这里展现正在执行的job信息,job执行结束后,会跳转到historyserver上;若没有配置yarn.web-proxy.address,则这个功能会集成到RM中。
yarn RM服务
yarn环境变量参数,格式为
yarn.resourcemanager.webapp.address
。用于访问Resource Manager信息。认证方式
支持无认证和Kerberos认证方式。
Kerberos是一种基于对称密钥技术的身份认证协议,可以为其他服务提供身份认证功能,且支持SSO(即客户端身份认证后,可以访问多个服务,例如HBase和HDFS)。
如果Hadoop集群有Kerberos认证,则需要开启集群Kerberos并上传Krb5认证文件或配置KDC Server地址:
重要当计算引擎类型为E-MapReduce 5.x时,仅支持krb5文件配置配置方式。
Krb5认证文件:需要上传Krb5文件进行Kerberos认证。
KDC Server地址:KDC服务器地址,辅助完成Kerberos认证。
说明支持配置多个KDC Server服务地址,使用英文分号(;)分割。
配置HDFS连接信息区域参数。
参数
描述
执行用户名、密码
登录计算执行机器用户名和密码,用于执行MapReduce任务、读取写入HDFS存储等。
重要请确保有提交MapReduce任务的权限。
认证方式
支持无认证和Kerberos。
说明集群存储为OSS-HDFS时,不支持配置HDFS认证方式。将默认使用core-site.xml文件中的AccessKey。
如果Hadoop集群有Kerberos认证,则需要开启HDFS Kerberos并上传Keytab File认证文件与配置Principal。
Keytab File:上传keytab文件,您可以在HDFS Server上获取keytab文件。
Principal:填写HDFS Keytab File文件对应的Kerberos认证用户名。
HDFS User
Kerberos关闭时可填写。指定文件上传的用户名,如果没有填写,则默认为执行用户名。
生产任务默认任务队列
填写Yarn资源队列,生产环境手动及周期性任务运行使用该Yarn队列。
其他任务队列
填写Yarn资源队列,其他任务如即席查询、数据预览、JDBC Driver访问使用该Yarn队列。
任务优先级队列
支持使用生产任务默认队列或自定义。
Dataphin在调度Hive SQL任务时会根据任务的优先级将任务发送到相应的队列执行。优先级包括最高优先级、高优先级、中优先级、低优先级、最低优先级。
Hive的执行引擎设置为Tez或Spark时,必须设置不同的优先级队列,任务的优先级设置才可生效。
说明日、小时调度逻辑表任务默认使用中优先级任务队列。
年、月调度逻辑表任务默认使用低优先级任务队列。
配置Hive计算引擎配置信息区域的参数。
参数
描述
JDBC URL
支持配置以下三种连接地址:
Hive Server的连接地址,格式为
jdbc:hive://{连接地址}:{端口}/{数据库名称}
。ZooKeeper的连接地址。例如
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
。开启Kerberos的连接地址,格式为
jdbc:hive2://{连接地址}:{端口}/{数据库名称};principal=hive/_HOST@xx.com
。
认证方式
支持无认证、LDAP和Kerberos认证方式。
无认证:无认证方式需填写Hive服务的用户名。
LDAP:LDAP认证方式需填写Hive服务的用户名和密码。
说明无认证和LDAP方式所填写的用户须确保具备任务的执行权限,以保证任务的正常执行。
Kerberos:如果Hadoop集群有Kerberos认证,则需要开启Hive Kerberos并上传Keytab File认证文件与配置Principal。
Keytab File:上传keytab文件,您可以在Hive Server上获取keytab文件。
Principal:填写Hive Keytab File文件对应的Kerberos认证用户名。
执行引擎
默认:绑定该计算源的项目下的任务(包括逻辑表任务)默认使用该执行引擎。
自定义:选择其他计算引擎类型。
配置Hive元数据连接信息区域的参数。
元数据获取方式:支持元数据库、HMS、DLF三种源数据获取方式。获取方式不同,所需配置信息不同。
元数据库获取方式
参数
描述
数据库类型
根据集群中使用的元数据库类型,选择数据库。Dataphin支持选择MySQL。
支持MySQL的版本包括MySQL 5.1.43、MYSQL 5.6/5.7和MySQL 8版本。
JDBC URL
填写目标数据库的JDBC连接地址。例如:
MySQL:格式为
jdbc:mysql://{连接地址}[,failoverhost...]{端口}/{数据库名称} [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
。用户名、密码
填写登录元数据库的用户名和密码。
HMS获取方式
参数
说明
认证方式
HMS获取方式支持无认证、LDAP、Kerberos三种认证方式。Kerberos认证方式需上传Keytab File文件及配置Principal。
DLF获取方式
重要DLF获取方式仅支持计算设置为E-MapReduce5.x Hadoop的集群。
使用DLF方式获取元数据,请先在配置文件中上传hive-site.xml配置文件。
参数
说明
Endpoint
填写集群在DLF数据中心所在地域的Endpoint。如何获取,请参见DLF Region和Endpoint对照表。
AccessKey ID、AccessKey Secret
填写集群所在账号的AccessKey ID和AccessKey Secret。
您可在用户信息管理页面,获取账号的AccessKey ID和AccessKey Secret。
配置Spark Jar服务配置区域的参数。
参数
描述
Spark任务支持
如果Hadoop集群有部署Spark,则支持开启Spark Jar任务支持。
执行用户名、密码
填写登录计算执行机器用户名、密码。
重要已开通提交MapReduce任务的权限。
认证方式
支持无认证或Kerberos认证方式。
如果Hadoop集群有Kerberos认证,则需要开启Spark Kerberos并上传Keytab File认证文件与配置Principal。
Keytab File:上传keytab文件,您可以在Spark Server上获取keytab文件。
Principal:填写Spark Keytab File文件对应的Kerberos认证用户名。
配置Spark SQL服务配置区域的参数。
参数
描述
Spark SQL任务
如果Hadoop集群有部署Spark,则支持开启Spark SQL任务。
Spark版本
目前仅支持3.x。
服务类型
选择Spark JDBC访问的目标服务器类型。不同计算引擎支持的服务类型不同。更多信息,请参见计算引擎与支持的服务类型。
JDBC URL
Spark的JDBC URL地址。URL的database与Hive JDBC URL中指定的database需相同。
认证方式
支持无认证、LDAP和Kerberos认证方式。
无认证:无认证方式需填写Spark服务的用户名。
LDAP:LDAP认证方式需填写Spark服务的用户名和密码。
说明无认证和LDAP方式所填写的用户须确保具备任务的执行权限,以保证任务的正常执行。
Kerberos:如果Hadoop集群有Kerberos认证,则需要开启Spark Kerberos并上传Keytab File认证文件与配置Principal。
Keytab File:上传keytab文件,您可以在Spark Server上获取keytab文件。
Principal:填写Spark Keytab File文件对应的Kerberos认证用户名。
SQL任务队列设置
不同服务类型使用不同的任务SQL任务队列。详情如下:
Spark Thrift Server:不支持设置任务队列。
Kyuubi:使用HDFS连接信息的优先级队列设置,仅当Kyuubi使用Yarn作为资源调度时生效,生产任务使用Connection共享级别。
Livy:使用HDFS连接信息的优先级队列设置,仅当Livy使用Yarn作为资源调度时生效,即席查询及生产任务均使用新的Connection的执行。
MapReduce(MRS):使用HDFS连接信息的优先级队列设置。
配置Impala任务配置信息区域的参数。
参数
描述
Impala任务
如果Hadoop集群有部署Impala,则支持开启mpala任务。
JDBC URL
请输入Impala的JDBC连接地址。如
jdbc:Impala://host:port/database
。重要JDBC URL中的Database需要与Hive JDBC中的Database保持一致。
认证方式
支持无认证、LDAP、Kerberos认证方式。
无认证:无认证方式需填写Impala用户名。
LDAP:LDAP认证方式需填写Impala的用户名和密码。
Kerberos:Kerberos认证方式需上传Keytab File认证文件与配置Principal。
开发任务请求池
请输入用于开发任务的Impala请求池(request pool)名称。
周期任务请求池
请输入用于周期任务的Impala请求池(request pool)名称。
优先级任务队列
支持采取周期任务默认队列和自定义。
Dataphin在调度Impala SQL任务时会根据任务的优先级将任务发送到相应的队列执行。优先级包括最高优先级、高优先级、中优先级、低优先级、最低优先级。
自定义优先级任务队列时,日调度逻辑表任务默认使用中优先级任务队列;年、月调度逻辑表任务默认使用低优先级任务队列。
单击测试连接,测试连接的计算源。
测试连接成功后,单击提交。
后续步骤
完成创建Hadoop计算源后,即可为项目绑定Hadoop计算源,请参见创建通用项目。