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.