flume学习

Posted

tags:

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

Flume 使用方式 要点



1.*.conf 文件

   

agent1.sources = source1

agent1.sinks = mysqlSink

agent1.channels = channel1

 

  

 

# Describe/configure source1

agent1.sources.source1.type = exec

agent1.sources.source1.command = ftail.sh  /data/phicomm-oa/tomcat-9999/logs/phicomm-oa.log

agent1.sources.source1.channels = channel1

 

 

# Describe mysqlSink

agent1.sinks.mysqlSink.type = org.flume.mysql.sink.MysqlSink

agent1.sinks.mysqlSink.hostname=172.18.191.52

agent1.sinks.mysqlSink.port=3306

agent1.sinks.mysqlSink.databaseName=logdatabase

agent1.sinks.mysqlSink.tableName=tb_oarelease_log

agent1.sinks.mysqlSink.user=test

agent1.sinks.mysqlSink.password=test

agent1.sinks.mysqlSink.channel = channel1




# Use a channel which buffers events in memory

agent1.channels.channel1.type = file

agent1.channels.channel1.checkpointDir=/opt/flume_home/checkpoint

agent1.channels.channel1.dataDirs=/opt/flume_home/tmp

agent1.channels.channel1.capacity = 1000

agent1.channels.channel1.transactionCapactiy = 100

  

 

# Bind the source and sink to the channel

agent1.sources.source1.channels = channel1

agent1.sinks.mysqlSink.channel = channel1



2.ftail.sh 文件


 #!/bin/sh


# ftail.sh = tail -f 的增强版本,可检查文件是否重建过或删除过

# usage: ftail.sh <file>

# author: [email protected]

# release time: v0.1 2010.11.04/05


# 显示title

echo "+---------------------------------------------------------------------------------------------+"

echo "| ftail.sh v0.1 - a bash script that enhanced ‘tail -f‘, written by [email protected] |" >&2

echo "+---------------------------------------------------------------------------------------------+"

echo


# 判断参数个数

if [ "$#" != "1" ]; then

echo "usage: $0 <file>" >&2

exit 1

fi


# 取文件参数

FILE="$1"


# 取文件的inode

INODE=$(stat -c "%i" "$FILE")


# 启动tail -f进程,并打印信息

# usage: fork_tail

fork_tail()

{

if [ -r "$FILE" ]; then

tail -f "$FILE" &

PID=$!

#echo "##### $0: FILE $FILE INODE=$INODE PID $PID #####" >&2

else

PID=

INODE=

#echo "##### $0: FILE $FILE NOT FOUND #####" >&2

fi

}


# 杀掉tail进程

# usage: kill_tail

kill_tail()

{

if [ "$PID" ]; then

kill $PID

fi

}


# 检查inode是否变化了

# usage: inode_changed

inode_changed()

{

NEW_INODE=$(cat /proc/*/status | grep PPid | grep "$$" | wc -l>/dev/null)

if [ "2" == "$NEW_INODE" ]; then

return 1

else

INODE=$NEW_INODE

fi

}


# 设置陷阱,按Ctrl+C终止或者退出时杀掉tail进程

trap "kill_tail;" SIGINT SIGTERM SIGQUIT


# 首次启动tail -f进程

fork_tail


# 每隔一定时间检查文件的inode是否变化,如果变化就先杀掉原来的tail进程,重新启动tail进程

while :

do

sleep 15

if inode_changed; then

kill_tail

fork_tail

fi

done


# END.



3.启动 Flume

  1.运行 cd /opt/flume_home/apache-flume-1.4.0-bin//bin/命令 进入bin目录下

  2.运行 sh ./oareleasestart.sh  命令



4.查看flume进程

   使用  ps -ef | grep flume命令 


5.杀死flume进程

   使用 kill -9 端口号



注:


1.使用 命令 ls -l ftail.sh 可以查看 文件 “ftail.sh”的权限

----rwxrwx 1 root root


可读(r/4)  可写(w/2) 可执行(x/1) 无权限(-/0)

第一个字符代表文件类型 d代表目录,-代表非目录。

以后每三个为一组,分别代表:所有者权限、同组用户权限、其它用户权限


 

2.使用 chmod 057 ftail.sh  设置文件权限  

此时文件“ftail.sh”权限是   ----r-xrwx(无权限|可读可执行|可读可写可执行)


本文出自 “7619052” 博客,请务必保留此出处http://7629052.blog.51cto.com/7619052/1745002

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

Flume(NG)架构设计要点及配置实践

Flume学习之路 Flume的配置方式

flume学习---sink

Flume学习笔记

flume学习一:flume基础知识

Flume 使用学习小结