logstash使用webhdfs插件指定输出字段存储数据到hdfs时间分层(还能保留原来数据)
基于项目新搭建环境-->部分工具版本hadoop 2.6.5 ;hive-1.2.1logstash 2.4.0; impala-2.8; elasticsesarch-5.4.1; spark-2.1.1; scala 2.12.2jdk1.8;kafka 2.10;redis-3.0.7;zookeeper-3.4正文:一个简单需求,就是通过
基于项目新搭建环境-->部分工具版本
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)