更新时间:2024-10-24 GMT+08:00

如何配置Flume定制脚本

Flume支持定制脚本,支持在传输前或者传输后执行指定的脚本,用于执行准备工作。

本章节适用于MRS 3.x及之后版本。

未安装Flume客户端

  1. 获取软件包。

    登录FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > Flume”进入Flume服务界面,在右上角选择“更多 > 下载客户端”,选择“选择客户端类型”为“完整客户端”,下载Flume服务客户端文件。

    客户端文件名称为“FusionInsight_Cluster_<集群ID>_Flume_Client.tar”,本章节以“FusionInsight_Cluster_1_Flume_Client.tar”为例进行描述。

  2. 上传软件包。以user用户将软件包上传到将要安装Flume服务客户端的节点目录上,例如“/opt/client

    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客户端

已安装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