Flume启动问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flume启动问题相关的知识,希望对你有一定的参考价值。

参考技术A 在虚拟机上启动Flume时报内存不足的错误:

第一反应以为是虚拟机的内存太小,但每个虚拟机至少都有2G的内存,而且仅仅只启动了flume,所以光启动flume就报错,应该不是这个原因。
第二反应是flume的channel是使用的memory存储的类型,于是改成file存储试试:

但是重启还是报错,回头想一下在flume还没有启动完成的时候,应该还没有到channel这一步,也不是这个问题。
最后试了下改变flume本身的Java内存配置,第一个地方是 flume安装目录/conf/flume-env.sh 中的配置:

报错依然存在,第二个地方是 flume安装目录/bin/flume-ng 中

重新启动flume成功。

另外多个agent串联的情况下,注意先启动后面的agent再启动前面的agent,否则会报错:

日志采集Flume启动停止脚本

(1)在/home/atguigu/bin目录下创建脚本f1.sh

[atguigu@hadoop102 bin]$ vim f1.sh

在脚本中填写如下内容

#! /bin/bash

case $1 in
"start")
        for i in hadoop102 hadoop103
        do
                echo " --------启动 $i 采集flume-------"
                ssh $i "nohup /opt/module/flume/bin/flume-ng agent --conf-file /opt/module/flume/conf/file-flume-kafka.conf --name a1 -Dflume.root.logger=INFO,LOGFILE >/opt/module/flume/log1.txt 2>&1  &"
        done
;;	
"stop")
        for i in hadoop102 hadoop103
        do
                echo " --------停止 $i 采集flume-------"
                ssh $i "ps -ef | grep file-flume-kafka | grep -v grep |awk  'print \\$2' | xargs -n1 kill -9 "
        done

;;
esac

说明1:
nohup,该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
nohup就是不挂起的意思,不挂断地运行命令。

说明2:
awk 默认分隔符为空格

说明3:
$2是在“”双引号内部会被解析为脚本的第二个参数,但是这里面想表达的含义是awk的第二个值,所以需要将他转义,用\\$2表示。

说明4:
xargs 表示取出前面命令运行的结果,作为后面命令的输入参数。

(2)增加脚本执行权限

[atguigu@hadoop102 bin]$ chmod u+x f1.sh

(3)f1集群启动脚本

[atguigu@hadoop102 module]$ f1.sh start

(4)f1集群停止脚本

[atguigu@hadoop102 module]$ f1.sh stop

以上是关于Flume启动问题的主要内容,如果未能解决你的问题,请参考以下文章

flume 启动,停止,重启脚本

(02)Flume安装及其启动

flume采集启动报错,权限不够

日志采集Flume启动停止脚本

日志采集Flume启动停止脚本

日志采集Flume启动停止脚本