Flume架构

Flume架构

  • Flume简介
  • Flume架构
    • Source
    • Channel
    • Sink
  • 常用命令

Flume简介

①:Flume用于讲多种来源的日志以流 的方式传送至 Hadop或者其他地方
②:Flume拥有基于数据流上的简单灵活架构,支持容错,故障转移
③:一种可靠,可用的高效分部式数据收集服务

Flume架构

基本组件:

Client:客户端,数据产生的地方,如Web服务器
Event:事件,指通过Agent传输的单个数据包,如日志数据通常对用一行数据
Agent:代理,一个独立的JVM进程
Agent包括三个组件:
	    Source:从源头获取数据
		Channel:沉槽,用来缓冲数据
		Sink:向目标写入数据

Flume架构_第1张图片

Source

主要负责接收数据到Flume Agent的组件,Source组件可以处理各种类型,各种格式的日志数据.
包括avro,exec,spooling directory,netcat,http,kafka等。

Channel

Channel 位于Source和Sink之间的缓冲区,因此Channel允许Source和Sink运作在不同的速率上,Channel线程是安全的,
可以同时处理几个Source的写入操作和几个Sink的读取操作。Flume自带的Channel:Memory Channel ,File Channel和Kafka Channel
Memory Channel 是内存中队列,Memory Channel在不需要关心数据丢失的情况下使用,如果关心数据丢失,那Memory Channel 就不适合使用,
因为程序死亡,机器宕机或者重启都会导致数据丢失File Channel将所有事件写到磁盘,因此出现上述情况下不会丢失数据。

Sink

Sink不断的轮询Channel 中的事件且批量的一出他们,并将这些事件批量写入到存储或索引系统,或者发送到另外一个Flume Agent.
Sink组件包括:hdfs,logger(测试用,直接输出到控制台),avro,file,HBase,

常用命令

开启服务:

flume-ng agent -n a1 -c conf -f jobs/xxx.conf -Dflume.root.logger-info,console
	命令解释:
		agent:客户端启动
		-n: 指定进程名:-f 配置文件中使用该进程名进行进程的各项配置
		-c: conf 指定flume配置文件的目录
		-f: flume启动配置文件
		-Dflume.root.logger 覆盖log4j的配置

脚本启动:

nohup flume-ng agent -n a1 -c conf -f jobs/xxx.conf -Dflume.root.logger-info,console >/dev/null 2>&1 &
     命令解释:
	     nohup:停止悬挂,
	     >/dev/null  日志导向黑洞
	     2>&1: 将异常日志也导向黑洞
	     &: 后台启动
目前官方未提供关闭的脚本
可以自己写:以下仅提供参考
		获取进程号:PIDS=`jps -lm|grep org.apache.flume.node.Application|awk '{print $1}'`
		使用命令:kill-9 $PIDS

你可能感兴趣的:(Kafka,kafka)