与数据治理工具集成

您可以将Data Collector配置为与数据治理工具集成,从而使您可以查看数据移动——数据来自何处,要去往何处以及与谁进行交互。

数据治理工具集成可通过付费订阅获得。详细信息,请联系StreamSets
(小马哥注:本页描述内容均为闭源付费特性)

Data Collector可以使用以下数据治理工具:

Cloudera Navigator
如果使用Cloudera Manager并安装了Cloudera Navigator,则可以配置Data Collector以将有关正在运行的管道的元数据发布到Cloudera Navigator。发布元数据时,Data Collector使用基本身份验证向Cloudera Navigator发出HTTPS请求。数据以JSON格式发送。
Apache Atlas
如果安装了Apache Atlas,则可以配置Data Collector来发布有关运行到Apache Atlas的管道的元数据。发布元数据时,Data Collector使用Apache Kafka将元数据发送到Apache Atlas。数据以JSON格式发送。

然后,您可以使用Cloudera Navigator或Apache Atlas探索管道元数据,包括查看元数据的血缘图表。

Data Collector使用单独的线程将元数据发布到数据治理工具——因此,启用元数据发布对正在运行的管道线程的影响最小。每个管道在管道启动和停止时都会发布元数据。某些起点和终点通常仅在初始化时才发布元数据一次。但是,某些阶段在每次创建新对象时都会发布元数据,例如,当Hadoop FS或Local FS目标创建新的输出文件时。

支持的阶段

目前,只有一些管道阶段支持将元数据发布到数据治理工具。

Data Collector会发布所有正在运行的管道中所有受支持阶段的元数据。如果你有多个运行管道的Data Collector,配置每个Data Collector将元数据发布到相同的治理工具实例。

Data Collector可以为以下阶段发布元数据:

  • Amazon S3 origin
  • Dev Data Generator origin
  • Directory origin
  • Hadoop FS origin
  • JDBC Query Consumer origin
  • Kafka Consumer origin
  • Kafka Multitopic Consumer origin
  • SFTP/FTP/FTPS Client origin
  • Hadoop FS destination
  • Local FS destination
  • HBase destination
  • Hive Streaming destination
  • Kafka Producer destination
  • Kudu destination
注意:请记住,不要在阶段级别甚至管道级别启用元数据发布。您只需将Data Collector配置为发布所有正在运行的管道的元数据。

当管道中包含不受支持的阶段时,数据治理工具不会将该阶段显示为血缘图中的输入或输出。例如,如果正在运行的管道包括不受支持的源和Hadoop FS destination,则数据治理工具会将管道显示为具有0个输入和多个输出——每个生成的输出文件一个输出。如果正在运行的管道不包含受支持的源端或目标端,则数据治理工具会将管道显示为具有0个输入和0个输出。

Cloudera Navigator

您可以配置Data Collector以将有关正在运行的管道的元数据发布到Cloudera Navigator。然后,您可以使用Cloudera Navigator浏览管道元数据,包括查看元数据的血缘图表。

数据治理工具集成可通过付费订阅获得。有关详细信息,请联系StreamSets

要将Data Collector 与Cloudera Navigator 集成,请下载以下Cloudera Navigator阶段库之一并将其安装为自定义阶段库:

舞台库 描述
streamets-datacollector-cm_5_10-lib 在使用Cloudera Manager 5.10版时使用。
streamets-datacollector-cm_5_11-lib 在使用Cloudera Manager 5.11版时使用。
streamets-datacollector-cm_5_12-lib 在使用Cloudera Manager 5.12版时使用。
streamets-datacollector-cm_5_13-lib 在使用Cloudera Manager 5.13版时使用。
streamets-datacollector-cm_5_14-lib 在使用Cloudera Manager 5.14版时使用。
streamets-datacollector-cm_5_15-lib 在使用Cloudera Manager 5.15版时使用。
streamets-datacollector-cm_6_1-lib 在使用Cloudera Manager 6.1版时使用。

然后,您将Data Collector配置为连接到Cloudera Navigator。

先决条件

在使Data Collector能够将管道元数据发布到Cloudera Navigator之前,您必须完成以下先决条件:

验证Data Collector是否已安装必需的Cloudera CDH阶段库版本。
要连接到Cloudera Navigator并将元数据发布到Cloudera Navigator,Data Collector要求Cloudera Manager版本5.10至5.15或版本6.1。
要验证Data Collector是否已安装有效的Cloudera CDH阶段库,请单击“程序包管理器”图标()以显示已安装阶段库的列表。如果未安装所需的库版本,请先配置库,然后再配置Data Collector以将管道元数据发布到Cloudera Navigator。
将Cloudera Navigator数据管理角色添加到Cloudera Manager集群。
将以下导航器角色添加到Cloudera Management Service:

  • Cloudera Navigator Audit Server角色
  • Cloudera Navigator Metadata Server角色
有关说明,请参阅Cloudera Manager文档。

步骤1.下载并安装阶段库

将Cloudera Navigator阶段库下载并安装为自定义阶段库。
  1. 使用从StreamSets收到的电子邮件中提供的链接,下载包含适用于您的Cloudera Manager版本的Cloudera Navigator阶段库的压缩包。
    例如,如果Data Collector安装了Cloudera CDH阶段库版本5.14,请下载 streamsets-datacollector-cm_5_14-lib-1.6.0.tgz 文件。
  2. 提取压缩包。

    压缩包被解压缩到以下目录:

    <stage library name>/lib/

    例如:

    streamsets-datacollector-cm_5_14-lib/lib/
  3. 在运行Data Collector的每个节点上,为定制阶段库创建一个本地目录。

    例如,您可以在以下位置创建定制阶段库目录:

    /opt/sdc-user-libs
  4. 在运行Data Collector的每个节点上,将提取的Cloudera Navigator阶段库复制到为USER_LIBRARIES_DIR环境变量定义的目录,如下所示:
    /opt/sdc-user-libs/<stage library name>/lib/

    例如:

    /opt/sdc-user-libs/streamsets-datacollector-cm_5_14-lib/lib/
  5. 在Cloudera Manager中,选择StreamSets服务,然后单击Configuration
  6. 在“配置”页面上的“sdc-env.sh”的“数据收集器高级配置代码片段(安全阀)”字段中,添加USER_LIBRARIES_DIR环境变量,并将其指向自定义阶段库目录,如下所示:
    export USER_LIBRARIES_DIR="<custom stage library directory>"

    例如:

    export USER_LIBRARIES_DIR="/opt/sdc-user-libs/"
  7. 使用默认启用的Java安全管理器时,请更新sdc-security.policy属性的 Data Collector高级配置代码片段(安全阀),以包括以下自定义阶段库目录:
    // custom stage library directory
    grant codebase "file://<custom stage library directory>/-" {
       permission java.security.AllPermission;
    };

    例如:

    // custom stage library directory
    grant codebase "file:///opt/sdc-user-libs/-" {
       permission java.security.AllPermission;
    };
  8. 重新启动Data Collector

步骤2.配置与Cloudera Navigator的连接

将血缘发布者属性添加到Data Collector配置文件$SDC_CONF/sdc.properties中,然后根据需要配置属性。使用Cloudera Manager 管理Data Collector时,请通过Cloudera Manager中 的StreamSets服务配置Data Collector配置属性。Cloudera Manager可以覆盖对配置文件的手动更改。

重要说明:您可以通过将数据存储在外部位置,然后使用函数来检索数据来保护敏感数据,而不用在配置文件中以明文形式输入敏感数据(例如密码)。

配置属性包括启用元数据发布和定义到Cloudera Navigator的连接。

如果为TLS / SSL配置了Cloudera Navigator,则配置属性还需要指定Data Collector 用于验证Cloudera Navigator Metadata Server身份的本地信任库文件。

警告:如果启用了元数据发布并且Data Collector在启动时无法连接到Cloudera Navigator,则Data Collector无法启动。
  1. 要启用元数据发布,请将以下行添加到sdc.properties文件中:
    # Lineage Publisher
    #
    lineage.publishers=navigator
    lineage.publisher.navigator.def=streamsets-datacollector-cm_5_14-lib::com_streamsets_pipeline_stage_plugin_navigator_NavigatorLineagePublisher
    lineage.publisher.navigator.config.application_url=http://localhost:18630
    lineage.publisher.navigator.config.navigator_url=http://navigatorhost:7187
    lineage.publisher.navigator.config.namespace=sdc
    lineage.publisher.navigator.config.username=user
    lineage.publisher.navigator.config.password=passwd
    lineage.publisher.navigator.config.autocommit=false
  2. 要定义与Cloudera Navigator的连接,请修改以下属性的默认值:
    元数据发布者属性 描述
    lineage.publishers 将元数据发布到的应用程序。请勿更改默认值navigator
    lineage.publisher.navigator.def 用于连接到Cloudera Navigator的阶段库名称,以以下格式输入:

    <stage library name>::com_streamsets_pipeline_ stage_plugin_navigator_NavigatorLineagePublisher

    定义适当的Cloudera CDH阶段库名称以启用元数据发布。例如,如果您下载了阶段库的版本5.14,则如下定义阶段库名称:

    streamsets-datacollector-cm_5_14-lib

    不要修改属性值的后半部分。

    lineage.publisher.navigator.

    config.application_url

    Data Collector的 URL 。例如:

    http://<hostname>:18630/

    lineage.publisher.navigator.

    config.navigator_url

    Cloudera Navigator UI的URL。例如:

    http://<Navigator Metadata Server host>:<port number>/

    <Navigator Metadata Server host>是您在其上运行Navigator Metadata Server角色的主机的名称。<port number>是为角色配置的端口。

    lineage.publisher.navigator.

    config.namespace

    Cloudera Navigator用于唯一标识Data Collector属性的命名空间。
    lineage.publisher.navigator.

    config.username

    连接到Cloudera Navigator的用户名。
    lineage.publisher.navigator.

    config.password

    Cloudera Navigator帐户的密码。

    为了保护密码,请将密码存储在外部位置,然后使用函数来检索密码。

    lineage.publisher.navigator.

    config.autocommit

    使Cloudera Navigator可以立即处理已发布的元数据。

    在大多数情况下,请使用默认值false。设置为true可以使用Cloudera Navigator计算机上的大量资源。

  3. 如果为TLS / SSL配置了Cloudera Navigator,请将以下行添加到sdc.properties文件的Lineage Publisher部分,然后修改属性的默认值:
    lineage.publisher.navigator.config.ssl_truststore_location=truststore.jks
    lineage.publisher.navigator.config.ssl_truststore_password=changeit
    TLS / SSL的元数据发布者属性 描述
    lineage.publisher.navigator。

    config.ssl_truststore_location

    包含Cloudera Navigator Metadata Server证书的信任库文件的路径。

    输入文件的绝对路径或相对于Data Collector资源目录$SDC_RESOURCES的路径。

    lineage.publisher.navigator。

    config.ssl_truststore_password

    信任库文件的密码。

    为了保护密码,请将密码存储在外部位置,然后使用函数来检索密码。

  4. 重新启动Data Collector,以使更改的属性生效。

查看已发布的元数据

您可以在Cloudera Navigator中近乎实时地查看发布的管道元数据。Cloudera Navigator按管道标题列出每个管道,并显示受支持的来源作为输入,并显示受支持的目的地作为输出。Cloudera Navigator还包括一个指向Data Collector中管道的URL 以及其他元数据,例如管道描述,标签,版本和启动管道的用户。

例如,假设您运行的管道包括JDBC Query Consumer源和Local FS目标。Cloudera Navigator显示一个表示JDBC Query Consumer源的单个输入。在管道运行时,Local FS目标将创建多个输出文件。Cloudera Navigator显示多个输出,每个输出代表一个生成的输出文件。

Cloudera Navigator显示发布的管道元数据的详细信息,如下所示。请注意我们的示例Jdbc2LocalFS管道如何列出1个输入和42个输出-每个生成的输出文件一个输出:

Cloudera Navigator显示管道血缘图,如下所示:

Apache Atlas

您可以配置Data Collector来发布有关正在运行的管道到Apache Atlas的元数据。然后,您可以使用Apache Atlas探索管道元数据,包括查看元数据的血缘图表。

数据治理工具集成可通过付费订阅获得。有关详细信息,请联系StreamSets

要将Data Collector与Apache Atlas 集成,请下载以下Apache Atlas阶段库之一并将其安装为自定义阶段库:

舞台库 描述
streamets-datacollector-apache-atlas_0_8_1-lib 在使用HDP版本2.6.x和Apache Atlas 0.8.1时使用。
streamets-datacollector-apache-atlas_1_1_0-lib 使用HDP 3.1.x版和Apache Atlas 1.1.0时使用。

然后,您将Data Collector配置为连接到Apache Atlas。您还必须将StreamSets数据模型部署到安装了Apache Atlas服务器的计算机上。

先决条件

在使 Data Collector 能够将管道元数据发布到Apache Atlas之前,您必须完成以下先决条件:

确认Data Collector已安装了必需的Hortonworks Data Platform(HDP)阶段库。
要连接到Apache Atlas并将元数据发布到Apache Atlas,Data Collector需要HDP版本2.6.x或3.1.x。
要验证Data Collector是否已安装有效的HDP阶段库,请单击“程序包管理器”图标()以显示已安装阶段库的列表。如果未安装所需的库版本,请在配置Data Collector以便将管道元数据发布到Apache Atlas 之前安装库。
在Apache Atlas中配置所需的设置。
要连接到元数据并将其发布到Apache Atlas,必须在Apache Atlas中配置以下必需设置:

  • 将Apache Atlas配置为使用HBase作为持久性引擎。
  • 将Apache Atlas配置为使用Apache Kafka进行通知。
  • 确保为Apache Atlas启用了绘图引擎。
有关配置Apache Atlas的更多信息,请参阅Apache Atlas文档

步骤1.下载并安装舞台库

下载并安装适当的Apache Atlas舞台库作为自定义舞台库。

  1. 使用从StreamSets收到的电子邮件中提供的链接,下载包含Apache Atlas阶段库的tarball。
  2. 提取压缩包。

    压缩包被解压缩到以下目录:

    <stage library name>/lib/

    例如,将Apache Atlas版本0.8.1阶段库提取为:

    streamsets-datacollector-apache-atlas_0_8_1-lib/lib/

    Apache Atlas版本1.1.0阶段库提取到:

    streamsets-datacollector-apache-atlas_1_1_0-lib/lib/
  3. 为定制阶段库在Data Collector安装目录外部创建本地目录。升级Data Collector后,使用外部目录启用库的使用。

    例如,如果您将Data Collector安装在以下目录中:

    /opt/sdc/

    您可以在以下位置创建自定义舞台库目录:

    /opt/sdc-user-libs
  4. 将Apache Atlas阶段库复制到此定制阶段库目录,如下所示:
    /opt/sdc-user-libs/<stage library name>/lib/

    例如,对于Apache Atlas版本0.8.1:

    /opt/sdc-user-libs/streamsets-datacollector-apache-atlas_0_8_1-lib/lib/

    对于Apache Atlas 1.1.0版:

    /opt/sdc-user-libs/streamsets-datacollector-apache-atlas_1_1_0-lib/lib/
  5. 将USER_LIBRARIES_DIR环境变量添加到适当的文件中,然后将其指向定制阶段库目录。

    使用安装类型所需的方法来修改环境变量。

    如下设置环境变量:

    export USER_LIBRARIES_DIR="<custom stage library directory>"

    例如:

    export USER_LIBRARIES_DIR="/opt/sdc-user-libs/"
  6. 使用默认情况下启用的Java安全管理器时,请更新 Data Collector安全策略以包括定制阶段库目录,如下所示:
    a.在Data Collector配置目录中,打开安全策略文件:

    $SDC_CONF/sdc-security.policy

    b.将以下行添加到文件中:

    // custom stage library directory
    grant codebase "file://<custom stage library directory>/-" {
       permission java.security.AllPermission;
    };
    注意:您必须在目录名称后包含后缀/-

    例如:

    // custom stage library directory
    grant codebase "file:///opt/sdc-user-libs/-" {
       permission java.security.AllPermission;
    };
  7. 重新启动Data Collector

步骤2.,配置与Apache Atlas的连接

配置Data Collector以连接到Apache Atlas涉及以下文件的工作:

Data Collector配置文件
将血缘发布者属性添加到Data Collector配置文件 $SDC_CONF/sdc.properties中
Apache Atlas应用程序属性文件
如果Data Collector与Apache Atlas服务器安装在不同的计算机上,则将atlas-application.properties文件复制到Data Collector计算机。根据需要修改Apache Atlas应用程序属性文件,然后在Data Collector计算机上的SDC_JAVA_OPTS环境变量中指定文件的位置。
警告:如果启用了元数据发布,并且在Data Collector启动时Apache Atlas无法访问atlas-application.properties文件,则Data Collector无法启动。
  1. 要启用将元数据发布到Apache Atlas,请修改数据收集器配置文件$SDC_CONF/sdc.properties

    对于Apache Atlas版本0.8.1,将以下行添加到文件中:

    # Lineage Publisher
    #
    lineage.publishers=atlas
    lineage.publisher.atlas.def=streamsets-datacollector-apache-atlas_0_8_1-lib::com_streamsets_pipeline_stage_plugin_atlas_AtlasLineagePublisher

    对于Apache Atlas 1.1.0版,将以下行添加到文件中:

    # Lineage Publisher
    #
    lineage.publishers=atlas
    lineage.publisher.atlas.def=streamsets-datacollector-apache-atlas_1_1_0-lib::com_streamsets_pipeline_stage_plugin_atlas_AtlasLineagePublisher1_1_0
  2. 如果Data Collector与Apache Atlas服务器安装在不同的计算机上,则将atlas-application.properties文件复制到Data Collector计算机。

    StreamSets建议将atlas-application.properties 文件存储在$SDC_CONF目录中。例如,对于Data Collector的RPM安装,将文件存储在/etc/sdc/目录中。

  3. 验证是否正确配置了atlas-application.properties文件。

    例如,如果您将atlas-application.properties文件复制到Data Collector计算机,则可能需要修改以下属性,这些属性指定Apache Atlas服务器上的Kafka安装:

    atlas.kafka.zookeeper.connect=localhost:9026
    atlas.kafka.bootstrap.servers=localhost:9027

    有关此文件中属性的更多信息,请参阅Apache Atlas文档

  4. Data Collector计算机上,在SDC_JAVA_OPTS环境变量中定义-Datlas.conf系统属性。

    使用安装类型所需的方法来修改环境变量。

    -Datlas.conf系统属性定义本地atlas-application.properties文件的位置。如下定义Atlas系统属性:

    export SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -Datlas.conf=<configuration directory> -Xmx1024m  -Xms1024m -server"

    定义的配置目录必须以正斜杠(/)结尾。例如,如果将文件存储在$SDC_CONF目录中以进行Data Collector的RPM安装,则按如下所示定义Atlas系统属性:

    export SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -Datlas.conf=/etc/sdc/ -Xmx1024m  -Xms1024m -server"
  5. 重新启动Data Collector,以使更改的属性生效。

步骤3.将StreamSets数据模型部署到Apache Atlas

下载StreamSets数据模型并将数据模型部署到Apache Atlas服务器。

  1. 使用从StreamSets收到的电子邮件中提供的链接,下载Apache Atlas的StreamSets数据模型:
    0090-streamsets_model.json
  2. 将数据模型部署到安装了Apache Atlas服务器的计算机上。
    在Apache Atlas服务器上,将StreamSets数据模型复制到包含Sqoop数据模型的同一目录。

    例如,如果使用Hortonworks 2.6.1版进行测试,请将StreamSets数据模型复制到以下目录:

    /usr/hdp/2.6.1.0-129/atlas/models/0090-streamsets_model.json
  3. 重新启动Apache Atlas服务器,以便该服务器可以识别新部署的数据模型。

查看已发布的元数据

管道停止时,Data Collector将管道元数据发布到Apache Atlas。Apache Atlas通过管道标题列出了每个管道,并显示了受支持的来源作为输入,并显示了受支持的目的地作为输出。Apache Atlas还包括其他元数据,例如管道描述,标签,版本和启动管道的用户。

例如,假设您运行的管道包括JDBC查询使用者源和Local FS目标。Apache Atlas显示一个表示JDBC查询使用者来源的单个输入。在管道运行时,Local FS目标将创建多个输出文件。Apache Atlas显示多个输出,每个输出代表一个生成的输出文件。

Apache Atlas如下显示已发布管道元数据的详细信息。请注意我们的示例管道如何以1个输入和3个输出列出-每个生成的输出文件一个输出:

Apache Atlas显示管道管线图,如下所示: