logstash使用webhdfs插件指定输出字段存储数据到hdfs时间分层(还能保留原来数据)

基于项目新搭建环境-->部分工具版本

hadoop 2.6.5 ;hive-1.2.1

logstash 2.4.0; impala-2.8; elasticsesarch-5.4.1; spark-2.1.1; scala 2.12.2

jdk1.8;kafka 2.10;redis-3.0.7;zookeeper-3.4


正文:

一个简单需求,就是通过logstash(后期也会使用flume)接入数据,并且解析数据输入到webHDFS,根据获取系统日志产生的时间进行自动分年月日存储数据分区

第一步:

测试日志例子:



conf文件input内容:

input{
file{
#path => "/home/tina/HDFS/test.log"
#path => "/home/tina/HDFS/test0705.log"
#path => "/home/tina/HDFS/test070510.log"
path => "/home/tina/HDFS/test070511.log"

}


}

fiter内容,附带各种方法插件解析正则

filter{
grok{
match=>["message",".*(?<YYYY>\d{4})-(?<MM>\d{2})-(?<dd>\d{2})T.*(?<INFO>INFO).*(?<logstash>logstash).*"]
#match => {
#"message" => "%{YYYY} %{INFO}"
#}
#match => {
#"message" => "(?<YYYY>\d{4})"
#}
#overwrite => ["message"]
}
mutate{
#gsub可以替换message替换自定字符,message输出webhdfs里面会自带@timestamp hostname message。中间有空格可以替换
#gsub=>[
#"message"," ","|"
#]
#删除message字段,就会输出空值
#remove_field => ["message"]
#增加个新的message字段会出现message[0](原数据),message[1](指定字段值)
#add_field => ["message","%{YYYY}-%{INFO}"]
#更新message字段,将会更新message所有值。%{YYYY}此表达式可以更新成自己需要的指定输出的字段值,也可以拼接回原来的%{message}值
update => { "message" => "%{YYYY}-%{INFO}-%{message}"}
}


#grok{
#        重新覆盖message字段的输出overwrite
#overwrite => ["message"]
#}
}

output输出内容

output{
webhdfs {

host => "192.1.1.151"
port => 50070
path => "/chao/hdfs/test/070509/logstash-%{+ss}.log"
user => "lee"
}
stdout{
codec => rubydebug
}
}

测试结果:(每次测试案例都不同)

[tina@master ~]$ hadoop fs -cat /chao/hdfs/test/070509/logstash-28.log
2017-07-05T02:42:28.187Z master 2013-INFO-[2013-06-03T01:00:00,119][INFO ][logstash.outputs.elasticsearch] 
2017-07-05T02:42:28.189Z master 2013-INFO-[2013-06-03T01:00:00,128][INFO ][logstash.outputs.elasticsearch]




结果年份

drwxr-xr-x   - lee supergroup          0 2017-07-04 17:32 /chao/hdfs/2011
drwxr-xr-x   - lee supergroup          0 2017-07-04 16:54 /chao/hdfs/2013
drwxr-xr-x   - lee supergroup          0 2017-07-04 16:21 /chao/hdfs/2015
drwxr-xr-x   - lee supergroup          0 2017-07-04 16:21 /chao/hdfs/2016
drwxr-xr-x   - lee supergroup          0 2017-07-04 16:11 /chao/hdfs/2017

结果月份

drwxr-xr-x   - lee supergroup          0 2017-07-04 16:11 /chao/hdfs/2017/06
drwxr-xr-x   - lee supergroup          0 2017-07-04 16:11 /chao/hdfs/2017/07
drwxr-xr-x   - lee supergroup          0 2017-07-04 16:11 /chao/hdfs/2017/08
drwxr-xr-x   - lee supergroup          0 2017-07-04 16:11 /chao/hdfs/2017/09
drwxr-xr-x   - lee supergroup          0 2017-07-04 16:11 /chao/hdfs/2017/10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shaw_Bigdata

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值