问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

flume如何监听日志数

发布网友 发布时间:2022-04-22 05:45

我来回答

1个回答

热心网友 时间:2022-04-10 02:45

1.采集日志文件时一个很常见的现象
采集需求:比如业务系统使用log4j生成日志,日志内容不断增加,需要把追加到日志文件中的数据实时采集到hdfs中。12

1.1.根据需求,首先定义一下3大要素:
采集源,即source—监控日志文件内容更新:exec ‘tail -F file’
下沉目标,即sink—HDFS文件系统:hdfs sink
Source和sink之间的传递通道—-channel,可用file channel也可以用 内存channel。
1.2.进入/home/tuzq/software/apache-flume-1.6.0-bin/agentconf,编写配置文件tail-hdfs.conf,文件内容如下:
# Name the components on this agenta1.sources = r1a1.sinks = k1
a1.channels = c1# Describe/configure the source## exec表示flume回去调用给的命令,然后从给的命令的结果中去拿数据a1.sources.r1.type = exec## 使用tail这个命令来读数据a1.sources.r1.command = tail -F /home/tuzq/software/flumedata/test.loga1.sources.r1.channels = c1# Describe the sink## 表示下沉到hdfs,类型决定了下面的参数a1.sinks.k1.type = hdfs## sinks.k1只能连接一个channel,source可以配置多个a1.sinks.k1.channel = c1## 下面的配置告诉用hdfs去写文件的时候写到什么位置,下面的表示不是写死的,而是可以动态的变化的。表示输出的目录名称是可变的a1.sinks.k1.hdfs.path = /flume/tailout/%y-%m-%d/%H%M/##表示最后的文件的前缀a1.sinks.k1.hdfs.filePrefix = events-## 表示到了需要触发的时间时,是否要更新文件夹,true:表示要a1.sinks.k1.hdfs.round = true## 表示每隔1分钟改变一次a1.sinks.k1.hdfs.roundValue = 1## 切换文件的时候的时间单位是分钟a1.sinks.k1.hdfs.roundUnit = minute## 表示只要过了3秒钟,就切换生成一个新的文件a1.sinks.k1.hdfs.rollInterval = 3## 如果记录的文件大于20字节时切换一次a1.sinks.k1.hdfs.rollSize = 20## 当写了5个事件时触发a1.sinks.k1.hdfs.rollCount = 5## 收到了多少条消息往dfs中追加内容a1.sinks.k1.hdfs.batchSize = 10## 使用本地时间戳a1.sinks.k1.hdfs.useLocalTimeStamp = true#生成的文件类型,默认是Sequencefile,可用DataStream:为普通文本a1.sinks.k1.hdfs.fileType = DataStream# Use a channel which buffers events in memory##使用内存的方式a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000a1.channels.c1.transactionCapacity = 100# Bind the source and sink to the channela1.sources.r1.channels = c1
a1.sinks.k1.channel = c112345678910111213141516171819202122232425262728293031323334353637383940414243444546474849

1.3.编写完成之后,启动flume,执行的命令是:
[root@hadoop1 flumedata]#cd /home/tuzq/software/apache-flume-1.6.0-bin/agentconf[root@hadoop1 flumedata]#bin/flume-ng agent -c conf -f agentconf/tail-hdfs.conf -n a112

1.4.通过写一个死循环往test.log中写数据的方式模式日志文件增长
编写shell脚本,模拟日志增长变化。
[root@hadoop1 flumedata]# cd /home/tuzq/software/flumedata[root@hadoop1 flumedata]# while true>do> date >> test.log> sleep 2> done123456

查看日志变化
[root@hadoop1 ~]# cd /home/tuzq/software/flumedata/[root@hadoop1 flumedata]# lsaccess.log error.log test.log[root@hadoop1 flumedata]# tail -f test.log 2017年 06月 13日 星期二 22:02:22 CST2017年 06月 13日 星期二 22:02:24 CST2017年 06月 13日 星期二 22:02:26 CST2017年 06月 13日 星期二 22:02:28 CST2017年 06月 13日 星期二 22:02:30 CST2017年 06月 13日 星期二 22:02:32 CST12345678910

通过上面的文件,可以看到test.log在不停的追加数据。
到hdfs中进行查看,效果如下:
[root@hadoop1 ~]# hdfs dfs -ls /Found 5 items
drwxr-xr-x - root supergroup 0 2017-06-13 12:01 /40000drwxr-xr-x - root supergroup 0 2017-06-13 22:01 /flume
-rw-r--r-- 3 root supergroup 3719 2017-06-10 12:11 /kms.sh
drwxrwxrwx - root supergroup 0 2017-06-10 22:06 /tmp
drwxr-xr-x - root supergroup 0 2017-06-10 22:27 /user
[root@hadoop1 ~]# hdfs dfs -ls /flumeFound 1 items
drwxr-xr-x - root supergroup 0 2017-06-13 22:01 /flume/tailout
[root@hadoop1 ~]# hdfs dfs -ls /flume/tailoutFound 1 items
drwxr-xr-x - root supergroup 0 2017-06-13 22:03 /flume/tailout/17-06-13[root@hadoop1 ~]# hdfs dfs -ls /flume/tailout/17-06-13Found 4 items
drwxr-xr-x - root supergroup 0 2017-06-13 22:01 /flume/tailout/17-06-13/2201drwxr-xr-x - root supergroup 0 2017-06-13 22:03 /flume/tailout/17-06-13/2202drwxr-xr-x - root supergroup 0 2017-06-13 22:04 /flume/tailout/17-06-13/2203drwxr-xr-x - root supergroup 0 2017-06-13 22:04 /flume/tailout/17-06-13/2204[root@hadoop1 ~]# hdfs dfs -ls /flume/tailout/17-06-13Found 5 items
drwxr-xr-x - root supergroup 0 2017-06-13 22:01 /flume/tailout/17-06-13/2201drwxr-xr-x - root supergroup 0 2017-06-13 22:03 /flume/tailout/17-06-13/2202drwxr-xr-x - root supergroup 0 2017-06-13 22:04 /flume/tailout/17-06-13/2203drwxr-xr-x - root supergroup 0 2017-06-13 22:05 /flume/tailout/17-06-13/2204drwxr-xr-x - root supergroup 0 2017-06-13 22:05 /flume/tailout/17-06-13/2205[root@hadoop1 /]# hdfs dfs -ls /flume/tailout/17-06-13Found 6 items
drwxr-xr-x - root supergroup 0 2017-06-13 22:01 /flume/tailout/17-06-13/2201drwxr-xr-x - root supergroup 0 2017-06-13 22:03 /flume/tailout/17-06-13/2202drwxr-xr-x - root supergroup 0 2017-06-13 22:04 /flume/tailout/17-06-13/2203drwxr-xr-x - root supergroup 0 2017-06-13 22:05 /flume/tailout/17-06-13/2204drwxr-xr-x - root supergroup 0 2017-06-13 22:06 /flume/tailout/17-06-13/2205drwxr-xr-x - root supergroup 0 2017-06-13 22:06 /flume/tailout/17-06-13/2206[root@hadoop1 /]1234567891011121314151617181920212223242526272829303132333435

通过上面的案例可以知道,增加的日志文件已经被写入到HDFS中。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
粒上皇开口熟栗120g*5袋(共600g)-详细介绍 三皇王板栗介绍 品牌榜:2024年板栗十大品牌排行榜 投票结果公布【新】 为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 如何使用Delphi7里timer控件? 用HTML做一个贪吃蛇? 西安UI培训学校哪家好 如何把qt的时间类型写入mysql server数据库 我想问一下这个游戏UI题怎么解? 林佳树和河图怎么回事 请问日本的艺人Gackt的朋友都有谁啊,我想写关于他... 谁知道为什么灌篮高手的动画没有出完?到101就结束了 流川枫投过三分球吗 灌篮高手(动漫) 有关樱木花道的问题 寻找miyavi同人文一篇 yoshiki为什么叫土豆? yoshiki的所有女朋友? X-japan的yoshiki怎么样?很坏么?详细资料给个 关于yoshiki和hide的问题!!!!! 想求Xjapan里的toshi和yoshiki的同人文啊 嗯 或者... 谁有yoshiki、hide、toshi、gackt的同人文啊?越多... 求x-japan yoshiki的同人小说 yoshiki的同人~禁脔~谁有? 求红色警戒搜所有基址的文字教程...不要视频的 跪求猎杀潜航4装甲,潜艇舰炮数量威力修改方法,要... reset 啥意思 谁可以给我个淘宝倒计时的代码 古代汉语中“间”的义项并举例 哪有现代物流常用名词及词组英汉对照 电子发票目录设置怎么设置? 开具增值税电子专用发票目录设置怎么弄文件夹下暂... 电子发票目录设置怎么设置视频流程 电子专用发票怎么开具流程 增值税电子发票目录设置 电子发 票目录设置怎么设置? 增值税电子发票的目录设置要导入什么 电子普票目录设置是什么意思 电子版发票怎么开票 现在CCIE和HCIE到底哪个市场需求量大,有什么推荐... 计算机中的16色、256色等是指什么? 网络工程师现在考什么证书好? 苹果xsmax电池老化需要更换电池吗? 苹果xsmax的电池不耐用了,新电池的价格是多少?