数据收集器环境配置
- 数据收集器目录
- 用于将数据收集器作为服务启动的用户和组
- Java 配置选项
- 限制用户库的运行时权限的安全管理器
- 要添加到根类装入器的 JAR 文件的路径
- 堆转储创建和文件位置
修改环境变量
从命令行手动启动压缩包安装
在任何操作系统上从命令行手动启动数据收集器时,请编辑该文件以修改环境变量。$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
<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_DATA | 定义管道配置和运行详细信息的数据目录。 默认值:
|
SDC_LOG | 定义日志目录。 默认值:
|
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 堆大小。缺省情况下,Java 堆大小为 1024 MB。
Java 堆大小确定分配给数据收集器的堆大小,并影响数据收集器在运行管道时可以使用的内存量。运行管道最多可以使用已分配堆大小的 65%。
- Xmx - 定义最大堆大小。
- Xms - 定义最小堆大小。
根据您的安装定义堆大小:
压缩包或转速安装
在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>
远程调试
您可以启用远程调试以调试在远程计算机上运行的数据收集器实例。
压缩包或转速安装
在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>
<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
如果需要,可以通过将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
堆转储环境变量 | 描述: __________ |
---|---|
SDC_HEAPDUMP_ON_OOM | 指定数据收集器在遇到内存不足错误时是否生成堆转储。 默认值为真。 |
SDC_HEAPDUMP_PATH | 指定要用于堆转储文件的文件名和位置。 默认情况下,堆转储将写入 。 若要指定其他文件名或位置,请取消注释该属性,然后输入要使用的位置和文件名。
提示:若要将多个堆转储文件写入一个目录,请使用函数或变量来确保文件名是唯一的。如果目录中存在同名的文件,则数据收集器不会创建新的堆转储文件。
|