安装外部库

安装外部库以使它们可用于Data Collector阶段。在特定阶段使用多个阶段库时,要使外部库可用于该阶段的所有版本,请为每个阶段库安装外部库。

您可以使用Data Collector用户界面中的Package Manager安装外部库,也可以手动安装它们。

您可以为以下阶段安装外部库:

  • 在使用以下阶段之前,请为要使用的实现安装JDBC驱动程序:
    JDBC Multitable Consumer origin
    JDBC Query Consumer origin
    MySQL Binary Log origin
    Oracle CDC Client origin
    Teradata Consumer origin
    JDBC Lookup processor
    JDBC Tee processor
    SQL Parser processor, 当使用数据库来解析schema时
    JDBC Producer destination
    MemSQL Fast Loader destination
    JDBC Query executor

    例如,要将JDBC查询使用者或JDBC生产者与Oracle一起使用,请安装Oracle JDBC驱动程序。

  • 在使用Hadoop FS源从非HDFS系统读取数据之前,请安装所有必需的文件系统应用程序JAR文件。请参阅文件系统文档以获取有关要安装的文件的详细信息。
  • 在使用Spark Evaluator处理器之前,请安装Spark应用程序JAR文件以及streamets-datacollector-api,streamsets-datacollector-spark-api和spark-core库以外的所有依赖项。
  • 您可以安装外部Java库来从脚本处理器(Groovy,Java和Jython Evaluator)调用外部Java代码。
  • 您可以安装DataStax Enterprise(DSE)Java驱动程序以将Cassandra目标配置为使用DSE用户名和密码验证或Kerberos验证。
  • 在使用Google Bigtable destination之前,请先安装BoringSSL库。
  • 在使用“ JMS消费者”来源或“ JMS生产者”目的地之前,请为您使用的实现安装JMS驱动程序。
  • 您可以在为执行程序选择的阶段库下安装Impala JDBC驱动程序。有关更多信息,请参阅安装Impala驱动程序。

 

使用软件包管理器进行安装

要使用程序包管理器安装外部库,请完成以下常规步骤:

  1. 设置一个外部目录来存储库。
  2. 使用Data Collector中的程序包管理来安装外部库。

步骤1.设置外部目录

在安装外部库之前,请为这些库在Data Collector安装目录外部设置一个本地目录。 升级Data Collector后,使用外部目录可使得库可用。对您的安装类型使用必需的过程。

为RPM和压缩包设置

在安装用于RPM或压缩包安装的外部库之前,请设置一个外部目录来存储这些库。

  1. Data Collector安装目录外部创建一个本地目录。

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

    /opt/sdc/

    您可以在以下位置创建外部目录:

    /opt/sdc-extras
  2. 授予在外部目录上启动Data Collector的用户所有权。

    例如,如果您使用默认的系统用户名和组名sdc来将Data Collector作为服务运行,请使用以下命令将外部目录的所有者和目录中的所有文件更改为 sdc:sdc

    chown -R sdc:sdc /opt/sdc-extras
  3. 将STREAMSETS_LIBRARIES_EXTRA_DIR环境变量添加到适当的文件中,然后将其指向外部目录。

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

    如下设置环境变量:

    export STREAMSETS_LIBRARIES_EXTRA_DIR="<external directory>"

    例如:

    export STREAMSETS_LIBRARIES_EXTRA_DIR="/opt/sdc-extras/"
  4. 使用默认情况下启用的Java安全管理器时,请更新Data Collector安全策略以包括外部目录,如下所示:
    1. Data Collector配置目录中,打开安全策略文件 $SDC_CONF/sdc-security.policy
    2. 将以下行添加到文件中:
      // user-defined external directory
      grant codebase "file://<external directory>-" {
        permission java.security.AllPermission;
      };

      例如:

      // user-defined external directory
      grant codebase "file:///opt/sdc-extras/-" {
        permission java.security.AllPermission;
      };
  5. 重新启动Data Collector

设置Cloudera Manager

在安装用于Cloudera Manager安装的外部库之前,请设置一个外部目录来存储库。

  1. 在Cloudera Manager中,选择StreamSets服务,然后单击Configuration
  2. 在“配置”页面上的“sdc-env.sh”的“数据收集器高级配置摘要”(安全阀)字段中,添加STREAMSETS_LIBRARIES_EXTRA_DIR环境变量,并将其指向外部目录,如下所示:
    export STREAMSETS_LIBRARIES_EXTRA_DIR="<external directory>"

    例如:

    export STREAMSETS_LIBRARIES_EXTRA_DIR="/opt/sdc-extras/"

    默认情况下,路径为/var/lib/sdc

  3. /opt/sdc-extras/在运行Data Collector的每个节点上创建目录 。
  4. 在添加到每个节点的外部目录上,授予启动Data Collector的用户所有权。

    例如,如果您使用默认的系统用户名和组名sdc来将Data Collector作为服务运行 ,请使用以下命令将外部目录的所有者和目录中的所有文件更改为 sdc:sdc

    chown -R sdc:sdc /opt/sdc-extras
  5. 使用默认启用的Java安全管理器时,请更新sdc-security.policy属性的 Data Collector高级配置代码片段(安全阀),以包括外部目录,如下所示:
    // user-defined external directory
    grant codebase "file://<external directory>-" {
      permission java.security.AllPermission;
    };

    例如:

    // user-defined external directory
    grant codebase "file:///opt/sdc-extras/-" {
      permission java.security.AllPermission;
    };
  6. 重新启动Data Collector

步骤2.安装外部库

设置外部目录后,请使用Data Collector中的“Package Manager来安装外部库。

  1. Data Collector的右上方工具栏中,单击“Package Manager 图标:
  2. 在导航面板中,单击“External Libraries
    Data Collector列出了任何当前安装的外部库。
  3. 立即在右上方工具栏下,单击“ 安装外部库”图标:
  4. 在“Install External Libraries对话框中,选择需要访问外部库的阶段库。
    例如,如果要为JDBC Multitable Consumer来源安装JDBC驱动程序,请选择JDBC阶段库。如果要为Groovy Evaluator处理器安装外部Java库,请选择Groovy阶段库。
  5. 浏览以选择要安装的外部库,然后单击“Open
  6. 要将外部库安装到指定的阶段库,请单击“Upload”。
    Data Collector将安装外部库并显示一条消息,提示您重新启动Data Collector
  7. 要安装额外的外部库,点击“Cancel”,然后对于每一个需要访问外部库的阶段库重复步骤3 – 6。
    例如,假设您想将外部库与Spark Evaluator处理器一起使用,但是要使用处理器的两个版本——每个版本都来自不同的阶段库。要使外部库可用于两个处理器版本,必须将外部库上载到两个阶段库。
  8. 安装了所需的所有外部库之后,请通过以下方式之一重新启动Data Collector
    • 如果您通过命令行手动启动Data Collector,单击重新启动Data Collector安装外部库窗口。
    • 如果将Data Collector作为服务启动,则必须使用命令行重新启动。在“安装外部库”窗口中单击“取消” ,然后运行以下命令:
      service sdc restart

手动安装

要手动安装外部库,请使用所需的安装类型步骤。

手动安装RPM和压缩包

要为RPM或压缩包安装手动安装外部库,请执行以下步骤:

  1. Data Collector安装目录外部创建一个本地目录。

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

    /opt/sdc/

    您可以在以下位置创建外部目录:

    /opt/sdc-extras
  2. 根据阶段库名称为每组外部库创建子目录,如下所示:
    /opt/sdc-extras/<stage library name>/lib/

    例如,要为JDBC阶段库附带的阶段安装驱动程序,请创建以下子目录:

    /opt/sdc-extras/streamsets-datacollector-jdbc-lib/lib/

    要还为JMS阶段库附带的阶段安装驱动程序,请创建以下子目录:

    /opt/sdc-extras/streamsets-datacollector-jms-lib/lib/
    注意:如果您为一个特定的阶段使用多个阶段库,并且希望将外部库与所有阶段库一起使用,则必须为每个阶段库安装外部库。

    例如,假设您想将外部库与Spark Evaluator处理器一起使用,但是要使用处理器的两个版本-每个版本都来自不同的阶段库。要使外部库可用于两个处理器版本,必须将外部库上载到两个阶段库。

    提示:有关阶段库名称的列表,请参见“可用的阶段库”。
  3. 将外部库复制到适当的子目录。
  4. 将STREAMSETS_LIBRARIES_EXTRA_DIR环境变量添加到适当的文件中,然后将其指向外部目录。

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

    如下设置环境变量:

    export STREAMSETS_LIBRARIES_EXTRA_DIR="<external directory>"

    例如:

    export STREAMSETS_LIBRARIES_EXTRA_DIR="/opt/sdc-extras/"
  5. 使用默认情况下启用的Java安全管理器时,请更新Data Collector安全策略以包括外部目录,如下所示:
    1. Data Collector 配置目录中,打开安全策略文件 $SDC_CONF/sdc-security.policy
    2. 将以下行添加到文件中:
      // user-defined external directory
      grant codebase "file://<external directory>-" {
        permission java.security.AllPermission;
      };

      例如:

      // user-defined external directory
      grant codebase "file:///opt/sdc-extras/-" {
        permission java.security.AllPermission;
      };
  6. 重新启动Data Collector

手动安装Cloudera Manager

要手动安装外部库以使用Cloudera Manager进行安装,请执行以下步骤:

  1. 在Cloudera Manager中,选择StreamSets服务,然后单击Configuration
  2. 在“ 配置”页面上的“sdc-env.sh”的“ 数据收集器高级配置摘要”(安全阀)字段中,添加STREAMSETS_LIBRARIES_EXTRA_DIR环境变量,并将其指向外部目录,如下所示:
    export STREAMSETS_LIBRARIES_EXTRA_DIR="<external directory>"

    例如:

    export STREAMSETS_LIBRARIES_EXTRA_DIR="/opt/sdc-extras/"

    默认情况下,路径为/var/lib/sdc

  3. 在运行Data Collector的每个节点上,根据阶段库名称为每组外部库创建子目录,如下所示:
    $STREAMSETS_LIBRARIES_EXTRA_DIR/<stage library name>/lib/

    例如,要安装JDBC驱动程序,请在每个节点上创建以下子目录:

    /opt/sdc-extras/streamsets-datacollector-jdbc-lib/lib/

    要还安装JMS驱动程序,请在每个节点上创建以下子目录:

    /opt/sdc-extras/streamsets-datacollector-jms-lib/lib/
    注意:如果您为一个特定的阶段使用多个阶段库,并且希望将外部库与所有阶段库一起使用,则必须为每个阶段库安装外部库。

    例如,假设您想将外部库与Spark Evaluator处理器一起使用,但是要使用处理器的两个版本-每个版本都来自不同的阶段库。要使外部库可用于两个处理器版本,必须将外部库上载到两个阶段库。

    提示:有关阶段库名称的列表,请参见“可用的阶段库”。
  4. 将外部库复制到每个节点上的相应子目录。
  5. 使用默认启用的Java安全管理器时,请更新sdc-security.policy属性的 Data Collector高级配置代码片段(安全阀),以包括外部目录,如下所示:
    // user-defined external directory
    grant codebase "file://<external directory>-" {
      permission java.security.AllPermission;
    };

    例如:

    // user-defined external directory
    grant codebase "file:///opt/sdc-extras/-" {
      permission java.security.AllPermission;
    };
  6. 重新启动Data Collector