如何配置Flume定制脚本
Flume支持定制脚本,支持在传输前或者传输后执行指定的脚本,用于执行准备工作。
本章节适用于MRS 3.x及之后版本。
未安装Flume客户端
- 获取软件包。
登录FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > Flume”进入Flume服务界面,在右上角选择“更多 > 下载客户端”,选择“选择客户端类型”为“完整客户端”,下载Flume服务客户端文件。
客户端文件名称为“FusionInsight_Cluster_<集群ID>_Flume_Client.tar”,本章节以“FusionInsight_Cluster_1_Flume_Client.tar”为例进行描述。
- 上传软件包。以user用户将软件包上传到将要安装Flume服务客户端的节点目录上,例如“/opt/client”
user用户为安装和运行Flume客户端的用户。
- 解压软件包。
以user用户登录将要安装Flume服务客户端的节点。进入安装包所在目录,例如“/opt/client”,执行如下命令解压安装包到当前目录。
cd /opt/client
tar -xvf FusionInsight_Cluster_1_Flume_Client.tar
- 校验软件包。
执行sha256sum -c命令校验解压得到的文件,返回“OK”表示校验通过。例如:
sha256sum -c FusionInsight_Cluster_1_Flume_ClientConfig.tar.sha256
FusionInsight_Cluster_1_Flume_ClientConfig.tar: OK
- 解压文件。
tar -xvf FusionInsight_Cluster_1_Flume_ClientConfig.tar
- 在客户端/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
- 配置/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}"
- 安装并启动Flume客户端。安装客户端详细操作请参考安装Flume客户端。
已安装Flume客户端
- 在客户端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
- 配置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}"
- 在客户端安装路径bin目录执行以下命令,重启Flume客户端,例如“/opt/FlumeClient/fusioninsight-flume-1.9.0/bin”。
./flume-manage.sh restart