Uvod u Apache Flume

Apache Flume je okvir zabrane gutanja podataka koji podatke na temelju događaja upisuje u distribuirani datotečni sustav Hadoop. Poznata je činjenica da Hadoop obrađuje velike podatke, postavlja se pitanje kako se podaci generirani s različitih web poslužitelja prenose u Hadoop datotečni sustav? Odgovor je Apache Flume. Flume je dizajniran za unos velikih podataka u Hadoop podataka utemeljenih na događajima.

Razmislite o scenariju u kojem broj web poslužitelja generira datoteke dnevnika, a te datoteke dnevnika trebaju prenijeti u datotečni sustav Hadoop. Flume prikuplja te datoteke kao događaje i prebacuje ih u Hadoop. Iako se Flume koristi za prijenos u Hadoop, ne postoji kruto pravilo da odredište mora biti Hadoop. Flume može pisati u druge okvire poput Hbase ili Solr.

Flume arhitektura

Apache Flume arhitektura se sastoji od sljedećih komponenti:

  • Izvor pahulja
  • Flume Channel
  • Umivaonik
  • Flume agent
  • Flume Event

Pogledajmo ukratko svaku komponentu Flume

1. Izvor dimnjaka

Izvor protoka prisutan je u generatorima podataka poput Face Book ili Twittera. Izvor prikuplja podatke iz generatora i prenosi te podatke na kanal Flume u obliku Flume Events. Flume podržava razne vrste izvora poput Avro Flume Source - povezuje se na Avro port i prima događaje iz Avro-inog klijenta, Thrift Flume Source - povezuje se na Thrift port i prima događaje iz vanjskih protokola klijenta Thrift, Spooling Source Source i Kafka Flume Source.

2. Kanal ispuha

Posrednička trgovina koja spaja događaje koje šalje Flume Source dok ih Sink ne potroši naziva se Flume Channel. Kanal djeluje kao posredni most između izvora i sudopera. Kanali lepršave su transakcijske prirode.

Flume pruža podršku za kanal File i Memory. Kanal datoteke je dugotrajan, što znači da nakon što se podaci upišu u kanal neće se izgubiti, iako se agent ponovo pokrene. U memoriji se događaji kanala pohranjuju u memoriju, tako da nije trajan, ali je vrlo brz po prirodi.

3. Umivaonik

A sudoper je prisutan u spremištima podataka poput HDFS, HBase. Utorak sudoper konzumira događaje s Kanala i pohranjuje ih u odredišne ​​prodavaonice poput HDFS-a. Ne postoji pravilo takvo da sudoper treba isporučivati ​​događaje u Store, umjesto toga možemo ga konfigurirati na način da sudoper može isporučiti događaje drugom agentu. Flume podržava razne sudopere poput sudopera HDFS, sudoper, košulja, Avro sudoper.

Slika 1.1 Osnovna arhitektura dimnjaka

4. Agent za ispuštanje vatre

Flume agent je dugotrajni proces Java koji se izvodi na kombinaciji Source - Channel - Sudoper. Flume može imati više agensa. Flume možemo smatrati zbirkom povezanih Flume agenata koji su distribuirani u prirodi.

5. Flume Event

Događaj je jedinica podataka koja se prenosi u Flumeu . Općenito predstavljanje Data Data u Flumeu naziva se Event. Događaj se sastoji od korisnog opterećenja bajt niza s opcijskim zaglavljima.

Rad na Flumeu

Flume agent je postupak Java koji se sastoji od izvora - kanala - sudopera u svom najjednostavnijem obliku. Izvor prikuplja podatke iz generatora podataka u obliku događaja i dostavlja ih Kanalu. Izvor se može isporučiti na više kanala prema zahtjevu. Fan out je proces u kojem će jedan izvor pisati na više kanala kako bi se mogli isporučiti u više ponista.

Događaj je osnovna jedinica podataka koji se prenose u Flumeu. Kanal pohranjuje podatke dok ih Sink ne proguta. Sink skuplja podatke s Kanala i dostavlja ih u Centralizirano pohranjivanje podataka kao što je HDFS ili Sink može proslijediti te događaje drugom agentu Flume, prema zahtjevu.

Flume podržava Transakcije. Kako bi postigao pouzdanost, Flume koristi odvojene transakcije od izvora do kanala i od kanala do sudopera. Ako se događaji ne isporuče, transakcija se vraća i kasnije se ponovo isporučuje.

Da bismo razumjeli rad Flumea, uzmimo primjer konfiguracije Flumea gdje je izvor spool direktorij, a sudoper je Hdfs. U ovom primjeru agent Flume je u najjednostavnijem obliku, tj. Topologiji sudopera jednog izvora - kanala koja se konfigurira pomoću datoteke svojstava Java.

agent1.sources = source1
agent1.sinks = sink1
agent1.channels = channel1
agent1.sources.source1.channels = channel1
agent1.sinks.sink1.channel = channel1
agent1.sources.source1.type = spooldir
agent1.sources.source1.spoolDir = /tmp/spooldir
agent1.sinks.sink1.type = hdfs
agent1.sinks.sink1.hdfs.path = /tmp/flume
agent1.channels.channel1.type = file

U gornjem primjeru konfiguracije agent je baza s kojom definiramo druga svojstva. izvor1 i sudoper1 i kanal1 nazivi su izvora, sudopera i kanala odnosno njihove vrste i lokacije također se spominju u skladu s tim.

Prednosti Apache Flume

  • Mahuna je skalabilna, pouzdana i otporna na greške. Ova svojstva su detaljno opisana u nastavku
  • Skalabilan - iscjedak se može horizontalno skalirati, tj. Možemo dodati nove čvorove prema našem zahtjevu
  • Pouzdano - Apache Flume ima podršku za transakcije i osigurava da se u procesu prijenosa podataka ne izgube podaci. Ima različite transakcije od izvora do kanala i od kanala do izvora.
  • Flume je prilagodljiv i nudi podršku za razne izvore i sudopere poput Kafke, Avro-a, mape za umetanje, Thrift itd.
  • U Flumeu, jedan izvor može prenijeti podatke na više kanala, a ti kanali će zauzvrat prenijeti podatke u više ponista, tako da jedan izvor može prenijeti podatke u više ponista. Ovaj mehanizam se zove Fan out. Flume također podržava i Fan Fan.
  • Flume osigurava stalan protok prijenosa podataka, tj. Ako se brzina čitanja podataka povećava, a zatim se povećava i brzina pisanja podataka.
  • Iako Flume općenito piše podatke u centraliziranu pohranu poput HDFS-a ili Hbase-a, Flume možemo konfigurirati prema našem zahtjevu tako da Sink može upisivati ​​podatke drugom agentu. To pokazuje fleksibilnost Flume-a
  • Apache Flume je otvoreni izvor u prirodi.

Zaključak

U ovom članku o Flumeu detaljno su razmotrene komponente Flume-a i rad na Flumeu. Flume je fleksibilna, pouzdana i skalabilna platforma za prijenos podataka u centraliziranu trgovinu poput HDFS-a. Njegova sposobnost integracije s različitim aplikacijama poput Kafke, Hdfs, Thrift čini svoju održivu opciju za unos podataka.

Preporučeni članci

Ovo je bio vodič Apache Flume. Ovdje razgovaramo o arhitekturi, radu i prednostima Apache Flume. Možete također pogledati sljedeće članke da biste saznali više -

  1. Što je Apache Flink?
  2. Razlika između Apache Kafke i Flume
  3. Arhitektura velikih podataka
  4. Hadoop Alati
  5. Saznajte razne JavaScript događaje

Kategorija: