1.flume模型
1.1 Event
flume 事件,被定义为一个具有有效荷载的字节数据流和可选的字符串属性集。
1.2 Agent
flume 代理,是一个进程承载从外部源事件流到下一个目的地的过程。包含source channel 和 sink。
1.3 Source
数据源,消耗外部传递给他的事件,外部源将数据按照flume Source 能识别的格式将Flume 事件发送给flume Source。
1.4 Channel
数据通道,是一个被动的存储,用来保持事件,直到由一个flume Sink消耗。
1.5 Sink
数据汇聚点,代表外部数据存放位置。发送flume event到指定的外部目标。
2.flume 配置文件
2.1 配置文件例子如下
# example.conf 单节点flume配置
# 命名Agent a1的组件 (这是一个给组件起名的过程)
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 描述/配置source
a1.sources.r1.type = spooldir
a1.sources.r1.spoolDir = 文件路径和数据源名称
a1.sources.r1.fileHeader = true
#描述sink 设置kafka接收器 也就是接受到哪里去
a1.sinks.s1.type=hive
a1.sinks.s1.hive.metastore=thrift://服务器ip:端口
a1.sinks.s1.hive.database=hive数据库名称
a1.sinks.s1.hive.table=hive表名
a1.sinks.s1.batchSize=3000
a1.sinks.s1.serializer=JSON
a1.sinks.s1.serializer.fieldnames=business_id,type,create_time
#描述channels 设置接收器 用什么传递,这里可以默认用内存,也可以配合用kafka 还很多方式,可以多选一
#kafka
a1.channels.c1.type=org.apache.flume.channel.kafka.KafkaChannel
a1.channels.c1.kafka.bootstrap.servers=地址ip:kafka端口
a1.channels.c1.kafka.topic=设置topic
a1.channels.c1.kafka.consumer.group.id=1
#内存
#a1.channels.c1.type=memory
#a1.channels.c1.capaci