启动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 f2.sh
#! /bin/bash
case $1 in
"start"){
for i in hadoop04
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/kafka-flume-hdfs.conf --name a1 -Dflume.root.logger=INFO,LOGFILE >/training/apache-flume-1.9.0-bin/log2.txt 2>&1 &"
done
};;
"stop"){
for i in hadoop104
do
echo "==========停止 $i 消费flume=========="
ssh $i "ps -ef | awk 'kafka-flume-hdfs.conf/ && !/awk/{print \$2}' | xargs kill -9"
done
};;
esac
给执行权限
chmod 777 f1.sh
f2.sh start 开启
f2.sh stop 消费
注解:
nohup:将脚本放置后台运行;
/training/apache-flume-1.9.0-bin/bin/flume-ng:我的flume的flume-ng路径;
--conf-file /training/apache-flume-1.9.0-bin/conf/kafka-flume-hdfs.conf:我的conf文件路径;
Dflume.root.logger=INFO,LOGFILE >/training/apache-flume-1.9.0-bin/log2.txt:脚本执行情况的日志路径和日志名;
2>&1 &:不在控制台输出;
ps -ef | awk '/.conf/ && !/awk/{print \$2}:获取conf文件执行产生的进程id;
xargs kill -9:杀死该进程。
本文参考网络资料写成,资料太多已找不到来源!如有错误,恳请大佬指正!