Hadoop 支持 - Teradata Data Mover

Teradata® Data Mover 用户指南

Product
Teradata Data Mover
Release Number
16.20
Published
2021 年 11 月
Language
中文 (简体)
Last Update
2021-12-02
dita:mapPath
zh-CN/wph1512683331242.ditamap
dita:ditavalPath
zh-CN/mpm1591127278842.ditaval
dita:id
B035-4101
Product Category
Analytical Ecosystem

Data Mover 支持在 Teradata Database 和 Hadoop 之间复制视图所返回的表和数据。您可以将视图数据复制到 Hadoop 表,但不支持将视图定义复制到 Hadoop。

Hadoop 组件

Data Mover 需要以下 Hadoop 服务:
服务 说明
hive 使用类似 SQL 的语言来访问数据的服务。Apache Hive 提供数据摘要和特定查询。Data Mover 支持使用 Hiveserver2 来运行查询,以在 Teradata 和 Hive 之间移动表。
仅支持 hive.server2.transport.mode 属性的 binary 值。
HttpFS 和 WebHDFS 提供 HTTP 网关以支持所有 HDFS 文件系统操作的 REST 服务。
WebHCAT 必须为 HCatalog 启用的 REST API 数据集成服务。用于收集 Hive 表 DDL。
Oozie 工作流计划程序系统,用于管理、提交和监控 Hadoop 作业。该服务用于运行 TDCH 作业。

实用程序

Data Mover 可以使用 TDCH 或 QueryGrid 在 Teradata 和 Hadoop 之间移动数据。
实用程序 说明
TDCH 提供一组 API 和工具以支持在产品的 Teradata 系统和 Hadoop 生态系统之间进行高性能并行双向数据移动的命令行连接器。有关详细信息,请参阅 Teradata Developer Exchange 上的 Teradata Connector for Hadoop
QueryGrid QueryGrid 是一款 Teradata 软件,可用于在 Teradata 和 Hadoop 之间导入和导出数据。在 Data Mover 中,必须将 QueryGrid T2H 指定为可供使用的外部服务器。
在 Data Mover 中,T2H 支持 QueryGrid 2.x Teradata Hadoop 连接器。
如果 TDCH 和 QueryGrid 都可用,Data Mover 将使用 QueryGrid。如果未指定任何外部服务器,Data Mover 将使用 TDCH。

将视图数据复制到 Hadoop 表时,Data Mover 使用的是 QueryGrid。TDCH 不支持复制视图数据。

JSON 支持

如果 Teradata 中的目标表具有 JSON 列类型,则只有当满足下列条件时才能将数据从 Hadoop 复制到 Teradata Database:
  • T2H 用于将数据从 Hadoop 复制到 Teradata。
  • 已在作业定义中指定外部服务器。

在 Teradata Database 15.10 或更高版本之间移动表时,Data Mover 支持使用 BSON 或 UBJSON 存储格式移动具有 JSON 列的表。从 Teradata Database 15.0 移动到 Teradata Database 15.10 或更高版本时,将对 JSON 列使用缺省文本存储格式。

限制
  • 您不能使用 TDCH 将数据复制到 JSON 列类型。
  • Data Mover 不支持将 JSON 列类型从 Teradata Database 复制到 Hadoop。

安全性

您可以使用以下设置在 Teradata 和 Hadoop 之间复制表:
  • 在 Data Mover 作业中指定的 Hive 用户必须对 HDFS 中 Hive 表的基础文件和文件夹具有读取/写入/执行权限。
  • Oozie 必须能够模拟 Hive 用户运行 TDCH 作业。

Teradata Connector for Hadoop 还支持在 Teradata Database 和带 Kerberos 保护的受支持 Hadoop 系统之间移动数据。有关详细信息,请咨询 Teradata 客户服务人员。

对象支持局限

  • Data Mover 只允许在 Teradata 和 Hadoop 之间复制视图所返回的表和数据。您不能在 Teradata 和 Hadoop 之间复制其他对象,如视图、索引或整个数据库。
  • 如果用户指定了表的列信息(如名称或类型),并且目标表已经存在,则列信息将用于比较源表和目标表的 DDL。如果目标表不存在,Data Mover 将使用列信息创建目标表。如果您未指定列信息,则源表元数据将用于列名称或类型。Data Mover 不会针对 Hadoop 支持删除目标表。有关详细信息,请参阅在数据库之间移动时支持的对象

限制

Data Mover 允许您限制并发运行的 Hadoop 连接器和 T2H 任务的数量。使用 Hadoop 连接器或 T2H 移动的每个表会分别封装为单个任务。

可以通过使用 save_configuration 命令设置 hadoop.connector.max.task.slot 属性的值来限制并发运行的 Hadoop 连接器任务的数量。也可以通过使用 save_configuration 命令设置 sqlh.max.task.slot 属性的值来限制并发运行的 T2H 任务的数量。

hadoop.connector.max.task.slotsqlh.max.task.slot 的缺省值为 2

已知问题

  • 如果您无法从 WebHCAT 检索元数据并且 dmDaemon.log 中显示error 143,则可以增加 webhcat 参数 templeton.exec.timeout 的超时值。
  • 如果并发启动的 Oozie 作业数多于 Hadoop 集群中映射器的数量,则 Oozie 作业会发生死锁。解决办法是:在每个 Oozie 作业之间添加一个等待时间,从而不允许 Oozie 作业并发启动。agent.properties 中的 hadoop.task.throttle 属性可在两个作业之间添加一个等待时间(以秒为单位)。如果您发现与 Oozie 相关的死锁问题,请使用此属性。
  • 在 Teradata Database 上优化 T2H,以确保正确处理并发 T2H 查询。如果并发 T2H 查询的数量大于在 Teradata Database 中配置的数量,T2H 可能会变得不稳定并导致出现错误,例如 PermGen 异常或停止 T2H 查询,这将需要重新启动 UDF 服务器进程。可以使用 Data Mover 配置中的 sqlh.max.task.slot 属性来限制 Data Mover 并发运行的最大 T2H 查询数。