流集数据收集器配置:数据收集器环境配置

本文档详细介绍了如何配置数据收集器的环境,包括修改环境变量、设置数据收集器目录、服务启动的用户和组,以及Java配置选项如Java堆大小、远程调试和垃圾回收器。此外,还涵盖了安全经理的配置,特别是保护受限制的目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据收集器环境配置

数据收集器包括多个环境变量,您可以修改这些变量以自定义以下区域:
  • 数据收集器目录
  • 用于将数据收集器作为服务启动的用户和组
  • Java 配置选项
  • 限制用户库的运行时权限的安全管理器
  • 要添加到根类装入器的 JAR 文件的路径
  • 堆转储创建和文件位置
注: 数据收集器还包括一个SPARK_KAFKA_VERSION不应修改的环境变量。仅当您在 Cloudera CDH 集群上运行集群流式处理模式管道时,才会使用此变量。有关更多信息,请参阅 Kafka 集群要求

修改环境变量

用于修改环境变量的方法取决于数据收集器安装类型:

从命令行手动启动压缩包安装

在任何操作系统上从命令行手动启动数据收集器时,请编辑该文件以修改环境变量。$SDC_DIST/libexec/sdc-env.sh

使用文本编辑器编辑文件。文件中的某些环境变量被注释掉,并且不反映默认值。请确保在更改变量值时取消注释该行。sdc-env.sh

编辑文件后,从命令提示符重新启动数据收集器以启用更改。

注意:修改环境变量后,不要从用户界面重新启动数据收集器。

压缩包或 RPM 安装作为服务在使用 SysV 初始化系统的操作系统上启动

当您在 CentOS 6、Oracle Linux 6、红帽企业版 Linux 6 或 Ubuntu 14.04 LTS 上将数据收集器作为服务启动时,请编辑该文件以修改环境变量。$SDC_DIST/libexec/sdcd-env.sh

使用文本编辑器编辑文件。sdcd-env.sh

编辑文件后,重新启动数据收集器以启用更改。

压缩包或 RPM 安装作为服务在使用 systemd 初始化系统的操作系统上启动

当您在 CentOS 7、Oracle Linux 7、红帽企业版 Linux 7 或 Ubuntu 16.04 LTS 上将数据收集器作为服务启动时,请编辑该文件以修改环境变量。sdc.service

该文件的位置取决于您安装数据收集器的方式: sdc.service
  • 从 RPM 包中 -/usr/lib/systemd/system/sdc.service
  • 从压缩包 -/etc/systemd/system/sdc.service

使用与在 systemd init 系统上覆盖设备配置文件相同的过程覆盖文件中的缺省值。有关示例,请参阅“示例 2.覆盖供应商设置“,在此 systemd.unit 手册页中。sdc.service

覆盖缺省值后,使用以下命令重新加载 systemd 管理器配置:
<span style="color:#333333"><span style="background-color:#eeeeee"><code>systemctl daemon-reload</code></span></span>

然后重新启动数据收集器以启用更改。

Cloudera 管理器安装

通过云端管理器安装数据采集器时,请通过云端管理器配置流集服务来修改环境变量。

数据收集器目录

数据收集器包括定义用于存储配置、数据、日志和资源文件的目录的环境变量。

SDC_DIST环境变量定义数据收集器运行时目录。运行时目录是存储可执行文件和相关文件的基本数据收集器目录。此环境变量是在安装过程中设置的。

手动启动数据收集器时,其余目录变量的默认值是相对于运行时目录的。将数据收集器作为服务启动时,其余目录变量的默认值是运行时目录之外的绝对路径。$SDC_DIST$SDC_DIST

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

您可以配置以下定义目录的环境变量:

环境变量描述: __________
SDC_CONF

定义数据收集器配置文件、以及相关领域属性文件和密钥库文件的配置目录。还包括 logj4 属性文件。sdc.properties

默认值:

  • 手动启动:$SDC_DIST/etc
  • 服务开始:/etc/sdc
SDC_DATA

定义管道配置和运行详细信息的数据目录。

默认值:

  • 手动启动:$SDC_DIST/data
  • 服务开始:/var/lib/sdc
SDC_LOG

定义日志目录。

默认值:

  • 手动启动:$SDC_DIST/log
  • 服务开始:/var/log/sdc
SDC_RESOURCES定义运行时资源文件的目录。

默认值:

  • 手动启动:$SDC_DIST/resources
  • 服务开始:/var/lib/sdc-resources

服务启动的用户和组

将数据收集器作为服务运行时,数据收集器将作为环境变量中定义的系统用户帐户和组运行。默认系统用户和组名为 sdc。

您可以修改环境变量的值以指向其他系统用户或组。

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

如果更改系统用户,则必须使新系统用户成为所有 数据收集器目录的所有者:
  • $SDC_DIST
  • $SDC_CONF
  • $SDC_DATA
  • $SDC_LOG
  • $SDC_RESOURCES
例如,如果将系统用户和组更改为 ,请使用以下命令将配置目录的所有者以及目录中的所有文件更改为 : myuser $SDC_CONF myuser:myuser
<span style="color:#333333"><span style="background-color:#eeeeee"><code>chown -R myuser:myuser /etc/sdc</code></span></span>
注意:手动运行数据收集器时,数据收集器将以系统用户帐户身份运行,并在运行启动命令时登录到命令提示符。若要以其他用户帐户运行,请参阅 完全安装和启动(手动启动)

Java 配置选项

您可以在环境变量中定义数据收集器使用的 Java 配置选项。

对于压缩包或 RPM 安装,请在以下环境变量中定义 Java 配置选项:

  • SDC_JAVA_OPTS - 包括 Java 的配置选项。
  • SDC_JAVA8_OPTS - 包括特定于 Java 8 的配置选项。

数据收集器加载特定于版本的环境变量的值,并将其添加到SDC_JAVA_OPTS环境变量中。

定义 Java 配置选项时,请避免定义重复的选项。如果确实定义了重复项,则传递给 JVM 的最后一个选项通常优先。

对于云服务器管理器安装,请通过云时代管理器配置流集服务来定义 Java 配置选项。

注意:要修改数据收集器命令行界面的 Java 配置选项,请使用SDC_CLI_JAVA_OPTS环境变量。有关更多信息,请参阅  Cli 命令的 Java 配置选项

爪哇堆大小

根据需要根据主机上的可用资源增加或减少数据收集器 Java 堆大小。缺省情况下,Java 堆大小为 1024 MB。

Java 堆大小确定分配给数据收集器的堆大小,并影响数据收集器在运行管道时可以使用的内存量。运行管道最多可以使用已分配堆大小的 65%。

使用以下 Java 选项来定义 Java 堆大小:
  • Xmx - 定义最大堆大小。
  • Xms - 定义最小堆大小。
提示:若要避免不断重新计算分配的堆大小,请将这两个属性设置为相同的值。若要定义度量单位,请使用 m 表示 MB,使用 g 表示 GB。

根据您的安装定义堆大小:

压缩包或转速安装

在SDC_JAVA_OPTS环境变量中定义堆大小。

例如,要使堆大小加倍,请按如下方式增加 Xmx 和 Xms 设置:

<span style="color:#333333"><span style="background-color:#eeeeee"><code>export SDC_JAVA_OPTS="${SDC_JAVA_OPTS} <strong><span style="color:#323232">-Xmx2048m -Xms2048m</span></strong> -server"</code></span></span>

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

Cloudera 管理器安装

在 Cloudera 管理器中流集服务的数据收集器高级配置代码段(安全阀)字段中定义 sdc-env.sh 堆大小。

例如,要使堆大小加倍,请在安全阀中添加以下内容: sdc-env.sh
<span style="color:#333333"><span style="background-color:#eeeeee"><code>export SDC_JAVA_OPTS="-Xmx2048m -Xms2048m"</code></span></span>
堆大小为 2048 MB 时,可以将管道配置为使用高达 65% 的内存 - 即 1331 MB 内存。
注意:在管道属性中,您可以使用 jvm:maxMemoryMB() 函数来帮助定义管道使用的堆大小的百分比。

远程调试

您可以启用远程调试以调试在远程计算机上运行的数据收集器实例。

根据您的安装启用远程调试:

压缩包或转速安装

在SDC_JAVA_OPTS环境变量中定义调试选项。

将以下调试选项添加到环境变量中,其中 是运行数据收集器的远程计算机上的开放端口号: port_number
<span style="color:#333333"><span style="background-color:#eeeeee"><code>-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=<port_number>,suspend=n</code></span></span>
例如,要使用端口号 2005 在远程计算机上调试数据收集器,请定义SDC_JAVA_OPTS,如下所示:
<span style="color:#333333"><span style="background-color:#eeeeee"><code>export SDC_JAVA_OPTS="${SDC_JAVA_OPTS} <strong><span style="color:#323232">-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=2005,suspend=n</span></strong>"</code></span></span>

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

Cloudera 管理器安装

在 Cloudera 管理器中流集服务的“Java 选项”属性中定义调试选项。

例如,若要使用端口号 2005 在远程计算机上调试数据收集器,请将调试选项添加到属性中,如下所示:
<span style="color:#333333"><span style="background-color:#eeeeee"><code>-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=2005,suspend=n</code></span></span>

垃圾回收器

您可以定义数据收集器使用的 Java 垃圾回收器。默认情况下,数据收集器使用并发标记扫描 (CMS) 垃圾回收器。

例如,如果将数据收集器配置为使用较大的堆大小,则可能需要使用 G1 垃圾回收器。如果定义了另一个垃圾回收器,请在生产环境中进行相同的更改之前测试和评估数据收集器的性能。垃圾回收器的性能取决于每个特定的用例。

根据您的安装定义垃圾回收器:

压缩包或转速安装

在SDC_JAVA8_OPTS环境变量中定义垃圾回收器。

例如,默认垃圾回收器定义如下:

<span style="color:#333333"><span style="background-color:#eeeeee"><code>export SDC_JAVA8_OPTS=${SDC_JAVA8_OPTS:-"<strong><span style="color:#323232">-XX:+UseConcMarkSweepGC -XX:+UseParNewGC</span></strong>"}</code></span></span>

要使用 G1 垃圾回收器,请按如下方式设置该选项:

<span style="color:#333333"><span style="background-color:#eeeeee"><code>export SDC_JAVA8_OPTS=${SDC_JAVA8_OPTS:-"<strong><span style="color:#323232">-XX:+UseG1GC</span></strong>"}</code></span></span>

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

Cloudera 管理器安装

在 Cloudera 管理器中流集服务的数据收集器高级配置代码段(安全阀)中定义 sdc-env.sh 字段的垃圾回收器。

例如,要使用 G1 垃圾回收器,请将以下内容添加到安全阀: sdc-env.sh
<span style="color:#333333"><span style="background-color:#eeeeee"><code> export SDC_JAVA8_OPTS="-XX:+UseG1GC"</code></span></span>

伐木

默认情况下,数据收集器启用垃圾回收器日志记录,以便于进行故障排除。日志文件将写入 。您可以禁用日志记录。$SDC_LOG/gc.log

根据您的安装禁用垃圾回收器日志记录:

压缩包或转速安装

将SDC_GC_LOGGING环境变量设置为 false。例如:

<span style="color:#333333"><span style="background-color:#eeeeee"><code>export SDC_GC_LOGGING=false</code></span></span>

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

Cloudera 管理器安装

在 Cloudera 管理器中 StreamSets 服务的数据收集器高级配置代码段(安全阀)字段中,将SDC_GC_LOGGING环境变量设置为 false sdc-env.sh。

例如,将以下内容添加到安全阀: sdc-env.sh
<span style="color:#333333"><span style="background-color:#eeeeee"><code>export SDC_GC_LOGGING=false</code></span></span>

安全经理

数据收集器包括缺省情况下启用的 Java 安全管理器。为了增强安全性,可以启用数据收集器安全管理器,以防止阶段访问受保护的数据收集器目录中的文件。

数据收集器可以使用下列安全管理器之一:

Java 安全管理器

缺省情况下,数据收集器使用 Java 安全性管理器。Java 安全管理器限制用户库的运行时许可权。这允许管理员控制生产系统上的用户库操作。例如,默认情况下,用户库无法调用网络资源,并可能导致拒绝服务 (DDoS) 攻击。

安全策略在文件中定义。文件语法是爪哇标准$SDC_CONF/sdc-security.policy

数据收集器安全经理

为了增强安全性,请启用数据收集器安全管理器。数据收集器安全管理器可防止阶段访问受保护的数据收集器目录中的文件,而不管该文件是如何定义的。sdc-security.policy

要启用数据收集器安全管理器,请取消注释数据收集器配置文件中的属性。 security_manager.sdc_manager.enable $SDC_CONF/sdc.properties
注意:如果使用较旧的 JVM 版本,则数据收集器安全管理器可能会遇到一些 JVM 已知问题。

如果需要,可以通过将SDC_SECURITY_MANAGER_ENABLED环境变量设置为 false,将数据收集器配置为不使用任何安全管理器。

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

受保护的目录

启用数据收集器安全管理器后,以下数据收集器目录是受保护的目录:
  • $SDC_CONF- 阶段无法访问配置目录中的文件。
  • $SDC_DATA- 阶段无法访问数据目录中的文件。
  • $SDC_RESOURCES- 阶段可以读取资源目录中的文件,但不能写入目录中的文件。

如果需要,可以通过修改数据收集器配置文件中的数据收集器安全管理器异常属性$SDC_CONF/sdc.属性来允许阶段访问这些受保护目录中的特定文件。但是,在配置这些受保护目录的例外时要小心。

您可以按如下方式配置受保护目录的例外:

所有舞台库的例外情况

若要允许所有阶段库访问受保护目录中的文件,请修改该属性以定义可以访问的文件。security_manager.sdc_dirs.exceptions

特定阶段库的例外情况

若要允许特定阶段库访问受保护目录中的文件,请添加以下属性,然后定义阶段库可以访问的文件:
<span style="color:#333333"><span style="background-color:#eeeeee"><code>security_manager.sdc_dirs.exceptions.<stage_library_name>=<file_path></code></span></span>
例如,缺省数据收集器配置文件包含 Java 密钥库凭证存储阶段库的异常,定义如下:
<span style="color:#333333"><span style="background-color:#eeeeee"><code>security_manager.sdc_dirs.exceptions.lib.streamsets-datacollector-jks-credentialstore-lib=$SDC_CONF/jks-credentialStore.pkcs12</code></span></span>

配置安全管理器异常属性时,请在文件路径中使用相应的目录环境变量:、或 。您可以输入多个以逗号分隔的文件路径。$SDC_CONF$SDC_DATA$SDC_RESOURCES

根类装入器

您可以编辑SDC_ROOT_CLASSPATH环境变量,以定义要添加到数据收集器根类装入器的 JAR 文件的路径。

将变量用于必须位于根类装入器中的组件,如 Snappy。默认值为 。$SDC_DIST/root-lib/'*'

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

堆转储创建

默认情况下,当数据收集器遇到内存不足错误 (OOME) 时,它会创建一个堆转储。

默认情况下,堆转储文件将写入SDC_LOG环境变量中定义的文件,并使用允许生成多个堆转储文件的命名约定,如下所示:。$SDC_LOG/sdc_heapdump_${timestamp}.hprof

您可以更改堆转储文件的名称,但建议使用 或类似的变量来确保堆转储名称是唯一的。${timestamp}

请注意,Java 虚拟机(以及数据收集器)不会覆盖现有的堆转储文件。例如,如果使用 作为文件名,则在数据收集器创建第一个堆转储文件后,在删除现有文件之前,它不会创建另一个堆转储文件。$SDC_LOG/sdc_heapdump.hprof

注意:根据生成的堆转储文件的数量和大小,您可能需要增加数据收集器  Java 堆的大小
您可以配置以下堆转储环境变量:
堆转储环境变量描述: __________
SDC_HEAPDUMP_ON_OOM指定数据收集器在遇到内存不足错误时是否生成堆转储。

默认值为真。

SDC_HEAPDUMP_PATH指定要用于堆转储文件的文件名和位置。

默认情况下,堆转储将写入 。$SDC_LOG/sdc_heapdump_${timestamp}.hprof

若要指定其他文件名或位置,请取消注释该属性,然后输入要使用的位置和文件名。

提示:若要将多个堆转储文件写入一个目录,请使用函数或变量来确保文件名是唯一的。如果目录中存在同名的文件,则数据收集器不会创建新的堆转储文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVASoftEngineer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值