Apache Flume - NetCat Kaynağı
Bu bölüm, olayları nasıl oluşturabileceğinizi ve daha sonra bunları konsola nasıl kaydedebileceğinizi açıklamak için bir örnek alır. Bunun için kullanıyoruzNetCat kaynak ve logger lavabo.
Önkoşullar
Bu bölümde verilen örneği çalıştırmak için, kurmanız gerekir. Flume.
Flume'u Yapılandırma
Kaynak, kanal ve havuzu, içindeki yapılandırma dosyasını kullanarak yapılandırmamız gerekir. confKlasör. Bu bölümde verilen örnek birNetCat Source, Memory channelve bir logger sink.
NetCat Kaynağı
NetCat kaynağını yapılandırırken, kaynağı yapılandırırken bir port belirlememiz gerekiyor. Şimdi kaynak (NetCat kaynağı) verilen portu dinliyor ve o porta girdiğimiz her satırı ayrı bir olay olarak alıyor ve belirtilen kanal üzerinden havuza aktarıyor.
Bu kaynağı yapılandırırken, aşağıdaki özelliklere değer sağlamanız gerekir -
channels
Source type - netcat
bind - Bağlanacak ana bilgisayar adı veya IP adresi.
port - Kaynağın dinlemesini istediğimiz bağlantı noktası numarası.
Kanal
Biz kullanıyoruz memorykanal. Hafıza kanalını yapılandırmak için, gereken kanal türüne bir değer sağlar. Aşağıda, bellek kanalını yapılandırırken sağlamanız gereken özelliklerin listesi verilmiştir -
type- Kanalın türünü tutar. Örneğimizde türMemChannel.
Capacity- Kanalda saklanan maksimum olay sayısıdır. Varsayılan değeri 100'dür. (İsteğe bağlı)
TransactionCapacity- Kanalın kabul ettiği veya gönderdiği maksimum olay sayısıdır. Varsayılan değeri 100'dür. (İsteğe bağlı).
Logger Lavabo
Bu havuz, kendisine iletilen tüm olayları günlüğe kaydeder. Genellikle test veya hata ayıklama amacıyla kullanılır. Bu havuzu yapılandırmak için aşağıdaki ayrıntıları sağlamanız gerekir.
Channel
type - kaydedici
Örnek Yapılandırma Dosyası
Aşağıda, yapılandırma dosyası için bir örnek verilmiştir. Bu içeriği kopyalayın ve farklı kaydedinnetcat.conf Flume'un conf klasöründe.
# Naming the components on the current agent
NetcatAgent.sources = Netcat
NetcatAgent.channels = MemChannel
NetcatAgent.sinks = LoggerSink
# Describing/Configuring the source
NetcatAgent.sources.Netcat.type = netcat
NetcatAgent.sources.Netcat.bind = localhost
NetcatAgent.sources.Netcat.port = 56565
# Describing/Configuring the sink
NetcatAgent.sinks.LoggerSink.type = logger
# Describing/Configuring the channel
NetcatAgent.channels.MemChannel.type = memory
NetcatAgent.channels.MemChannel.capacity = 1000
NetcatAgent.channels.MemChannel.transactionCapacity = 100
# Bind the source and sink to the channel
NetcatAgent.sources.Netcat.channels = MemChannel
NetcatAgent.sinks.LoggerSink.channel = MemChannel
Yürütme
Flume ana dizinine göz atın ve aşağıda gösterildiği gibi uygulamayı çalıştırın.
$ cd $FLUME_HOME
$ ./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/netcat.conf
--name NetcatAgent -Dflume.root.logger=INFO,console
Her şey yolunda giderse, kaynak verilen bağlantı noktasını dinlemeye başlar. Bu durumda,56565. Aşağıda, 56565 numaralı bağlantı noktasını dinleyen ve başlatan bir NetCat kaynağının komut istemi penceresinin anlık görüntüsü verilmiştir.
Verileri Kaynağa Aktarma
Verileri NetCat kaynağına iletmek için, yapılandırma dosyasında verilen bağlantı noktasını açmanız gerekir. Ayrı bir terminal açın ve kaynağa (56565) bağlayın.curlkomut. Bağlantı başarılı olduğunda bir mesaj alacaksınız "connected" Aşağıda gösterildiği gibi.
$ curl telnet://localhost:56565
connected
Artık verilerinizi satır satır girebilirsiniz (her satırdan sonra Enter tuşuna basmanız gerekir). NetCat kaynağı her satırı ayrı bir olay olarak alır ve alınan bir mesaj alırsınız "OK”.
Verileri geçirmeyi bitirdiğinizde, konsoldan (Ctrl+C). Aşağıda verilen, kaynağa bağladığımız konsolun anlık görüntüsüdür.curl komut.
Yukarıdaki konsola girilen her satır, kaynak tarafından ayrı bir olay olarak alınacaktır. Kullandığımızdan beriLogger sink, bu olaylar belirtilen kanal (bu durumda bellek kanalı) aracılığıyla konsolda (kaynak konsol) oturum açacaktır.
Aşağıdaki anlık görüntü, olayların günlüğe kaydedildiği NetCat konsolunu gösterir.