创建Hadoop计算源

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

支持

支持

不支持

不支持

操作步骤

  1. 在Dataphin首页,单击顶部菜单栏的规划。进入数仓规划页面。

  2. 按照下图操作指引,进入新建计算源页面。

    image..png

  3. 新建计算源页面,配置参数。

    1. 配置计算引擎源基本信息区域的参数。

      参数

      描述

      计算源类型

      默认为Hadoop

      计算源名称

      命名规则如下:

      • 只能包含汉字、数字、字母、下划线(_)和短划线(-)。

      • 长度不能超过64字符。

      计算源描述

      对计算源的简单描述,128字符以内。

    2. 配置集群基本信息区域的参数。

      参数

      描述

      集群存储

      默认为计算设置配置的参数信息,不支持配置。非OSS-HDFS集群存储无该参数项。

      集群存储根目录

      默认为计算设置配置的参数信息,不支持配置。非OSS-HDFS集群存储无该参数项。

      AccessKey IDAccessKey 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:portip: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认证。

        image..png

      • KDC Server地址:KDC服务器地址,辅助完成Kerberos认证。

        image..png

      说明

      支持配置多个KDC Server服务地址,使用英文分号(;)分割。

    3. 配置HDFS连接信息区域参数。

      参数

      描述

      执行用户名密码

      登录计算执行机器用户名和密码,用于执行MapReduce任务、读取写入HDFS存储等。

      重要

      请确保有提交MapReduce任务的权限。

      认证方式

      支持无认证Kerberos

      说明

      集群存储为OSS-HDFS时,不支持配置HDFS认证方式。将默认使用core-site.xml文件中的AccessKey。

      如果Hadoop集群有Kerberos认证,则需要开启HDFS Kerberos并上传Keytab File认证文件与配置Principal。

      image..png

      • 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时,必须设置不同的优先级队列,任务的优先级设置才可生效。

        说明
        • 日、小时调度逻辑表任务默认使用中优先级任务队列。

        • 年、月调度逻辑表任务默认使用低优先级任务队列。

    4. 配置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

      认证方式

      支持无认证LDAPKerberos认证方式。

      • 无认证:无认证方式需填写Hive服务的用户名。

      • LDAP:LDAP认证方式需填写Hive服务的用户名和密码。

        说明

        无认证和LDAP方式所填写的用户须确保具备任务的执行权限,以保证任务的正常执行。

      • Kerberos:如果Hadoop集群有Kerberos认证,则需要开启Hive Kerberos并上传Keytab File认证文件与配置Principal。

        image..png

        • Keytab File:上传keytab文件,您可以在Hive Server上获取keytab文件。

        • Principal:填写Hive Keytab File文件对应的Kerberos认证用户名。

      执行引擎

      • 默认:绑定该计算源的项目下的任务(包括逻辑表任务)默认使用该执行引擎。

      • 自定义:选择其他计算引擎类型。

    5. 配置Hive元数据连接信息区域的参数。

      元数据获取方式:支持元数据库HMSDLF三种源数据获取方式。获取方式不同,所需配置信息不同。

      • 元数据库获取方式

        参数

        描述

        数据库类型

        根据集群中使用的元数据库类型,选择数据库。Dataphin支持选择MySQL

        支持MySQL的版本包括MySQL 5.1.43MYSQL 5.6/5.7MySQL 8版本。

        JDBC URL

        填写目标数据库的JDBC连接地址。例如:

        MySQL:格式为jdbc:mysql://{连接地址}[,failoverhost...]{端口}/{数据库名称} [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...

        用户名密码

        填写登录元数据库的用户名和密码。

      • HMS获取方式

        参数

        说明

        认证方式

        HMS获取方式支持无认证LDAPKerberos三种认证方式Kerberos认证方式需上传Keytab File文件及配置Principal。

      • DLF获取方式

        重要
        • DLF获取方式仅支持计算设置为E-MapReduce5.x Hadoop的集群。

        • 使用DLF方式获取元数据,请先在配置文件中上传hive-site.xml配置文件。

        参数

        说明

        Endpoint

        填写集群在DLF数据中心所在地域的Endpoint。如何获取,请参见DLF Region和Endpoint对照表

        AccessKey IDAccessKey Secret

        填写集群所在账号的AccessKey ID和AccessKey Secret。

        您可在用户信息管理页面,获取账号的AccessKey ID和AccessKey Secret。

        image..png

    6. 配置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认证用户名。

    7. 配置Spark SQL服务配置区域的参数。

      参数

      描述

      Spark SQL任务

      如果Hadoop集群有部署Spark,则支持开启Spark SQL任务

      Spark版本

      目前仅支持3.x。

      服务类型

      选择Spark JDBC访问的目标服务器类型。不同计算引擎支持的服务类型不同。更多信息,请参见计算引擎与支持的服务类型

      JDBC URL

      Spark的JDBC URL地址。URL的database与Hive JDBC URL中指定的database需相同。

      认证方式

      支持无认证LDAPKerberos认证方式。

      • 无认证:无认证方式需填写Spark服务的用户名。

      • LDAP:LDAP认证方式需填写Spark服务的用户名和密码。

        说明

        无认证和LDAP方式所填写的用户须确保具备任务的执行权限,以保证任务的正常执行。

      • Kerberos:如果Hadoop集群有Kerberos认证,则需要开启Spark Kerberos并上传Keytab File认证文件与配置Principal。

        image..png

        • 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连接信息的优先级队列设置。

    8. 配置Impala任务配置信息区域的参数。

      参数

      描述

      Impala任务

      如果Hadoop集群有部署Impala,则支持开启mpala任务。

      JDBC URL

      请输入Impala的JDBC连接地址。如jdbc:Impala://host:port/database

      重要

      JDBC URL中的Database需要与Hive JDBC中的Database保持一致。

      认证方式

      支持无认证LDAPKerberos认证方式。

      • 无认证:无认证方式需填写Impala用户名。

      • LDAP:LDAP认证方式需填写Impala的用户名和密码。

      • Kerberos:Kerberos认证方式需上传Keytab File认证文件与配置Principal。

      开发任务请求池

      请输入用于开发任务的Impala请求池(request pool)名称。

      周期任务请求池

      请输入用于周期任务的Impala请求池(request pool)名称。

      优先级任务队列

      支持采取周期任务默认队列自定义

      • Dataphin在调度Impala SQL任务时会根据任务的优先级将任务发送到相应的队列执行。优先级包括最高优先级、高优先级、中优先级、低优先级、最低优先级。

      • 自定义优先级任务队列时,日调度逻辑表任务默认使用中优先级任务队列;年、月调度逻辑表任务默认使用低优先级任务队列。

  4. 单击测试连接,测试连接的计算源。

  5. 测试连接成功后,单击提交

后续步骤

完成创建Hadoop计算源后,即可为项目绑定Hadoop计算源,请参见创建通用项目