使用Flume

实例1: 监听端口,把输入端口的信息以日志的形式输出到控制台中

cd /usr/local/flume/apache-flume-1.6.0-cdh5.9.0-bin/conf
vim example.conf
# 命名此代理上的组件
agent.sources = seqGenSrc   # sources的名称
agent.channels = memoryChannel  # Channel的名称
agent.sinks = loggerSink   # Sink的名称

# 描述/配置源
agent.sources.seqGenSrc.type = netcat  # 类型名称  seq
agent.sources.seqGenSrc.bind = 0.0.0.0  # 绑定的ip
agent.sources.seqGenSrc.port = 44444  # 绑定的端口

# 描述接收器
agent.sinks.loggerSink.type = logger   # 以日志的形式输出到控制台

# 定义每个通道的类型
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 1000
agent.channels.memoryChannel.transactionCapacity = 100

# 指定接收器应该使用的通道
agent.sinks.loggerSink.channel = memoryChannel
agent.sources.seqGenSrc.channels = memoryChannel

实例2: 监听文件,把输入文件变化的的信息以日志的形式输出到控制台中

cd /usr/local/flume/apache-flume-1.6.0-cdh5.9.0-bin/conf
vim example.conf
# 命名此代理上的组件
agent.sources = seqGenSrc   # sources的名称
agent.channels = memoryChannel  # Channel的名称
agent.sinks = loggerSink   # Sink的名称

# 描述/配置源
agent.sources.seqGenSrc.type = exec  # 命令行模式
agent.sources.seqGenSrc.command = tail -F /root/nohup.log
agent.sources.seqGenSrc.shell = /bin/sh -c  # 绑定的端口

# 描述接收器
agent.sinks.loggerSink.type = logger   # 以日志的形式输出到控制台

# 定义每个通道的类型
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 1000
agent.channels.memoryChannel.transactionCapacity = 100

# 指定接收器应该使用的通道
agent.sinks.loggerSink.channel = memoryChannel
agent.sources.seqGenSrc.channels = memoryChannel

实例3: 监听文件,把输入文件变化的信息传输到另外一台服务器中以日志的形式输出到控制台中

cd /usr/local/flume/apache-flume-1.6.0-cdh5.9.0-bin/conf
vim example.conf
# 命名此代理上的组件
agent.sources = seqGenSrc
agent.channels = memoryChannel
agent.sinks = loggerSink

# 描述/配置源
agent.sources.seqGenSrc.type = exec
agent.sources.seqGenSrc.command = tail -F /root/nohup.log
agent.sources.seqGenSrc.shell = /bin/sh -c

# 描述接收器
agent.sinks.loggerSink.type = avro
agent.sinks.loggerSink.hostname = 192.168.104.94
agent.sinks.loggerSink.port = 44444

# 定义每个通道的类型
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 1000
agent.channels.memoryChannel.transactionCapacity = 100

# 指定接收器应该使用的通道
agent.sinks.loggerSink.channel = memoryChannel
agent.sources.seqGenSrc.channels = memoryChannel

vim example.conf  # 这个心启动   这启动了端口开启  上面Sink开绑定这个端口
# 命名此代理上的组件
agent.sources = seqGenSrc
agent.channels = memoryChannel
agent.sinks = loggerSink

# 描述/配置源
agent.sources.seqGenSrc.type = avro
agent.sources.seqGenSrc.bind = 0.0.0.0   # 绑定本机地址
agent.sources.seqGenSrc.port = 44444

# 描述接收器
agent.sinks.loggerSink.type = logger

# 定义每个通道的类型
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 1000
agent.channels.memoryChannel.transactionCapacity = 100

# 指定接收器应该使用的通道
agent.sinks.loggerSink.channel = memoryChannel
agent.sources.seqGenSrc.channels = memoryChannel

4.启动Flume

flume-ng agent --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/example.conf --name agent -Dflume.root.logger=INFO,console   # 启动   $FLUME_HOME: flume 路径
    --name: agent名称
    --conf: 制定flume conf路径
    --conf-file: 制定自己写的配置文件
    -Dflume.root.logger=INFO,console: log的参数

telnet 192.168.107.216 44444  # 连接到主机

相关推荐