Fa'aautomeina Fa'asolo i Apache NiFi

Всем привет!

Fa'aautomeina Fa'asolo i Apache NiFi

O le galuega e faʻapea - o loʻo i ai se tafe, o loʻo tuʻuina atu i le ata o loʻo i luga, lea e manaʻomia ona taʻavale atu i N servers ma Apache NiFi. Su'ega Flow - o lo'o faia se faila ma lafo i se isi fa'ata'ita'iga NiFi. Fa'aliliuina fa'amatalaga e fa'aaogaina le NiFi Site to Site protocol.

O le NiFi Site to Site (S2S) ose auala saogalemu, faigofie ona fa'aogaina e fesiita'i ai fa'amatalaga i le va o fa'amatalaga NiFi. Auala e galue ai le S2S, vaai fa'amaumauga ma e taua le aua neʻi galo e faʻapipiʻi le faʻataʻitaʻiga NiFi e faʻatagaina S2S, vaʻai iinei.

I mataupu o loʻo matou talanoa ai e uiga i le faʻaliliuina o faʻamatalaga e faʻaaoga ai le S2S, o le tasi faʻataʻitaʻiga e taʻua o le tagata o tausia, o le server lona lua. E lafo e le kalani faʻamatalaga, e maua e le server. E lua auala e fa'atulaga ai le fesiitaiga o fa'amatalaga i le va oi latou:

  1. tūlei. Mai le fa'ata'ita'iga a le kalani, e lafo fa'amatalaga e fa'aaoga ai le Vaega o Fa'agasologa Mamao (RPG). I luga o le faʻataʻitaʻiga server, e maua faʻamatalaga e faʻaaoga ai le Input Port
  2. toso. E maua e le 'auʻaunaga faʻamatalaga e faʻaaoga ai le RPG, e lafoina e le kalani le faʻaogaina o le Output port.


Ole tafega mo le ta'avale o lo'o teuina ile Apache Registry.

Apache NiFi Registry o se poloketi laiti a Apache NiFi e maua ai se meafaigaluega mo le teuina o le tafe ma le puleaina o faʻamatalaga. O se ituaiga GIT. O faʻamatalaga e uiga i le faʻapipiʻiina, faʻatulagaina ma le galue ma le resitala e mafai ona maua i totonu pepa aloaia. O le tafe mo le teuina o loʻo tuʻufaʻatasia i se vaega faʻagasologa ma teuina i lenei fomu i le resitala. O le a tatou toe foʻi i lenei mea mulimuli ane i le tusiga.

I le amataga, pe a N o se numera laʻititi, o le tafe e tuʻuina atu ma faʻafouina ma le lima i se taimi talafeagai.

Ae a o tuputupu aʻe le N, o faʻafitauli e faʻateleina:

  1. e umi se taimi e fa'afou ai le tafe. E tatau ona e ulufale i totonu o sapalai uma
  2. E tutupu mea sese ile fa'afouina o mamanu. O iinei na latou faafou ai, ae o iinei na galo ai
  3. mea sese a tagata pe a faia se numera tele o gaioiga tutusa

O nei mea uma e aumaia ai i tatou i le mea moni tatou te manaʻomia le faʻaogaina otometi le faagasologa. Sa ou taumafai i auala nei e foia ai lenei faafitauli:

  1. Fa'aaoga le MiNiFi nai lo le NiFi
  2. NiFi CLI
  3. NiPyAPI

Faʻaaogaina le MiNiFi

Apache MiNiFy - poloketi a Apache NiFi. O le MiNiFy o se sui faʻapipiʻi e faʻaogaina tutusa masini e pei o le NiFi, e mafai ai ona e fatuina le tafe tutusa e pei o le NiFi. O le natura mama o le sooupu e ausia, faatasi ai ma isi mea, e ala i le mea moni e le o iai se faʻataʻitaʻiga faʻataʻitaʻi a le MiNiFy mo le faʻaogaina o le tafe. O le leai o se faʻataʻitaʻiga faʻataʻitaʻi mo MiNiFy o lona uiga e tatau ona foia le faʻafitauli o le tuʻuina atu o le tafe ile minifi. Talu ai o le MiNiFy o loʻo faʻaaogaina ma le malosi i le IOT, e tele vaega ma o le faagasologa o le tuʻuina atu o le tafe i faʻataʻitaʻiga minifi mulimuli e manaʻomia ona faʻaogaina. O se galuega masani, sa'o?

O le isi poloketi laiti o le a fesoasoani e foia lenei faafitauli - MiNiFi C2 Server. O lenei oloa ua faamoemoe e avea ma nofoaga tutotonu i le faatulagaga rollout fausaga fausaga. E faʻafefea ona faʻatulagaina le siosiomaga - faʻamatalaina i lenei tusiga E lava faʻamatalaga i Habré e foia ai le faʻafitauli. MiNiFi, faʻatasi ma le C2 server, faʻafouina faʻafouina lona faʻatulagaina. Pau lava le faʻaletonu o lenei auala e tatau ona e fatuina faʻataʻitaʻiga ile C2 Server e le lava;

O le filifiliga o loʻo faʻamatalaina i le tusiga o loʻo i luga o loʻo galue ma e le faigata ona faʻatinoina, ae e le tatau ona galo ia i tatou mea nei:

  1. Minifi e le maua uma masini mai nifi
  2. Minifi processor versions tu'u tua atu NiFi processor versions.

I le taimi o le tusitusi, o le lomiga lata mai o NiFi o le 1.9.2. O le lomiga lata mai o le MiNiFi processor o le 1.7.0. E mafai ona fa'aopoopo i le MiNiFi fa'agaioiga, ae ona o fa'asologa o fa'asalalauga i le va o NiFi ma MiNiFi, atonu e le aoga.

NiFi CLI

Faamasinoina e fa'amatalaga meafaigaluega i luga o le upega tafaʻilagi aloaia, o se meafaigaluega lea mo le faʻaogaina o le fegalegaleaiga i le va o le NiFI ma le NiFi Resitala i le fanua o le faʻafeiloaʻiga o le tafe poʻo le faʻagasologa o le pulega. Ina ia amata, e tatau ona e sii maia lenei meafaigaluega. mai iinei.

Tatala le aoga

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

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

Ina ia mafai ona tatou utaina le tafe manaʻomia mai le resitala, e manaʻomia ona tatou iloa faʻamatalaga o le pakete (faʻailoa pakete) ​​ma le tafe lava ia (faʻailoa o le tafe). O nei fa'amatalaga e mafai ona maua e ala i le cli po'o le NiFi registry web interface. I luga o le upega tafaʻilagi e pei o lenei:

Fa'aautomeina Fa'asolo i Apache NiFi

Faʻaaogaina le CLI ua faia lenei mea:

#> 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

Matou te amata fa'aulufaleina vaega fa'agasologa mai le resitala:

#> 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

O se itu taua o so'o se fa'ata'ita'iga nifi e mafai ona fa'amaoti mai o le talimalo lea tatou te ta'avale ai le vaega fa'agasologa.

Fa'agasologa vaega fa'aopoopo fa'atasi ma fa'agata processors, e mana'omia ona amata

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

Lelei, ua amata le gaosiga. Ae ui i lea, e tusa ai ma tuutuuga o le galuega, matou te manaʻomia NiFi faʻataʻitaʻiga e lafo ai faʻamatalaga i isi taimi. Se'i fa'apea ua e filifilia le auala Push e fesiita'i ai fa'amaumauga i le server. Ina ia faʻatulagaina le faʻaliliuina o faʻamatalaga, e te manaʻomia le faʻatagaina o faʻamatalaga faʻamatalaga i luga o le faʻaopoopoina o le Remote Process Group (RPG), lea ua uma ona aofia i la matou tafe.

Fa'aautomeina Fa'asolo i Apache NiFi

I faʻamaumauga i le CLI ma isi punaoa, ou te leʻi mauaina se auala e mafai ai ona faʻafeiloaʻi faʻamatalaga. Afai e te iloa le auala e fai ai lenei mea, faʻamolemole tusi i faʻamatalaga.

Talu ai ua tatou maua le bash ma ua tatou sauni e alu i le iuga, o le a tatou sailia se auala e alu ese ai! E mafai ona e faʻaogaina le NiFi API e foia ai lenei faʻafitauli. Sei o tatou faʻaogaina le auala lenei, ave le ID mai faʻataʻitaʻiga o loʻo i luga (i la tatou tulaga o le 7f522a13-016e-1000-e504-d5b15587f2f3). Faʻamatalaga o metotia API NiFi iinei.

Fa'aautomeina Fa'asolo i Apache NiFi
I le tino e te manaʻomia le pasi JSON, pei o lenei:

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

Parameter e manaʻomia ona faʻatumu ina ia galue:
tulaga - tulaga fesiitaiga o faamatalaga. Avanoa: TRANSMITTING e mafai ai ona faʻafeiloaʻi faʻamatalaga, TOTO e faʻamalo
faʻamatalaga - fa'asologa fa'agaioiga

version o le a faaletonu i le 0 pe a faia, ae o nei taʻiala e mafai ona maua e faʻaaoga ai le metotia

Fa'aautomeina Fa'asolo i Apache NiFi

Mo tagata fiafia i tusitusiga bash, atonu e foliga talafeagai lenei metotia, ae e fai si faigata ia te aʻu - bash scripts e le o se mea e sili ona ou fiafia i ai. O le isi auala e sili atu ona manaia ma faigofie i loʻu manatu.

NiPyAPI

NiPyAPI o se faletusi Python mo le fegalegaleai ma faʻataʻitaʻiga NiFi. Itulau fa'amaumauga o lo'o i ai fa'amatalaga talafeagai mo le galulue ai ma le faletusi. O le amataga vave o loʻo faʻamatalaina i le ata faataitai luga github.

O la matou tusitusiga mo le taʻavaleina o le faʻatulagaga o se polokalame i le Python. Sei o tatou agai atu i le coding.
Matou te setiina configs mo nisi galuega. Matou te manaʻomia mea nei:

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, которое подтягиваем

O le a ou faʻaofiina igoa o metotia o lenei faletusi, o loʻo faʻamatalaina iinei.

Faʻafesoʻotaʻi le resitala i le faʻataʻitaʻiga nifi faʻaaoga

nipyapi.versioning.create_registry_client

I lenei laasaga, e mafai foi ona e faʻaopoopoina se siaki ua uma ona faʻaopoopoina le resitala i le faʻataʻitaʻiga mo lenei mea e mafai ona e faʻaogaina le metotia

nipyapi.versioning.list_registry_clients

Matou te maua le pakete mo suʻesuʻega atili mo le tafe i totonu o le ato

nipyapi.versioning.get_registry_bucket

Fa'aaoga le pakete na maua, matou te su'e le tafe

nipyapi.versioning.get_flow_in_bucket

Le isi, e taua le malamalama pe ua uma ona faʻaopoopoina lenei vaega faʻagasologa. E tu'u le vaega o Fa'agasologa e tusa ai ma fa'amaopoopo ma e ono tula'i mai se tulaga pe a fa'apipi'i se vaega lona lua i luga o le tasi. Na ou siaki, e mafai ona tupu lenei mea :) Ina ia maua uma vaega faʻagasologa faʻaopoopo matou te faʻaogaina le metotia

nipyapi.canvas.list_all_process_groups

E mafai ona tatou su'esu'e atili, mo se fa'ata'ita'iga, ile igoa.

O le a ou le faʻamatalaina le faagasologa o le faʻafouina o le faʻataʻitaʻiga, o le a naʻo loʻu fai atu afai e faʻapipiʻi faʻasalalauga i le fou fou o le mamanu, ona leai lea o ni faʻafitauli i le i ai o feʻau i laina. Ae afai e aveese processors, ona tulai mai ai lea o faafitauli (nifi e le faatagaina oe e aveese se processor pe afai o se laina laina o loo i luma). Afai e te fiafia i le auala na ou foia ai lenei faafitauli, faamolemole tusi mai ia te au ma o le a matou talanoaina lenei mataupu. Feso'ota'iga i le fa'ai'uga o le tala. Sei o tatou agai i luma i le laasaga o le faʻaopoopoina o se vaega faʻagasologa.

Pe a faʻapipiʻi le tusitusiga, na ou maua ai se uiga ese o le lomiga lata mai o le tafe e le o taimi uma e tosoina i luga, o lea ou te fautuaina le siakiina muamua o lenei lomiga:

nipyapi.versioning.get_latest_flow_ver

Fa'atino vaega fa'agasologa:

nipyapi.versioning.deploy_flow_version

Tatou amata le processors:

nipyapi.canvas.schedule_process_group

I totonu o le poloka e uiga i le CLI na tusia ai e le otometi ona mafai ona faʻafeiloaʻi faʻamatalaga i le vaega mamao mamao? I le faʻatinoina o le tusitusiga, na ou feagai foi ma lenei faʻafitauli. I lena taimi, sa le mafai ona ou amataina le fesiitaiga o faʻamatalaga e faʻaaoga ai le API ma na ou filifili e tusi i le tagata faʻapipiʻi le faletusi o le NiPyAPI ma fesili mo se fautuaga / fesoasoani. Na tali mai le tagata atiaʻe ia te aʻu, na matou talanoaina le faʻafitauli ma na ia tusia e manaʻomia se taimi e "siaki ai se mea". Ma, i ni nai aso mulimuli ane, na oʻo mai ai se tusi o loʻo tusia ai se galuega i le Python e foia ai loʻu faʻafitauli faʻalauiloa !!! I lena taimi, o le NiPyAPI version o 0.13.3 ma, ioe, e leai se mea faapena. Ae i le version 0.14.0, lea na tatalaina talu ai nei, o lenei galuega ua uma ona aofia i totonu o le faletusi. Feiloai,

nipyapi.canvas.set_remote_process_group_transmission

O lea la, i le faʻaaogaina o le faletusi a le NiPyAPI, matou te faʻafesoʻotaʻi le resitala, taʻavale le tafe, ma e oʻo lava i le amataina o le gaosiga ma le fesiitaiga o faʻamatalaga. Ona mafai lea ona e selu le code, faaopoopo ituaiga uma o siaki, logging, ma na pau lava. Ae o se tala e matua ese lava.

Mai filifiliga otometi na ou mafaufau i ai, o le mea mulimuli na foliga mai ia te aʻu e sili ona lelei. Muamua, o le code python lava lea, lea e mafai ona e faʻapipiʻi ai le code polokalame fesoasoani ma faʻaaoga lelei uma aoga o le gagana polokalame. Lona lua, o le poloketi NiPyAPI o loʻo galue malosi ma i tulaga o faʻafitauli e mafai ona e tusi atu i le tagata atiaʻe. Lona tolu, o le NiPyAPI o se meafaigaluega sili atu ona fetuutuunai mo le fegalegaleai ma le NiFi i le foia o faafitauli faigata. Mo se faʻataʻitaʻiga, i le fuafuaina pe o loʻo gaogao nei laina feʻau i le tafe ma pe mafai ona faʻafouina le vaega faʻagasologa.

Pau lava lena. Na ou faamatalaina auala e 3 i le faʻaogaina o le faʻaogaina o le tafe i le NiFi, faʻalavelave e ono feagai ma se tagata atiaʻe, ma tuʻuina atu le tulafono galue mo le faʻaogaina otometi. Afai e te fiafia i lenei autu e pei o aʻu - tusi!

puna: www.habr.com

Faaopoopo i ai se faamatalaga