0%

flume简单配置与执行

flume简单配置与执行

命令参数

  • agent 指定以agent角色启动,另一个角色为avro-client
  • conf或c 指定flume-env.sh和log4j.properties的所在目录
  • config-file或f 指定配置源和接收器配置文件的相对路径,相对于执行该命令的目录,包括文件名
  • name或n 指定agent的名称
  • D -D后接键值对,指定java相关配置

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#agent表示agent的名字,可以任意取名
#seqGenSrc表示事件源名称
agent.sources = seqGenSrc
#memoryChannel表示通道名称
agent.channels = memoryChannel
#loggerSink表示接收器名称
agent.sinks = loggerSink


# 事件源配置
# 事件源类型 常见的有avro(监听Avro端口并从外部Avro客户端流接收事件)、thrift(监听Thrift端口并从外部Thrift客户端流接收事件)、exec(Exec源在启动时运行给定的Unix命令,并期望该进程在标准输出上连续产生数据)、spooldir(此源允许您通过将要提取的文件放入磁盘上的“spooling”目录中来提取数据。此源将监视新文件的指定目录,并在新文件显示时解析新文件中的事件)、org.apache.flume.source.kafka.KafkaSource(从Kafka主题读取消息的Apache Kafka消费者)、seq(简单的序列发生器,不断的产生事件,值是从0开始每次递增1)
agent.sources.seqGenSrc.type = seq


# 接收器配置
# 接收器的类型 常见的有hdfs(将事件写入Hadoop分布式文件系统(HDFS))、hive(将包含定界文本或JSON数据的事件直接传输到Hive表或分区)、hbase、avro、org.apache.flume.sink.kafka.KafkaSink(将数据发布到Kafka主题)
agent.sinks.loggerSink.type = logger



# 通道配置
# 通道类型 常见的有 file(将数据存储到磁盘上)、memory(存储在具有可配置最大大小的内存队列中)、jdbc(存放于一个支持JDBC连接的数据库中)、SPILLABLEMEMORY(存放在内存和磁盘上,内存作为主要存储,当内存达到一定临界点的时候会溢写到磁盘上。其中和了memory channel和File channel的优缺点)
agent.channels.memoryChannel.type = memory

# Other config values specific to each type of channel(sink or source)
# can be defined as well
# In this case, it specifies the capacity of the memory channel
# 通道中停留的最大事件数
agent.channels.memoryChannel.capacity = 100


# 绑定到通道
# 事件源的通道,绑定通道
agent.sources.seqGenSrc.channels = memoryChannel
# 接收器通道名称,绑定通道
agent.sinks.loggerSink.channel = memoryChannel

命令

1
flume-ng agent -c /usr/local/Cellar/flume/1.9.0_1/libexec/conf -f conf/flume-conf.properties --name agent

按照上述配置的话,该命令会在log文件中一直打印数字,日志所在位置查看log4j.properties中的配置

name需要和配置文件中配置的agent中的名字一致

flume启动时默认堆内存为200M,如果实际数据量很大时,需要修改flume-env.sh中的$JAVA_OPTS

欢迎关注我的其它发布渠道