
# 如何配置Flume定制脚本
Flume支持定制脚本，支持在传输前或者传输后执行指定的脚本，用于执行准备工作。
#### 未安装Flume客户端场景
1. 获取软件包。 
   登录FusionInsight Manager，选择"集群 \> *待操作集群的名称* \> 服务 \> Flume"进入Flume服务界面，在右上角选择"更多 \> 下载客户端"，选择"选择客户端类型"为"完整客户端"，下载Flume服务客户端文件。
   客户端文件名称为"FusionInsight_Cluster_*\<集群ID\>*_Flume_Client.tar"，本章节以"FusionInsight_Cluster_1_Flume_Client.tar"为例进行描述。
   
   
2. 上传软件包。以**user** 用户将软件包上传到将要安装Flume服务客户端的节点目录上，例如"/opt/client"
   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   user用户为安装和运行Flume客户端的用户。
   
   
3. 解压软件包。 
   以**user**用户登录将要安装Flume服务客户端的节点。进入安装包所在目录，例如"/opt/client"，执行如下命令解压安装包到当前目录。
   **cd** **/opt/client**
   **tar -xvf FusionInsight** **_Cluster_1_Flume_Client.tar**
   
   
4. 校验软件包。 
   执行**sha256sum -c**命令校验解压得到的文件，返回"OK"表示校验通过。例如：
   **sha256sum -c FusionInsight** **_Cluster_1_Flume_ClientConfig.tar.sha256**
   ```
   FusionInsight_Cluster_1_Flume_ClientConfig.tar: OK
   ```
   
   
5. 解压文件。 
   **tar -xvf FusionInsight** **_Cluster_1_Flume_ClientConfig.tar**
   
   
6. 在客户端/opt/client/FusionInsight_Cluster_1_Flume_ClientConfig/Flume/FlumeClient/flume/conf/flume-check.properties文件中配置client.per-check.shell，指向plugin.sh的绝对路径。 
   配置如下：
   **client.per-check.shell=/opt/client/FusionInsight_Cluster_1_Flume_ClientConfig/Flume/FlumeClient/flume/plugins.s/plugin.sh**
   **plugins = com.huawei.flume.services.FlumePreTransmitService**
   **flume.check.default.interval = 15**
   
   
7. 配置/opt/client/FusionInsight_Cluster_1_Flume_ClientConfig/Flume/FlumeClient/flume/conf/plugin.conf文件，定义具体调用的脚本、相关参数。 
   配置如下：
   **RUN_PLUGIN="PLUGIN_LIST_1"**
   **LOG_TO_HDFS_PATH="/yxs"**
   **LOG_TO_HDFS_ENCODE_PATH="${LOG_TO_HDFS_PATH}/Flume_Encoded/"**
   **PLUGIN_LINK_DIR="/tmp/yxs1"**
   **PLUGIN_MV_TARGET_DIR="/tmp/yxs2"**
   **PLUGIN_SUFFIX="COMPLETED"**
   **PLUGIN_LIST_1="mv_complete.sh --linkdir ${PLUGIN_LINK_DIR} --mvtargetdir ${PLUGIN_MV_TARGET_DIR} --suffix ${PLUGIN_SUFFIX}"**
   
   
8. 安装并启动Flume客户端。安装客户端详细操作请参考[安装Flume客户端](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1595.html)。
 
#### 已安装Flume客户端场景
1. 在客户端flume-check.properties文件中配置client.per-check.shell，指向plugin.sh的绝对路径。 
   例如Flume客户端安装路径为"/opt/FlumeClient"，则flume-check.properties文件所在目录为/opt/FlumeClient/fusioninsight-flume-1.9.0/conf，
   配置如下：
   **client.per-check.shell=/opt/FlumeClient/fusioninsight-flume-1.9.0/plugins.s/plugin.sh**
   **plugins = com.huawei.flume.services.FlumePreTransmitService**
   **flume.check.default.interval = 15**
   
   
2. 配置plugin.conf，定义具体调用的脚本、相关参数。 
   例如Flume客户端安装路径为"/opt/FlumeClient"，则plugin.conf配置文件所在目录为/opt/FlumeClient/fusioninsight-flume-1.9.0/conf，
   配置如下：
   **RUN_PLUGIN="PLUGIN_LIST_1"**
   **LOG_TO_HDFS_PATH="/yxs"**
   **LOG_TO_HDFS_ENCODE_PATH="${LOG_TO_HDFS_PATH}/Flume_Encoded/"**
   **PLUGIN_LINK_DIR="/tmp/yxs1"**
   **PLUGIN_MV_TARGET_DIR="/tmp/yxs2"**
   **PLUGIN_SUFFIX="COMPLETED"**
   **PLUGIN_LIST_1="mv_complete.sh --linkdir ${PLUGIN_LINK_DIR} --mvtargetdir ${PLUGIN_MV_TARGET_DIR} --suffix ${PLUGIN_SUFFIX}"**
   
   
3. 在客户端安装路径bin目录执行以下命令，重启Flume客户端，例如"/opt/FlumeClient/fusioninsight-flume-1.9.0/bin"。 
   **./flume-manage.sh restart**
   
   
 
