Automation Flow Delivery ao amin'ny Apache NiFi

Miarahaba ny rehetra!

Automation Flow Delivery ao amin'ny Apache NiFi

Ny asa dia toy izao manaraka izao - misy fikorianan'ny, aseho amin'ny sary etsy ambony, izay mila havoaka amin'ny server N miaraka amin'ny Apache NiFi. Flow test - misy rakitra iray amboarina ary alefa any amin'ny ohatra NiFi hafa. Ny famindrana angon-drakitra dia mitranga amin'ny alΓ lan'ny protocol NiFi Site to Site.

NiFi Site to Site (S2S) dia fomba azo antoka sy mora azo hamindra angona eo amin'ireo tranga NiFi. Ahoana ny fiasan'ny S2S, jereo tahirin-kevitra ary zava-dehibe ny tsy hanadino ny manamboatra ny ohatra NiFi mba hamela S2S, jereo eto.

Amin'ny tranga izay miresaka momba ny famindrana angon-drakitra mampiasa S2S, ny iray dia antsoina hoe mpanjifa, ny mpizara faharoa. Mandefa data ny mpanjifa, mandray ny server. Fomba roa hanamboarana ny famindrana angon-drakitra eo anelanelan'izy ireo:

  1. Atoseho. Avy amin'ny ohatra mpanjifa, ny angon-drakitra dia alefa amin'ny alΓ lan'ny Vondrona Fikarakarana lavitra (RPG). Ao amin'ny ohatra mpizara, ny angon-drakitra dia raisina amin'ny alΓ lan'ny Port Input
  2. Sintony. Ny mpizara dia mandray data amin'ny fampiasana RPG, ny mpanjifa dia mandefa amin'ny seranana Output.


Voatahiry ao amin'ny Apache Registry ny flow for rolling.

Apache NiFi Registry dia zana-drafitra an'ny Apache NiFi izay manome fitaovana ho an'ny fitahirizana ny fikorianan'ny rano sy ny fanaraha-maso ny dikan-teny. Karazana GIT. Ny fampahalalana momba ny fametrahana, ny fanamboarana ary ny fiasana amin'ny rejisitra dia azo jerena ao antontan-taratasy ofisialy. Ny flow for storage dia atambatra ho vondrona iray ary voatahiry amin'ity endrika ity ao amin'ny rejisitra. Hiverina amin’izany isika ato amin’ny lahatsoratra.

Eo am-piandohana, rehefa N dia isa kely, ny fikorianan'ny dia aterina sy havaozina amin'ny tanana amin'ny fotoana azo ekena.

Saingy rehefa mitombo ny N, dia mihamaro ny olana:

  1. mila fotoana bebe kokoa ny fanavaozana ny fandehanana. Mila miditra amin'ny mpizara rehetra ianao
  2. Misy hadisoana amin'ny fanavaozana ny maodely. Eto ry zareo no nanavao azy io, fa eto no adinony
  3. fahadisoan'ny olombelona rehefa manao asa maro mitovy

Izany rehetra izany dia mitondra antsika amin'ny hoe mila mandeha ho azy ny dingana. Nanandrana ireto fomba manaraka ireto aho hamahana ity olana ity:

  1. Ampiasao ny MiNiFi fa tsy ny NiFi
  2. NiFi CLI
  3. NiPyAPI

Mampiasa MiNiFi

Apache MiNiFy - tetikasan'ny Apache NiFi. MiNiFy dia mpiasan'ny compact izay mampiasa processeur mitovy amin'ny NiFi, mamela anao hamorona zotra mitovy amin'ny ao amin'ny NiFi. Ny toetra maivana amin'ny mpandraharaha dia tratra, ankoatra ny zavatra hafa, noho ny tsy fisian'ny MiNiFy amin'ny interface grafika amin'ny fanamafisana ny fikorianan'ny rivotra. Ny tsy fisian'ny interface an-tsary ho an'ny MiNiFy dia midika fa ilaina ny mamaha ny olana amin'ny fandefasana ny fikorianan'ny minifi. Satria ny MiNiFy dia ampiasaina mavitrika amin'ny IOT, misy singa maro ary mila mandeha ho azy ny fizotran'ny fandefasana ny fikorianan'ny minifi farany. Asa mahazatra, sa tsy izany?

Ny tetikasa hafa dia hanampy amin'ny famahana ity olana ity - MiNiFi C2 Server. Ity vokatra ity dia natao ho teboka afovoany amin'ny rafi-pamokarana fanamafisana. Ahoana ny fametrahana ny tontolo iainana - voalaza ao amin'ny ity lahatsoratra ity Ampy ny vaovao momba ny HabrΓ© hamahana ny olana. MiNiFi, miaraka amin'ny mpizara C2, dia manavao ho azy ny fandrindrana azy. Ny hany tsy fahampiana amin'ity fomba ity dia ny tsy maintsy mamorona modely amin'ny C2 Server ianao dia tsy ampy.

Ny safidy voalaza ao amin'ny lahatsoratra etsy ambony dia miasa ary tsy sarotra ny mampihatra, saingy tsy tokony hohadinointsika ireto manaraka ireto:

  1. Minifi dia tsy manana processeurs rehetra avy amin'ny nifi
  2. Ny dikan-tenin'ny processeur Minifi dia mihemotra aorian'ny versione processeur NiFi.

Tamin'ny fotoana nanoratana, ny kinova farany an'ny NiFi dia 1.9.2. Ny kinova farany processeur MiNiFi dia 1.7.0. Azo ampidirina amin'ny MiNiFi ny processeur, saingy noho ny tsy fitovian'ny versione eo amin'ny processeur NiFi sy MiNiFi dia mety tsy mandeha izany.

NiFi CLI

Rehefa mitsara Description fitaovana ao amin'ny tranonkala ofisialin'ny, izany dia fitaovana ho an'ny automating ny fifandraisana eo amin'ny NiFI sy ny rejistra NiFi eo amin'ny sehatry ny fanaterana mikoriana na ny fitantanana ny dingana. Mba hanombohana dia mila misintona ity fitaovana ity ianao. avy eto.

Sokafy ny utility

./bin/cli.sh
           _     ___  _
 Apache   (_)  .' ..](_)   ,
 _ .--.   __  _| |_  __    )
[ `.-. | [  |'-| |-'[  |  /  
|  | | |  | |  | |   | | '    '
[___||__][___][___] [___]',  ,'
                           `'
          CLI v1.9.2

Type 'help' to see a list of available commands, use tab to auto-complete.

Mba hahafahantsika mameno ny fikorianan'ny rejisitra ilaina, dia mila mahafantatra ny famantarana ny siny (bucket identifier) ​​sy ny fikorianan'ny tenany (flow identifier) ​​isika. Ity angon-drakitra ity dia azo alaina amin'ny alΓ lan'ny cli na amin'ny tranonkalan'ny rejisitra NiFi. Ao amin'ny interface web dia toa izao:

Automation Flow Delivery ao amin'ny Apache NiFi

Amin'ny fampiasana ny CLI dia atao izany:

#> registry list-buckets -u http://nifi-registry:18080

#   Name             Id                                     Description
-   --------------   ------------------------------------   -----------
1   test_bucket   709d387a-9ce9-4535-8546-3621efe38e96   (empty)

#> registry list-flows -b 709d387a-9ce9-4535-8546-3621efe38e96 -u http://nifi-registry:18080

#   Name           Id                                     Description
-   ------------   ------------------------------------   -----------
1   test_flow   d27af00a-5b47-4910-89cd-9c664cd91e85

Manomboka manafatra vondrona dingana avy amin'ny rejisitra izahay:

#> nifi pg-import -b 709d387a-9ce9-4535-8546-3621efe38e96 -f d27af00a-5b47-4910-89cd-9c664cd91e85 -fv 1 -u http://nifi:8080

7f522a13-016e-1000-e504-d5b15587f2f3

Ny teboka manan-danja dia ny hoe ny tranga nifi rehetra dia azo faritana ho mpampiantrano izay hanodina ny vondrona dingana.

Vondrona processeur nampiana processeurs najanona, mila atomboka izy ireo

#> nifi pg-start -pgid 7f522a13-016e-1000-e504-d5b15587f2f3 -u http://nifi:8080

Tsara, nanomboka ny processeurs. Na izany aza, araka ny fepetran'ny asa, mila tranga NiFi izahay handefasana angona amin'ny tranga hafa. Aoka hatao hoe nisafidy ny fomba Push ianao mba hamindra angona amin'ny mpizara. Mba handaminana ny famindrana angon-drakitra dia mila mamela ny famindrana angona ianao ao amin'ny Vondrona Fizorana lavitra (RPG) fanampiny, izay efa tafiditra ao anatin'ny fikorianantsika.

Automation Flow Delivery ao amin'ny Apache NiFi

Ao amin'ny antontan-taratasy ao amin'ny CLI sy loharano hafa dia tsy nahita fomba ahafahana mamindra angona aho. Raha hainao ny manao izany dia manorata ao amin'ny fanehoan-kevitra.

Satria manana bash isika ary vonona ny handeha hatramin'ny farany dia hahita lalana hivoahana! Azonao atao ny mampiasa ny NiFi API hamahana ity olana ity. Andao hampiasa ity fomba manaraka ity, raiso ny ID avy amin'ireo ohatra etsy ambony (raha ny anay dia 7f522a13-016e-1000-e504-d5b15587f2f3). Famaritana ny fomba NiFi API eto.

Automation Flow Delivery ao amin'ny Apache NiFi
Ao amin'ny vatana dia mila mandalo JSON ianao, toy izao:

{
    "revision": {
	    "clientId": "value",
	    "version": 0,
	    "lastModifier": "value"
	},
    "state": "value",
    "disconnectedNodeAcknowledged": true
}

Paramètre tsy maintsy fenoina mba hiasana:
fanjakana - sata famindrana angon-drakitra. Misy: TRANSMITTING mba ahafahana mamindra data, STOPPED mba tsy ho afaka
Malagasy Bible - dikan-ny processeur

Ny dikan-teny dia ho default amin'ny 0 rehefa noforonina, saingy azo alaina amin'ny alΓ lan'ny fomba ireo masontsivana ireo

Automation Flow Delivery ao amin'ny Apache NiFi

Ho an'ireo mpankafy ny sora-bash dia toa mety io fomba io, saingy somary sarotra amiko izany - tsy tiako ny script bash. Ny fomba manaraka dia mahaliana sy mety kokoa raha ny hevitro.

NiPyAPI

NiPyAPI dia tranomboky Python hifaneraserana amin'ny tranga NiFi. Pejy fandraketana mirakitra ny fampahalalana ilaina amin'ny fiaraha-miasa amin'ny tranomboky. Ny fanombohana haingana dia voalaza ao amin'ny tetikasa amin'ny github.

Ny scripty amin'ny famoahana ny konfigurasi dia programa amin'ny Python. Andao hiroso amin'ny coding.
Nametraka configs izahay ho an'ny asa fanampiny. Mila ireto parameter manaraka ireto isika:

nipyapi.config.nifi_config.host = 'http://nifi:8080/nifi-api' #ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ nifi-api инстанса, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ process group
nipyapi.config.registry_config.host = 'http://nifi-registry:18080/nifi-registry-api' #ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ nifi-registry-api registry
nipyapi.config.registry_name = 'MyBeutifulRegistry' #Π½Π°Π·Π²Π°Π½ΠΈΠ΅ registry, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² инстансС nifi
nipyapi.config.bucket_name = 'BucketName' #Π½Π°Π·Π²Π°Π½ΠΈΠ΅ bucket, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ подтягиваСм flow
nipyapi.config.flow_name = 'FlowName' #Π½Π°Π·Π²Π°Π½ΠΈΠ΅ flow, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ подтягиваСм

Manaraka izany dia hampiditra ny anaran'ny fomban'ity tranomboky ity aho, izay voalaza eto.

Ampifandraiso amin'ny instance nifi ny rejisitra mampiasa

nipyapi.versioning.create_registry_client

Amin'ity dingana ity, azonao atao koa ny manampy fanamarinana fa ny rejisitra dia efa nampiana ny ohatra;

nipyapi.versioning.list_registry_clients

Hitantsika ny siny ho fikarohana bebe kokoa momba ny fikorianan'ny harona

nipyapi.versioning.get_registry_bucket

Amin'ny fampiasana ny siny hita, dia mitady ny fikorianan'ny

nipyapi.versioning.get_flow_in_bucket

Manaraka izany, zava-dehibe ny mahatakatra raha efa nampiana ity vondrona dingana ity. Ny vondrona Process dia apetraka araka ny fandrindrana ary mety hipoitra ny toe-javatra rehefa misy singa faharoa apetraka eo ambonin'ny iray. Nojereko fa mety hitranga izany :) Mba hahazoana ireo vondrona mpikirakira fanampiny rehetra dia mampiasa ny fomba

nipyapi.canvas.list_all_process_groups

Afaka mikaroka bebe kokoa isika, ohatra, amin'ny anarana.

Tsy hilazalaza ny fizotran'ny fanavaozana ny mΓ΄dely aho, hilaza fotsiny aho fa raha ampidirina ao amin'ny dikan-teny vaovao ny mpanodina, dia tsy misy olana amin'ny fisian'ny hafatra ao amin'ny filaharana. Fa raha esorina ny processeur, dia mety hipoitra ny olana (nifi dia tsy mamela anao hanala processeur raha misy filaharana hafatra miangona eo anoloany). Raha liana amin'ny fomba namaha ity olana ity ianao dia manorata amiko ary hiresaka momba ity olana ity isika. Mifandray amin'ny faran'ny lahatsoratra. Andeha isika hiroso amin'ny dingana amin'ny fampidirana vondrona dingana.

Rehefa nanao debugging ny script aho dia nahita ny mampiavaka azy fa tsy misintona foana ny kinova farany amin'ny fikorianan'ny rivotra, noho izany dia manoro hevitra aho hanamarina ity dikan-teny ity aloha:

nipyapi.versioning.get_latest_flow_ver

Mametraka vondrona dingana:

nipyapi.versioning.deploy_flow_version

Manomboka ny processeur izahay:

nipyapi.canvas.schedule_process_group

Ao amin'ny sakana momba ny CLI dia nosoratana fa tsy mandeha ho azy ny famindrana angon-drakitra ao amin'ny vondrona dingana lavitra? Rehefa nampihatra ny script dia nisedra ity olana ity koa aho. Tamin'izany fotoana izany dia tsy afaka nanomboka ny famindrana angon-drakitra tamin'ny fampiasana ny API aho ary nanapa-kevitra ny hanoratra amin'ny mpamorona ny tranomboky NiPyAPI ary hangataka torohevitra/fanampiana. Namaly ahy ny mpamorona, niresaka momba ny olana izahay ary nanoratra izy fa mila fotoana "hijery zavatra". Ary avy eo, roa andro taty aoriana, tonga ny taratasy iray izay misy asa voasoratra amin'ny Python izay mamaha ny olan'ny fandefasana ahy !!! Tamin'izany fotoana izany, ny version NiPyAPI dia 0.13.3 ary mazava ho azy fa tsy nisy toy izany. Saingy ao amin'ny version 0.14.0, izay navoaka vao haingana, dia efa tafiditra ao amin'ny tranomboky io fiasa io. Mivory,

nipyapi.canvas.set_remote_process_group_transmission

Noho izany, amin'ny fampiasana ny tranomboky NiPyAPI, dia nampifandray ny rejisitra izahay, nanakodia ny fikorianan'ny rivotra, ary na dia nanomboka ny processeur sy ny famindrana angon-drakitra aza. Avy eo dia azonao atao ny manambatra ny kaody, manampy karazana fanamarinana rehetra, logging, ary izay ihany. Saingy tantara hafa tanteraka izany.

Amin'ireo safidy automatique noheveriko, ny farany dia toa ahy no mahomby indrindra. Voalohany, mbola code python ihany io, izay ahafahanao mampiditra code programme auxiliary ary manararaotra ny tombontsoa rehetra amin'ny fiteny fandaharana. Faharoa, mivoatra mavitrika ny tetikasa NiPyAPI ary raha misy olana dia azonao atao ny manoratra amin'ny mpamorona. Fahatelo, ny NiPyAPI dia mbola fitaovana mora kokoa hifaneraserana amin'ny NiFi amin'ny famahana olana sarotra. Ohatra, amin'ny famaritana raha foana ny filaharana hafatra ao amin'ny fikorianan'ny ary raha azo havaozina ny vondrona dingana.

Izay ihany. Nolazaiko ny fomba fiasa 3 amin'ny fanaterana ny fikorianan'ny rano ao amin'ny NiFi, ny fandrika mety ho hitan'ny mpamorona, ary nanome fehezan-dalΓ na miasa ho an'ny fanaterana automatique. Raha liana amin'ity lohahevitra ity toa ahy ianao - manoratra!

Source: www.habr.com

Add a comment