Fluentd 写日志到 HDFS
当前已经实现LogServer收集日志信息并调用Fluentd写入HDFS
由于使用Presto对HDFS中的数据进行分析, 因此使用Hive创建元数据库对HDFS中的数据进行管理
因此写入的数据要符合Hive创建的表结构
LogServer收集的日志信息为:
{
"user":"tom",
"event":"open.app"
}
对数据进行处理后:
// line
tom^Aopen.app^A
写入HDFS可以使用Presto查询到数据.
当前Fluentd配置:
<source>
@type forward
port 24224
format hash
</source>
<match log.user>
@type file
format hash
path /var/log/user.log
</match>
写入到文件中的日志是正确的, 符合
tom^Aopen.app^A
的格式
重新配置match
:
<match log.user>
@type webhdfs
host master
port 50070
username root
path "/user/hive/warehouse/data_user/user.%Y%m%d_%H%M.log"
flush_interval 5s
time_slice_format '%Y%m%d_%H%M%S'
output_include_time false
output_include_tag false
</match>
此时写入到HDFS中的数据格式发生了变化:
"tom\u000open.app"
内容两边还包含了双引号
试过如下方法:
使用
filter
对数据进行过滤,转成hash
,无效在
wedhdfs
中配置format hash
,无效
在此提问,望知道配置的人解答~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论