impala数据血缘与数据地图系列:

1. 解析impala与hive的血缘日志

2. 实时采集impala血缘日志推送到kafka

-----------------------------------------实时采集impala血缘日志推送到kafka-----------------------------------------------------

使用filebeat采集impala的血缘日志并推送到kafka

 采用filebeat的主要原因是因为轻量,对impala的血缘日志采集不需要进行数据过滤和格式转换,因此不需要使用flume或logstash这样占用资源较大的工具。

filebeat的安装及使用请参考官方手册:

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html

参数配置:

vim conf/filebeat_impala_lineage.yml

#=========================== Filebeat inputs =============================

filebeat.inputs:

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    #这里指定impala血缘目录,会读取该目录下所有日志
    - /var/log/impalad/lineage/*
#============================= Filebeat modules ===============================

filebeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml

  # Set to true to enable config reloading
  reload.enabled: false

  # Period on which files under path should be checked for changes
  #reload.period: 10s

#===========kafka output===============
output.kafka:
    #指定kafka的节点和topic
  hosts: ["uatka01:9092","uatka02:9092","uatka03:9092"]

  topic: wyk_filebeat_impala_lineage_new_demo

  required_acks: 1
#output.console:
#  pretty: true

DEMO:

启动filebeat,注意每个机器上只能启动一个filebeat进程,因此上面的读取日志不要指定文件名。

$FILEBEAT_HOME/filebeat --c $FILEBEAT_HOME/conf/filebeat_impala_lineage.yml -e

 

 

 

启动kafka consumer:

./kafka-console-consumer.sh --bootstrap-server uatka01:9092,uatka02:9092,uatka03:9092 --topic wyk_filebeat_impala_lineage_new_demo --zookeeper uatka01:2181,uatka02:2181,uatka03:2181

启动impala-shell:

impala-shell -i uathd03

1. 在impala-shell内建一个视图:vw_lineage_test11

 2.查看impala lineage 日志文件,血缘已记录日志:

3. 查看filebeat控制台,已监听日志文件并写入kafka topic内:

4. 查看kafka consumer是否消费到该血缘记录:

 

流程结束:

impalaSQL--> impala血缘日志-->Filebeat-->Kafka

完成监控impala脚本并将血缘日志推送到kafka内。

后续只需要实时消费kafka里的信息即可。

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐