Apache Flume - Yapılandırma
Flume'u kurduktan sonra, bir Java özellik dosyası olan yapılandırma dosyasını kullanarak yapılandırmamız gerekir. key-value pairs. Dosyadaki anahtarlara değerler aktarmamız gerekiyor.
Flume yapılandırma dosyasında, ihtiyacımız olan -
- Mevcut aracının bileşenlerini adlandırın.
- Kaynağı tanımlayın / yapılandırın.
- Lavaboyu tanımlayın / yapılandırın.
- Kanalı açıklayın / yapılandırın.
- Kaynağı ve havuzu kanala bağlayın.
Genellikle Flume'de birden fazla ajanımız olabilir. Her bir temsilciyi benzersiz bir ad kullanarak ayırt edebiliriz. Ve bu adı kullanarak, her ajanı yapılandırmamız gerekiyor.
Bileşenleri Adlandırma
Her şeyden önce, aşağıda gösterildiği gibi, kaynaklar, alıcılar ve aracının kanalları gibi bileşenleri adlandırmanız / listelemeniz gerekir.
agent_name.sources = source_name
agent_name.sinks = sink_name
agent_name.channels = channel_name
Flume, çeşitli kaynakları, havuzları ve kanalları destekler. Aşağıda verilen tabloda listelenmiştir.
Kaynaklar | Kanallar | Lavabolar |
---|---|---|
|
|
|
Bunlardan herhangi birini kullanabilirsiniz. Örneğin, Twitter verilerini Twitter kaynağı kullanarak bir bellek kanalı üzerinden bir HDFS havuzuna aktarıyorsanız ve temsilci adı kimliğiTwitterAgent, sonra
TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = HDFS
Aracının bileşenlerini listeledikten sonra, kaynak (lar) ı, havuz (lar) ı ve kanal (lar) ı, özelliklerine değerler sağlayarak tanımlamanız gerekir.
Kaynağı Tanımlama
Her kaynağın ayrı bir özellik listesi olacaktır. "Tür" adlı özellik her kaynak için ortaktır ve kullandığımız kaynağın türünü belirtmek için kullanılır.
"Tür" özelliğinin yanı sıra, tüm required aşağıda gösterildiği gibi yapılandırmak için belirli bir kaynağın özellikleri.
agent_name.sources. source_name.type = value
agent_name.sources. source_name.property2 = value
agent_name.sources. source_name.property3 = value
Örneğin, twitter sourceYapılandırmak için değerler sağlamamız gereken özellikler aşağıdadır .
TwitterAgent.sources.Twitter.type = Twitter (type name)
TwitterAgent.sources.Twitter.consumerKey =
TwitterAgent.sources.Twitter.consumerSecret =
TwitterAgent.sources.Twitter.accessToken =
TwitterAgent.sources.Twitter.accessTokenSecret =
Lavaboyu Tanımlamak
Aynı kaynak gibi, her havuzda ayrı bir özellik listesi olacaktır. "Tür" adlı özellik her havuzda ortaktır ve kullandığımız havuzun türünü belirtmek için kullanılır. "Tür" özelliğinin yanı sıra, tümrequired aşağıda gösterildiği gibi yapılandırmak için belirli bir havuzun özellikleri.
agent_name.sinks. sink_name.type = value
agent_name.sinks. sink_name.property2 = value
agent_name.sinks. sink_name.property3 = value
Örneğin, düşünürsek HDFS sinkYapılandırmak için değerler sağlamamız gereken özellikler aşağıdadır .
TwitterAgent.sinks.HDFS.type = hdfs (type name)
TwitterAgent.sinks.HDFS.hdfs.path = HDFS directory’s Path to store the data
Kanalı Tanımlamak
Flume, kaynaklar ve havuzlar arasında veri aktarımı için çeşitli kanallar sağlar. Bu nedenle kaynaklar ve kanallar ile birlikte aracıda kullanılan kanalın açıklanması gerekmektedir.
Her bir kanalı açıklamak için, aşağıda gösterildiği gibi gerekli özellikleri ayarlamanız gerekir.
agent_name.channels.channel_name.type = value
agent_name.channels.channel_name. property2 = value
agent_name.channels.channel_name. property3 = value
Örneğin, düşünürsek memory channelYapılandırmak için değerler sağlamamız gereken özellikler aşağıdadır .
TwitterAgent.channels.MemChannel.type = memory (type name)
Kaynağı ve Sink'i Kanala Bağlamak
Kanallar kaynakları ve alıcıları bağladığından, aşağıda gösterildiği gibi her ikisinin de kanala bağlanması gerekir.
agent_name.sources.source_name.channels = channel_name
agent_name.sinks.sink_name.channels = channel_name
Aşağıdaki örnek, kaynakların ve havuzların bir kanala nasıl bağlanacağını gösterir. Burada düşünüyoruztwitter source, memory channel, ve HDFS sink.
TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sinks.HDFS.channels = MemChannel
Flume Aracısının Başlatılması
Yapılandırmadan sonra, Flume ajanını başlatmalıyız. Aşağıdaki gibi yapılır -
$ bin/flume-ng agent --conf ./conf/ -f conf/twitter.conf
Dflume.root.logger=DEBUG,console -n TwitterAgent
nerede -
agent - Flume ajanını başlatma komutu
--conf ,-c<conf> - conf dizinindeki yapılandırma dosyasını kullanın
-f<file> - Eksikse, bir yapılandırma dosyası yolu belirtir
--name, -n <name> - Twitter temsilcisinin adı
-D property =value - Bir Java sistem özelliği değeri ayarlar.