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

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

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐