2013-01-25
周海汉 2013.1.25 http://abloz.com
在flume master中配置agent的configure如下:
config ag1 tail("/home/zhouhh/cars.csv",startFromEnd=true) |agentSink("hadoop48",35853);
config co1 collectorSource( 35853 )|[collectorSink( "hdfs://hadoop48:54310/user/flume/%y%m/%d","%{host}-",5000,raw),collectorSink( "hdfs://hadoop48:54310/user/flume/%y%m","%{host}-",10000,raw)];
但是发现,如果重启agent,则agent会重新读取tail
[zhouhh@Hadoop46 ~]$ flume-daemon.sh stop node -n ag1
stopping node
[zhouhh@Hadoop46 ~]$ flume-daemon.sh start node -n ag1
starting node, logging to /home/zhouhh/flume-distribution-0.9.4/logs/flume-zhouhh-node-Hadoop46.out
[zhouhh@Hadoop46 ~]$ hadoop fs -ls /user/flume/1301
-rw-r--r-- 2 zhouhh supergroup 261 2013-01-25 11:16 /user/flume/1301/Hadoop46-20130125-111627296+0800.2334041655608560.00000021
-rw-r--r-- 2 zhouhh supergroup 261 2013-01-25 11:17 /user/flume/1301/Hadoop46-20130125-111738299+0800.2334112657728560.00000021
这两个文件内容一样。
再重启,又增加一个。
[zhouhh@Hadoop46 ~]$ flume-daemon.sh stop node -n ag1
stopping node
[zhouhh@Hadoop46 ~]$ flume-daemon.sh start node -n ag1
starting node, logging to /home/zhouhh/flume-distribution-0.9.4/logs/flume-zhouhh-node-Hadoop46.out
[zhouhh@Hadoop46 ~]$ hadoop fs -ls /user/flume/1301
-rw-r--r-- 2 zhouhh supergroup 261 2013-01-25 11:16 /user/flume/1301/Hadoop46-20130125-111627296+0800.2334041655608560.00000021
-rw-r--r-- 2 zhouhh supergroup 261 2013-01-25 11:17 /user/flume/1301/Hadoop46-20130125-111738299+0800.2334112657728560.00000021
-rw-r--r-- 2 zhouhh supergroup 261 2013-01-25 11:19 /user/flume/1301/Hadoop46-20130125-111929858+0800.2334224217328560.00000021
另外,如果用重定向符»往文件追加内容,则系统会添加新内容。而如果用vim编辑后关闭文件,则flume也会重新发送整个文件。 这是因为vim编辑文件是在临时文件中编辑的,编辑完,将源文件删除,用临时文件替换原文件内容。这导致inode变化。所以agent只好重新发送整个文件。这些都可能导致日志操作时的问题。
flume 的tail 类似于unix系统tail -F, -F参数是在文件被用其他文件替换后重新读取的。但因为inode改变,无法确认追加,只能重新全部读取。
[zhouhh@Hadoop46 ~]$ tail --follow=name cards
haha,1,2
2013.1.23.18:52:59 haha,3,4
asdf
hello,
what heppen?
haha
tail: `cards' has been replaced; following end of new file //此处在另一个console中用vim编辑了该文件。
haha,1,2
2013.1.23.18:52:59 haha,3,4
asdf
hello,
what heppen?
haha
i love it!
这种方式方便日志文件的滚动命名,但需要注意可能引入的问题。
参考: tail -f 不起作用了? http://geeklu.com/2010/06/continuous-monitor-tail-fails/
如非注明转载, 均为原创. 本站遵循知识共享CC协议,转载请注明来源
FEATURED TAGS
css
vc6
http
automake
linux
make
makefile
voip
乱码
awk
flash
vista
vi
vim
javascript
pietty
putty
ssh
posix
subversion
svn
windows
删除
编译
多线程
wxwidgets
ie
ubuntu
开源
c
python
bash
备份
性能
scp
汉字
log
ruby
中文
bug
msn
nginx
php
shell
wordpress
mqueue
android
eclipse
java
mac
ios
html5
js
mysql
protobuf
apache
hadoop
install
iocp
twisted
centos
mapreduce
hbase
thrift
tutorial
hive
erlang
lucene
hdfs
sqoop
utf8
filter
草原
yarn
ganglia
恢复
scrapy
django
fsimage
flume
tail
flume-ng
mining
scala
go
kafka
gradle
cassandra
baas
spring
postgres
maven
mybatis
mongodb
https
nodejs
镜像
心理学
机器学习
Keras
theano
anaconda
docker
spark
akka-http
json
群论
区块链
加密
抽象代数
离散对数
同余
欧拉函数
扩展欧几里德算法
ES6
node-inspect
debug
win10
vscode
挖矿