Apache Flume - Dizi Oluşturucu Kaynağı

Önceki bölümde, twitter kaynağından HDFS'ye nasıl veri getirileceğini gördük. Bu bölümde verilerin nasıl alınacağı açıklanmaktadır.Sequence generator.

Önkoşullar

Bu bölümde verilen örneği çalıştırmak için, kurmanız gerekir. HDFS ile birlikte Flume. Bu nedenle, devam etmeden önce Hadoop kurulumunu doğrulayın ve HDFS'yi başlatın. (HDFS'nin nasıl başlatılacağını öğrenmek için önceki bölüme bakın).

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 birsequence generator source, bir memory channel, ve bir HDFS sink.

Sıra Üreteci Kaynağı

Olayları sürekli üreten kaynaktır. 0'dan başlayıp 1 artan bir sayaç bulundurur. Test amaçlı kullanılır. Bu kaynağı yapılandırırken, aşağıdaki özelliklere değer sağlamanız gerekir -

  • Channels

  • Source type - seq

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ür MemChannel'dir.

  • 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ı).

HDFS Lavabo

Bu havuz, verileri HDFS'ye yazar. Bu havuzu yapılandırmak için aşağıdaki ayrıntıları sağlamanız gerekir .

  • Channel

  • type - hdfs

  • hdfs.path - HDFS'deki verilerin depolanacağı dizinin yolu.

Ve senaryoya bağlı olarak bazı isteğe bağlı değerler sağlayabiliriz. Aşağıda, uygulamamızda yapılandırdığımız HDFS havuzunun isteğe bağlı özellikleri verilmiştir.

  • fileType - Bu, HDFS dosyamız için gerekli dosya formatıdır. SequenceFile, DataStream ve CompressedStreambu akışta kullanılabilen üç tür vardır. Örneğimizde, kullanıyoruzDataStream.

  • writeFormat - Yazılı veya yazılabilir olabilir.

  • batchSize- Bir dosyaya HDFS'ye yüklenmeden önce yazılan olayların sayısıdır. Varsayılan değeri 100'dür.

  • rollsize- Bir ruloyu tetikleyen dosya boyutudur. Varsayılan değer 100'dür.

  • rollCount- Dosyaya aktarılmadan önce yazılan olayların sayısıdır. Varsayılan değeri 10'dur.

Ö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ı kaydedinseq_gen .conf Flume'un conf klasöründe.

# Naming the components on the current agent 

SeqGenAgent.sources = SeqSource   
SeqGenAgent.channels = MemChannel 
SeqGenAgent.sinks = HDFS 
 
# Describing/Configuring the source 
SeqGenAgent.sources.SeqSource.type = seq
  
# Describing/Configuring the sink
SeqGenAgent.sinks.HDFS.type = hdfs 
SeqGenAgent.sinks.HDFS.hdfs.path = hdfs://localhost:9000/user/Hadoop/seqgen_data/
SeqGenAgent.sinks.HDFS.hdfs.filePrefix = log 
SeqGenAgent.sinks.HDFS.hdfs.rollInterval = 0
SeqGenAgent.sinks.HDFS.hdfs.rollCount = 10000
SeqGenAgent.sinks.HDFS.hdfs.fileType = DataStream 
 
# Describing/Configuring the channel 
SeqGenAgent.channels.MemChannel.type = memory 
SeqGenAgent.channels.MemChannel.capacity = 1000 
SeqGenAgent.channels.MemChannel.transactionCapacity = 100 
 
# Binding the source and sink to the channel 
SeqGenAgent.sources.SeqSource.channels = MemChannel
SeqGenAgent.sinks.HDFS.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/seq_gen.conf 
   --name SeqGenAgent

Her şey yolunda giderse, kaynak, HDFS'ye günlük dosyaları biçiminde gönderilecek sıra numaraları oluşturmaya başlar.

Aşağıda, sıra oluşturucu tarafından oluşturulan verileri HDFS'ye getiren komut istemi penceresinin bir anlık görüntüsü verilmiştir.

HDFS'yi doğrulama

Hadoop Yönetimi Web Kullanıcı Arayüzüne aşağıdaki URL'yi kullanarak erişebilirsiniz -

http://localhost:50070/

Adlı açılır menüye tıklayın Utilitiessayfanın sağ tarafında. Aşağıdaki şemada gösterildiği gibi iki seçeneği görebilirsiniz.

Tıklamak Browse the file system ve sıra oluşturucu tarafından oluşturulan verileri sakladığınız HDFS dizininin yolunu girin.

Örneğimizde yol olacak /user/Hadoop/ seqgen_data /. Ardından, aşağıda verildiği gibi HDFS'de depolanan, sıra oluşturucu tarafından oluşturulan günlük dosyalarının listesini görebilirsiniz.

Dosyanın İçeriğini Doğrulama

Tüm bu günlük dosyaları, sıralı biçimde sayılar içerir. Dosya sistemindeki bu dosyaların içeriğini şurayı kullanarak doğrulayabilirsiniz:cat komutu aşağıda gösterildiği gibi.