启动flume的conf命令复杂难记?
启动flume的conf命令占用窗口?
一个脚本帮你搞定
只需一条命令实现功能。
一、前期准备(为了更多的脚本准备)
创建/sh/bin文件夹
mkdir sh
设置环境变量
vi ~/.bash_profile
#加入以下内容
#群起脚本环境变量
PATH=$PATH:/root/sh/bin
vi ~/.bashrc
#加入以下内容
#群起脚本环境变量
PATH=$PATH:/root/sh/bin
export PATH
#修改成自己的jdk路径
export JAVA_HOME=/training/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
环境变量生效
source ~/.bash_profile
source ~/.bashrc
二、脚本实现
进入/sh/bin编写jar包
vi f1.sh
#! /bin/bash
case $1 in
"start")
for i in hadoop01 hadoop03
do
echo "==========启动$i采集flume=========="
ssh $i "nohup /training/apache-flume-1.9.0-bin/bin/flume-ng agent --conf-file /training/apache-flume-1.9.0-bin/conf/file-flume-kafka.conf -n a1 -Dflume.root.logger=INFO,LOGFILE >/training/apache-flume-1.9.0-bin/flume-log.txt 2>&1 &"
done
;;
"stop")
for i in hadoop01 hadoop03
do
echo "==========停止$i=========="
ssh $i "ps -ef | awk '/.conf/ && !/awk/{print \$2}' | xargs kill -9"
done
;;
esac
给执行权限
chmod 777 f1.sh
nohup:将脚本放置后台运行;
/training/apache-flume-1.9.0-bin/bin/flume-ng:我的flume的flume-ng路径;
--conf-file /training/apache-flume-1.9.0-bin/conf/file-flume-kafka.conf:我的conf文件路径;
Dflume.root.logger=INFO,LOGFILE >/training/apache-flume-1.9.0-bin/flume-log.txt:脚本执行情况的日志路径和日志名;
2>&1 &:不在控制台输出;
ps -ef | awk '/.conf/ && !/awk/{print \$2}:获取conf文件执行产生的进程id;
xargs kill -9:杀死该进程。
本文参考网络资料写成,资料太多已找不到来源!如有错误,恳请大佬指正!