针对现有 Dataproc 集群运行流水线

本页面介绍了如何针对现有 Dataproc 集群在 Cloud Data Fusion 中运行流水线。

默认情况下,Cloud Data Fusion 会为每个流水线创建临时集群:它会在流水线开始运行时创建集群,然后在流水线运行完成后将其删除。虽然此行为可确保只在需要时创建资源,从而节省费用,但可能在这种情况下并不需要以下默认行为:

  • 如果为每个流水线创建新集群所需的时间对您的使用场景来说过多。

  • 如果您的组织需要集中管理集群创建;例如,当您希望对所有 Dataproc 集群实施特定政策时。

针对这些场景,您需要按照以下步骤在现有集群上运行流水线。6.2.1 版及更高版本中简化了这些步骤。

准备工作

您需要具备以下几项:

6.2.1 版及更高版本

连接到现有集群

在 Cloud Data Fusion 6.2.1 版及更高版本中,您可以在创建新的 Compute Engine 配置文件时连接到现有 Dataproc 集群。

  1. 在 Google Cloud Console 中,转到 Cloud Data Fusion 实例页面。

    转到实例

  2. 点击查看实例

  3. 点击 System Admin

  4. 点击配置选项卡。

  5. 展开系统计算配置文件 (System Compute Profiles) 框。

  6. 点击创建新的配置文件。 系统随即会打开预配工具页面。

  7. 点击现有 Dataproc (Existing Dataproc)。

  8. 输入您所需的配置文件、集群和监控信息。

  9. 点击创建

配置流水线以使用自定义配置文件

  1. 在 Pipeline Studio 中,点击配置

  2. 点击计算配置 (Compute config)。

  3. 点击您创建的配置文件。

    使用自定义配置文件
  4. 运行流水线。现在,Cloud Data Fusion 会针对您现有 Dataproc 集群运行流水线。

6.2.1 之前的版本

在 Dataproc 集群上设置 SSH

  1. 在 Google Cloud Console 中,转到 Dataproc 集群页面。

    转到集群

  2. 点击集群名称。 系统会打开包含集群详情的页面。

  3. 点击虚拟机实例标签页,然后点击 SSH 按钮以连接到 Dataproc 主虚拟机。

  4. 通过运行以下命令来创建新的 SSH 密钥:

    ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/KEY_FILENAME -C USERNAME
    

    系统会创建以下两个文件:

    • ~/.ssh/KEY_FILENAME(私钥)
    • ~/.ssh/KEY_FILENAME.pub(公钥)
  5. 复制整个 SSH 公钥。要以可读格式查看密钥,请运行以下命令:

    cat  ~/.ssh/KEY_FILENAME.pub
    

  6. 打开 Compute Engine 元数据页面,选择 SSH 密钥标签页,然后点击修改

  7. 点击添加项

  8. 在出现的文本框中,粘贴您之前复制的公钥。

  9. 点击保存

为实例创建自定义系统计算配置文件

  1. 在 Google Cloud Console 中,转到 Cloud Data Fusion 实例页面。

    转到实例

  2. 点击查看实例

  3. 点击 System Admin

  4. 点击配置选项卡。

  5. 展开系统计算配置文件 (System Compute Profiles) 框。

  6. 点击创建新的配置文件。 系统随即会打开预配工具页面。

  7. 点击远程 Hadoop 预配工具 (Remote Hadoop Provisioner)。

  8. 为远程 Hadoop 预配工具创建配置文件 (Create a profile for Remote Hadoop Provisioner) 页面上,输入配置文件信息(包括 SSH 信息):

    • 主机:您可以在 Compute Engine 虚拟机实例页面详情中找到主节点的 SSH 主机 IP 信息。
    查找主节点 IP
    • 用户:创建 SSH 密钥时指定的用户名。
    • SSH 私钥:粘贴您之前创建的 SSH 私钥。要以可读格式查看密钥内容,请使用以下命令:
       cat  ~/.ssh/KEY_FILENAME 

    在您的副本中添加开始和结束注释。

  9. 点击创建

配置流水线以使用自定义配置文件

  1. 在 Pipeline Studio 中,点击配置

  2. 点击计算配置 (Compute config)。

  3. 点击您创建的配置文件。

    使用自定义配置文件
  4. 运行流水线。现在,Cloud Data Fusion 会针对您现有 Dataproc 集群运行流水线。

问题排查

  • 如果流水线在连接超时时失败,请检查 SSH 密钥和防火墙规则是否配置正确。

  • 如果您在运行流水线时收到 invalid privatekey 错误,请检查私钥的第一行是否如下所示:----BEGIN OPENSSH PRIVATE KEY-----。如果是,请尝试生成带有 RSA 类型的密钥对:

    ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/KEY_FILENAME -C USERNAME
    
  • 如果您收到来自流水线的错误 (java.io.IOException:com.jcraft.jsch.JSchException: Auth fail),请按照以下步骤操作:

    • 使用 SSH 密钥手动连接到目标 Dataproc 节点,对 SSH 密钥进行验证。
    • 如果您通过命令行使用 SSH 手动连接到虚拟机,但私钥仍有效,但相同的设置会导致 JSch 出现 Auth failed 异常,那么请确保操作系统登录未启用。在 Compute Engine 界面中,点击左侧菜单中的元数据,然后点击元数据标签页。删除 osLogin 键,或将其设置为 FALSE