Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
/tmp/data/work_result에 파일이 들어오면 spooldir에 의해서 파일을 읽어 memoryChannel을 통하여 HDFS의 hdfs://nameservice1:8020/DATA/work_result에 저장한다.
spool된 파일은 "agent.sources.spooldirSource.deletePolicy = immediate"설정에 의해서 OS상의 파일이 삭제된다.
그리고 HDFS에는 flume소유자로 파일이 생성된다.
---------flume.conf-----------
agent.sources = spooldirSource
agent.channels = memoryChannel
agent.sinks = hdfsSink
agent.sources.spooldirSource.type = spooldir
agent.sources.spooldirSource.spoolDir = /tmp/data/work_result
agent.sources.spooldirSource.channels = memoryChannel
agent.sources.spooldirSource.deserializer.maxLineLength = 100000000
agent.sources.spooldirSource.basenameHeader = true
agent.sources.spooldirSource.deletePolicy = immediate
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 1000000
agent.channels.memoryChannel.transactionCapacity = 1000
agent.sinks.hdfsSink.type = hdfs
agent.sinks.hdfsSink.channel = memoryChannel
agent.sinks.hdfsSink.hdfs.path = hdfs://nameservice1:8020/DATA/work_result
agent.sinks.hdfsSink.hdfs.fileType = DataStream
agent.sinks.hdfsSink.hdfs.rollCount = 0
agent.sinks.hdfsSink.hdfs.rollInterval= 300
agent.sinks.hdfsSink.hdfs.rollSize= 100000000
agent.sinks.hdfsSink.hdfs.batchSize = 100
agent.sinks.hdfsSink.hdfs.filePrefix = %{basename}
agent.sinks.hdfsSink.hdfs.kerberosPrincipal = flume@GOOPER.COM
agent.sinks.hdfsSink.hdfs.kerberosKeytab = /var/lib/keytab/flume.keytab
agent.sinks.hdfsSink.hdfs.proxyUser = flume