大数据面试之Flume
说明,感谢亮哥长期对我的帮助,此处多篇文章均为亮哥带我整理。以及参考诸多博主的文章。如果侵权,请及时指出,我会立马停止该行为;如有不足之处,还请大佬不吝指教,以期共同进步。
1.Flume
1.1 Flume架构?如何启动访问?
apache flume 是一种分布式的、可靠的、可用的系统,主要用于高效地收集、聚合和移动大量来自不同来源的日志数据到一个集中的数据存储区。
flume的使用不仅限于日志的数据聚合。由于数据源是可定制的,flume可以用于传输大量的事件数据,包括但不限于网络流量数据、数字媒体生志的数据。电子邮件消息和几乎任何可能的数据源。
agent里面包含3个核心的组件:source—->channel—–>sink,类似生产者、仓库、消费者的架构。
- source:source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定义。
- channel:source组件把数据收集来以后,临时存放在channel中,即channel组件在agent中是专门用来存放临时数据的——对采集到的数据进行简单的缓存,可以存放在memory、jdbc、file等等。
- sink:sink组件是用于把数据发送到目的地的组件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定义。
启动flume
$ bin/flume-ng agent --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/example.conf --name a1 -Dflume.root.logger=INFO,console