自定义阶段库

如果您开发自定义阶段,请将阶段库存储在Data Collector安装目录外部的本地目录中。 升级Data Collector后,使用外部目录可使得自定义阶段库可用。

对您的安装类型使用必需的过程。

官方的StreamSets教程页面上有用于创建自定义源端、处理器和目标端的教程。要获取它们,请访问:https://github.com/streamsets/tutorials

RPM和压缩包安装的自定义库存储

要存储用于RPM或压缩包安装的自定义阶段库,请执行以下步骤:

  1. 为自定义阶段库在Data Collector安装目录外部创建本地目录。升级Data Collector后,使用外部目录可使得自定义阶段库可用。

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

    /opt/sdc/

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

    /opt/sdc-user-libs
  2. 将自定义阶段库复制到目录。为每个自定义阶段使用目录结构。

    例如,要存储名为customstage1的自定义阶段的库,可以将它们复制到以下目录:

    /opt/sdc-user-libs/customstage1
  3. 将USER_LIBRARIES_DIR环境变量添加到适当的文件中,然后将其指向自定义阶段库目录。

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

    如下设置环境变量:

    export USER_LIBRARIES_DIR="<custom stage library directory>"

    例如:

    export USER_LIBRARIES_DIR="/opt/sdc-user-libs/"
  4. 使用默认情况下启用的Java安全管理器时,请更新Data Collector安全策略以包括自定义阶段库目录,如下所示:
    1. Data Collector配置目录中,打开安全策略文件:
      $SDC_CONF/sdc-security.policy
    2. 将以下行添加到文件中:
      // 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;
      };
  5. 重新启动Data Collector
    Data Collector阶段库显示自定义阶段。

Cloudera Manager安装的自定义库存储

要存储用于Cloudera Manager安装的自定义阶段库,请执行以下步骤:

  1. 在运行Data Collector的每个节点上,为自定义阶段库创建一个本地目录。

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

    /opt/sdc-user-libs
  2. 在运行Data Collector的每个节点上,将自定义阶段库复制到为USER_LIBRARIES_DIR环境变量定义的目录。为每个自定义阶段使用目录结构。

    例如,要存储名为customstage1的自定义阶段的库,可以将它们复制到以下目录:

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

    例如:

    export USER_LIBRARIES_DIR="/opt/sdc-user-libs/"
  5. 使用默认启用的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;
    };
  6. 重新启动Data Collector