Automatio fluxus traditionis in Apache NiFi

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚!

Automatio fluxus traditionis in Apache NiFi

Negotium hoc modo est - cursus est, qui in pictura supra sistitur, qui ad N cum ministris debet convolvi. Apache NiFi. Flow test - fasciculus generatur et ad aliam instantiam NiFi mittit. Data translatio fit utens NiFi Site ad locum protocollum.

NiFi Site ad Site (S2S) securum, facile configurabile est via ad notitias transferendi inter Instantias NiFi. Quomodo opera S2S, vide documentum et magni momenti est ne obliviscamur exempli NiFi configurare permittere S2S, vide hic.

In casibus ubi loquimur de notitia translationis usura S2S, una instantia vocatur clientis, secunda ministratrix. Cliens data mittit, servo accipit. Duo modi configurare inter se data translatione;

  1. ventilabis. Ex instantia clientis data mittitur utens Processu remoto (RPG). In calculonis servi, data accipitur utens Input Port
  2. trahere. Servus data utens RPG accipit, client utens Output portum mittit.


Fluere pro volutione reponitur in Apache Subcriptio.

Apache NiFi Subcriptio est subiectum Apache NiFi quod instrumentum repositionis et versionis imperium praebet. QUID GIT. Informationes de insertis, configurandis et laborantibus cum registro inueniri possunt officialis documenta. Fluxus pro repositione coniungitur in coetus processui et sub hac forma in registro reponitur. Ad hoc postea in articulo reddemus.

Initio, cum N exiguus numerus est, fluxus traditur et renovatur manually tempore accepto.

Sed cum N increscit, problemata plures fiunt;

  1. plus temporis accipit ad fluxum update. Vos postulo ut stipes in omnibus servers
  2. Formulae adaequationis errores inveniunt. Hic renovaverunt eam, hic autem oblitus
  3. hominum errores faciendo numerus similis operationes

Haec omnia nos perducunt ad processum automate quod opus est. Sequentibus modis hanc problema solvere conatus sum:

  1. Usus MiNiFi pro NiFi
  2. NiFi CLI
  3. NiPyAPI

per MiNiFi

Apache MiNiFy β€” Subiectum Apache NiFi. MiNiFy est agens pactus, qui iisdem processibus utitur ac NiFi, permittens te creare idem fluit ac in NiFi. Leve natura agentis consequitur, inter alia, eo quod MiNiFy non habet interfaciem graphicam pro influxu configurationis. Defectus instrumenti graphici in MiNiFy significat necessarium esse problema solvendi fluxum ad minifi solvendum. Cum MiNiFy active in IOT adhibetur, multae partes sunt et processus fluere liberandi ad instantias finales minifi quas automated necesse est. Nota opus, vox?

Subiectum alterum adiuvabit hanc quaestionem solvendam - MiNiFi C2 Servo. Productum hoc intendit esse punctum centrale in configuratione architecturae rolloutae. Quomodo configurare ambitum - descriptum in hoc articulum Satis compertum est de Habre ad problema solvendum. MiNiFi, coniunctus cum servo C2, configurationem suam automatice updates. Solum accessus huius incommodi est quod exempla in Servo C2 creare debes, simplex subcriptio committere non sufficit.

Optio, quae in superiori articulo descripta est, laborat nec difficilis ad efficiendum, sed sequentia oblivisci non debemus;

  1. Minifi non habet omnes processus ex nifi
  2. Minifi processus versiones lag post NiFi processus versiones.

In tempore scribendi, novissima versio NiFi est 1.9.2. Novissima processus MiNiFi versio 1.7.0 est. Processores MiNiFi addi possunt, sed propter discrepantias versionis inter processores NiFi et MiNiFi, hoc opus non est.

NiFi CLI

ex iis, descriptio instrumentum in loco officiali, hoc instrumentum est ad automandi commercium inter NiFI et NiFi Registry in campo fluxus traditionis seu administrationis processus. Incipias, debes hoc instrumentum extrahere. hic.

Curre ad utilitatem

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

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

Ut nobis debitum ex registro fluxum oneraremus, identificatores situlae (situlae identificantis) et ipsum fluxum (fluxus identifier) ​​cognoscere debemus. Haec notitia vel per cli vel in registro NiFi interfaciei obtineri potest. In interretiali interretiali aspectus sic est:

Automatio fluxus traditionis in Apache NiFi

CLL Utens hoc fiat;

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

Committitur inferentes processum coetus ex registro:

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

Momenti punctum est quod quaevis nisi instantia specificari potest sicut exercitus ad quem processum coetus devolvimus.

Processus coetus additis processoribus obstructis, incipiendum est

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

Magni processores inceperunt. Attamen, secundum formam negotii, instantiae NiFi indigemus ut notitias ad alias instantias mitteremus. Sumamus quod ventilabis modum electum transferendi data servo. Ut notitias translationis ordinare debes, notitia translationis in processu remotis processu addito (RPG), quae in fluxu nostro iam comprehenditur.

Automatio fluxus traditionis in Apache NiFi

In documentis in CLI aliisque fontibus viam non inveni ut notitias transferat. Si scias hoc facere, scribe in comment.

Cum bash habemus et ad finem ire parati sumus, exitum inveniemus! Hanc quaestionem solvere NiFi API uti potes. Hoc modo utamur, exemplis supra ID sume (in nostro casu est 7f522a13-016e-1000-e504-d5b15587f2f3). Description of NiFi API methodi hic.

Automatio fluxus traditionis in Apache NiFi
In corpore transire debes JSON, sic:

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

Integer condimentum id enim eget viverra.
statum β€” notitia status translationis. Praesto: transmittendi ad enable notitia translationis, substitit inactivandi
versionem - processus version

versio defalta erit 0 cum creata, sed haec parametri methodo utendo obtineri possunt

Automatio fluxus traditionis in Apache NiFi

Scripta enim litterarum bash, haec methodus apta videri potest, sed parum difficilis est mihi - verissima scripta non sunt mea gratissima. Sequens methodus mea sententia commodior est et commodior.

NiPyAPI

NiPyAPI bibliotheca Pythonis est pro mutuo instantiis NiFi. Documenta pagina continet necessarias notitias ad operandum cum bibliotheca. Velox initium describitur in project on github.

Scriptum nostrum de configuratione evolvendi propositum est in Pythone. Ad coding transeamus.
configs pro ulteriori opere constituimus. Hoc parametri opus erit:

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, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ подтягиваСм

Deinde inseram nomina modorum huius bibliothecae, qui describuntur hic.

Coniungere subcriptio ad nifi exempli gratia usura

nipyapi.versioning.create_registry_client

Ad hunc gradum etiam perscriptio addere potes quod actis subcriptio iam instantiae adiciatur, eo quod methodo uti potes.

nipyapi.versioning.list_registry_clients

Situla ulterior quaerendi in canistro invenimus

nipyapi.versioning.get_registry_bucket

Situla inventis utendo, quaerimus fluxus

nipyapi.versioning.get_flow_in_bucket

Deinde interest scire num coetus hic processus iam additus sit. Coetus processus secundum coordinatas ponitur et condicio oriri potest cum altera pars superponatur. Compressi, hoc fieri potest :) Ut omnes processus coetus additae methodo utamur

nipyapi.canvas.list_all_process_groups

Ulterius investigare, exempli gratia, nominatim possumus.

Processum augendi Formulae non describemus, tantum dicam quod si processus in nova Formulae versione adiciantur, nullas esse difficultates cum praesentibus nuntiis in stantibus anteponere. Sed si processus removentur, difficultates oriuntur (nisi non permittit te processus removere si nuntius queue ante eum congesta est). Si interest quomodo hanc quaestionem solvi, scribes ad me et de hac re deliberabimus. Noti in fine articuli. Transeamus ad gradum additi processus coetus.

Cum debugging scripturam peculiarem incidi quod versionem novissimam fluxus non semper evellit, ideo hanc versionem primam inhibitam commendo;

nipyapi.versioning.get_latest_flow_ver

Processus coetus explicandam:

nipyapi.versioning.deploy_flow_version

Processores incipimus:

nipyapi.canvas.schedule_process_group

In scandalo de CLI scriptum est translationem datam non sponte facere in circulo processus remoti? Cum exsequerentur scripturam, etiam hoc problema incidi. Illo tempore, notitia translationis incipere non potui utendo API et ad viae bibliothecae NiPyAPI scribere decrevi et consilium/auxilium petere. Elit mihi respondit, quaestionem tractavimus et scripsit tempus ad "reprehendendum aliquid". Deinde, post biduum, epistula pervenit in qua munus Pythone scriptum est quod problema launching! Illo tempore in NiPyAPI versio erat 0.13.3 et certe nihil tale erat. Sed in versione 0.14.0, quod recentissime dimissum est, hoc munus in bibliotheca iam comprehendebatur. Dignum,

nipyapi.canvas.set_remote_process_group_transmission

Ita, adhibito bibliotheca NiPyAPI, registro evolutionis evolutionis contexuimus, et processores etiam incepit et notitia translationis. Tunc codicem pectere potes, omnia genera compescuum, logingum, et omnia omnia adde. Sed haec omnino alia fabula est.

Optionum automationum quas perspexi, ultima efficacissima mihi visa est. Uno modo, hic adhuc pythonis codicem, in quem codici programmatis auxiliari inseri potes et omnibus utilitatibus linguae programmationis uti potes. Secundo, consilium NiPyAPI active evolutionis est et in causa problematum scribere potes in elit. Tertio, NiPyAPI instrumentum flexibile adhuc est in solvendo problematum complexorum cum NiFi. Exempli causa, in determinando num nuntius queues nunc in fluxu vacuae sint et an coetus processus renovari possit.

Id omne. Descripsi 3 aditus ad automandi descensum traditionis in NiFi, foveae ut elit occurrant, et codicem operandi praebeatur ad partum automandi. Si tu es interested in hoc loco sicut ego sum - scribe!

Source: www.habr.com