
# 如何在Flume配置文件中使用环境变量
1. 以**root**用户登录安装Flume客户端所在节点。
2. 切换到以下目录。 
   **cd** *Flume客户端安装目录* /**fusioninsight-flume** -*Flume组件版本号* /**conf**
   
   
3. 在该目录下的"flume-env.sh"文件中添加环境变量。 
   - 格式：
     ```
     export 变量名=变量值
     ```
     
   
   - 示例：
     ```
     JAVA_OPTS="-Xms2G -Xmx4G -XX:CMSFullGCsBeforeCompaction=1 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -DpropertiesImplementation=org.apache.flume.node.EnvVarResolverProperties"
     export TAILDIR_PATH=/tmp/flumetest/201907/20190703/1/.*log.*
     ```
     
   
   
   
   
4. 重启Flume实例进程。 
   1. 登录FusionInsight Manager。
   
   2. 选择"集群 \> 服务 \> Flume \> 实例"，勾选Flume实例，选择"更多 \> 重启实例"输入密码，单击"确定"等待实例重启成功。
   
   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/notice_3.0-zh-cn.png)
   服务端flume-env.sh生效后不能通过Manager界面重启整个Flume服务，否则用户自定义环境变量丢失，仅需在Manager界面重启对应实例即可。
   
   
5. 在"*Flume客户端安装目录* **/fusioninsight-flume-** *F* *lume组件版本号* **/conf/properties.properties** "配置文件中使用"${变量名}"格式引用变量，示例如下：
   
   ```
   client.sources.s1.type = TAILDIR
   client.sources.s1.filegroups = f1
   client.sources.s1.filegroups.f1 = ${TAILDIR_PATH}
   client.sources.s1.positionFile = /tmp/flumetest/201907/20190703/1/taildir_position.json
   client.sources.s1.channels = c1
   ```
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/notice_3.0-zh-cn.png)
   - 必须保证"flume-env.sh"生效之后，再执行[5]配置"properties.properties"文件。
   
   - 如果在本地配置该文件，配置完成后可参考如下步骤在Manager界面上传配置文件。如果操作顺序不规范，可能造成用户自定义环境变量丢失。
     1. 登录FusionInsight Manager。
     
     2. 选择"集群 \> 服务 \> Flume \> 配置"，勾选Flume实例，在"flume.config.file"后单击"上传文件"，上传"properties.properties"文件。
      
    
   
   
 
