1.flume 实时从netcat采集数据到hdfs
先从官网 http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#flume-sinks 拷贝样例
然后将sink 为logger改为hdfs
在hdfs sink中拷贝sink样例 ,并增加了三行代码
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = hadoop006
a1.sources.r1.port = 44444
# Describe the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S
a1.sinks.k1.hdfs.filePrefix = events1-
#启用本地时间戳(第一次报错位置)
a1.sinks.k1.hdfs.useLocalTimeStamp=true
#设置超时时间 (第二次时间超时默认10s)
a1.sinks.k1. hdfs.callTimeout =300000
#设置文件格式 (第三次 直接读取时乱码,默认Seq)
a1.sinks.k1.hdfs.fileType=DataStream
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
然后启动flume : bin/flume-ng agent -n a1 -c conf/ -f job/配置文件的路径 -Dflume.root.logger=INFO,console
之后telnet 监听localhost 指定的44444端口
telnet localhost 44444
2.flume实时采集netcat数据到本地文件中
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# Describe the sink
a1.sinks.k1.type = file_roll
#写到一个文件中
a1.sinks.k1.sink.rollInterval=0
a1.sinks.k1.sink.directory = /tmptest/flume
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
然后启动flume : bin/flume-ng agent -n a1 -c conf/ -f job/配置文件的路径 -Dflume.root.logger=INFO,console
之后telnet 监听localhost 指定的44444端口
telnet localhost 44444
3.flume实时采集kafka数据到文件中
4.flume实时采集kafka数据到hdfs中