天天看點

Flume學習04 — Sink

Flume提供了大量的Sink,下面主要介紹HDFS Sink、Avro Sink、Thrift Sink、Kafka Sink、HBase Sink。

類型 說明
HDFS Sink 資料寫入HDFS。
Logger Sink 資料寫入日志檔案。
Avro Sink 資料被轉換成Avro Event,然後發送到配置的RPC端口上。
Thrift Sink 資料被轉換成Thrift Event,然後發送到配置的RPC端口上。
IRC Sink 資料在IRC上進行回放。
File Roll Sink 存儲資料到本地檔案系統。
Null Sink 丢棄掉所有資料。
HBase Sink 資料寫入HBase資料庫。
Morphline Solr Sink 資料發送到Solr搜尋伺服器(叢集)。
ElasticSearch Sink 資料發送到Elastic Search搜尋伺服器(叢集)。
Kite Dataset Sink 寫資料到Kite Dataset,試驗性質的。
Custom Sink 自定義Sink。
Hive Sink 資料寫入Hive。
Kafka Sink 把資料寫入Kafka Topic中。

HDFS Sink

HDFS Sink直接把Event資料寫入Hadoop Distributed File System(HDFS)。HDFS Sink支援輸出文本檔案(text file)和序列檔案(sequence file),同時還可以對資料進行壓縮。資料檔案可以根據固定時間間隔、檔案大小或者Event資料數量建立。HDFS Sink需要Hadoop支援。

配置項 預設值 說明
channels 與Source連接配接的通道名稱。
type hdfs
Hdfs.path HDFS路徑

HDFS Sink參考配置

a1.channels = c1
a1.sinks = k1
a1.sinks.k1.type = hdfs
a1.sinks.k1.channel = c1
a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S
a1.sinks.k1.hdfs.filePrefix = eventsa1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 
a1.sinks.k1.hdfs.roundUnit = minute
           

Kafka Sink

Kafka Sink是Flume内置的Sink,隻要稍微做配置,就可以把Event直接輸出到Kafka Topic中,目前Flume支援Kafka 0.8.x系列。

配置項 預設值 說明
type org.apache.flume.sink.kafka.KafkaSink
brokerList Kafka Sink連接配接的Broker清單
topic default-flume-topic Kafak釋出Event的Topic

Kafka Sink參考配置

a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.topic = mytopic
a1.sinks.k1.brokerList = localhost:
a1.sinks.k1.requiredAcks = 
a1.sinks.k1.batchSize = 
a1.sinks.k1.channel = c1
           

Avro Sink

把資料轉成Avro Event格式,并發送到指定Avro端口,Event資料會批量發送,每次發送的數量可以在batch-size中設定。

配置項 預設值 說明
channel sink接收資料的channel
type sink類型,必須為avro
hostname 伺服器位址
port 監聽端口

Avro Sink參考配置

a1.channels = c1
a1.sinks = k1
a1.sinks.k1.type = avro
a1.sinks.k1.channel = c1
a1.sinks.k1.hostname = 
a1.sinks.k1.port = 
           

Thrift Sink

Thrift Sink和Avro Sink類似,把資料轉成Thrift Event格式,并發送到指定Thrift端口,Event資料會批量發送,每次發送的數量可以在batch-size中設定。Thrift Sink支援安全模式,可以在配置檔案中設定。

配置項 預設值 說明
channel sink接收資料的channel
type sink類型,必須為thrift
hostname 伺服器位址
port 監聽端口

Thrift Sink參考配置

a1.channels = c1
a1.sinks = k1
a1.sinks.k1.type = thrift
a1.sinks.k1.channel = c1
a1.sinks.k1.hostname = 
a1.sinks.k1.port = 
           

HBase Sink

HBase Sink分為同步(HBaseSink)和異步(AsyncHBaseSink)。