Hello qof walba!
Hawshu waa sida soo socota - waxaa jira qulqulo, oo lagu soo bandhigay sawirka kore, kaas oo u baahan in lagu soo rogo N server-yada
Goobta NiFi ee Goobta (S2S) waa hab aamin ah, si fudud loo habayn karo oo lagu kala wareejiyo xogta inta u dhaxaysa tusaalooyinka NiFi. Sida S2S u shaqeeyo, eeg
Xaaladaha aan ka hadlayno wareejinta xogta iyadoo la adeegsanayo S2S, hal tusaale waxaa loo yaqaan macmiilka, serverka labaad. Macmiilku wuxuu soo diraa xogta, adeegaha ayaa helaya. Laba siyaabood oo loo habeeyo wareejinta xogta dhexdooda:
- murugeeysan. Laga soo bilaabo tusaale ahaan macmiilka, xogta waxaa loo diraa iyadoo la adeegsanayo Kooxda Habka Fog (RPG). Tusaalaha serferka, xogta waxaa lagu helaa iyadoo la isticmaalayo Port-ga-gelinta
- jiid. Adeeguhu wuxuu helayaa xogta isagoo isticmaalaya RPG, macmiilku wuxuu soo diraa isagoo isticmaalaya dekedda Output.
Socodka soo bixida waxa lagu kaydiyaa Diiwaanka Apache.
Diiwaanka Apache NiFi waa mashruuc hoose oo Apache NiFi ah oo bixisa aalad kaydinta socodka iyo xakamaynta nooca. Nooc ka mid ah GIT. Macluumaadka ku saabsan rakibidda, habaynta iyo la shaqaynta diiwaanka waxa laga heli karaa gudaha
Bilawga, marka N uu yahay tiro yar, socodka ayaa la keenaa oo gacanta lagu cusboonaysiiyaa wakhti la aqbali karo.
Laakiin marka N sii kordho, dhibaatooyinku aad bay u badan yihiin:
- waxay qaadataa wakhti dheeraad ah si loo cusbooneysiiyo socodka. Waxaad u baahan tahay inaad gasho dhammaan server-yada
- Khaladaadka cusboonaysiinta qaab-dhismeedka ayaa dhaca Halkan way cusbooneysiiyeen, laakiin halkan way illoobeen
- khaladaadka aadanaha marka la sameeyo tiro badan oo hawlgallo la mid ah
Waxaas oo dhami waxay noo keenayaan xaqiiqda ah inaan u baahanahay inaan si otomaatig ah u samayno habka. Waxaan isku dayay siyaabaha soo socda si aan u xalliyo dhibaatadan:
- Isticmaal MiNiFi bedelkii NiFi
- NiFi CLI
- NiPyAPI
Isticmaalka MiNiFi
Mashruuc kale ayaa kaa caawin doona xallinta dhibaatadan - MiNiFi C2 Server. Alaabtan waxaa loogu talagalay inay noqoto barta dhexe ee qaabaynta qaabaynta qaabeynta. Sida loo habeeyo deegaanka - lagu tilmaamay
Ikhtiyaarka lagu sharraxay maqaalka sare waa mid shaqeynaya oo ma adka in la fuliyo, laakiin waa inaan iloobin kuwan soo socda:
- Minifi ma laha dhammaan processor-yaasha nifi
- Noocyada processor-ka Minifi ayaa ka dambeeya noocyada processor-ka NiFi.
Waqtiga qorista, nooca ugu dambeeyay ee NiFi waa 1.9.2. Nooca processor-ka ugu dambeeyay ee MiNiFi waa 1.7.0. Processor-yaasha waxaa lagu dari karaa MiNiFi, laakiin farqiga u dhexeeya nooca NiFi iyo MiNiFi awgeed, tani ma shaqaynayso.
NiFi CLI
Ku xukumaya
Bilaw utility-ga
./bin/cli.sh
_ ___ _
Apache (_) .' ..](_) ,
_ .--. __ _| |_ __ )
[ `.-. | [ |'-| |-'[ | /
| | | | | | | | | | ' '
[___||__][___][___] [___]', ,'
`'
CLI v1.9.2
Type 'help' to see a list of available commands, use tab to auto-complete.
Si aan uga soo rarno qulqulka loo baahan yahay ee diiwaanka, waxaan u baahanahay inaan ogaano aqoonsiga baaldiga (calaamadaha baaldiga) iyo socodka laftiisa ( aqoonsiga socodka). Xogtan waxaa laga heli karaa iyada oo loo marayo cli ama interface webka diiwaanka NiFi. Interface-ka mareegaha waxa uu u egyahay sidan:
Isticmaalka CLI tan ayaa la sameeyaa:
#> 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
Waxaan bilaabeynaa ka soo dejinta kooxda nidaamka diiwaanka:
#> 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
Qodob muhiim ah ayaa ah in tusaale kasta oo nifi ah lagu tilmaami karo martigeliyaha kaas oo aan u galeyno kooxda habsocodka.
Kooxda habsocodka lagu daray soo-saareyaal la joojiyay, waxay u baahan yihiin in la bilaabo
#> nifi pg-start -pgid 7f522a13-016e-1000-e504-d5b15587f2f3 -u http://nifi:8080
Way fiicantahay, processor-yadu way bilaabeen. Si kastaba ha noqotee, marka loo eego shuruudaha hawsha, waxaan u baahanahay tusaalooyin NiFi si aan xogta ugu dirno xaaladaha kale. Aynu ka soo qaadno inaad dooratay habka riixida si aad xogta ugu wareejiso server-ka. Si loo habeeyo wareejinta xogta, waxaad u baahan tahay inaad awood u yeelatid wareejinta xogta kooxda Habka Fog ee lagu daray (RPG), kaas oo horay ugu jiray socodkayaga.
Dukumeentiyada ku jira CLI iyo ilo kale, ma helin hab aan awood ugu yeesho wareejinta xogta. Haddii aad taqaan sida tan loo sameeyo, fadlan ku qor faallooyinka.
Mar haddii aan haysano bash oo aan diyaar u nahay inaan aadno dhamaadka, waxaan heli doonaa waddo ka baxsan! Waxaad isticmaali kartaa NiFi API si aad u xalliso dhibaatadan. Aynu isticmaalno habkan soo socda, ka soo qaad aqoonsiga tusaalooyinka sare (xaaladkeena waa 7f522a13-016e-1000-e504-d5b15587f2f3). Sharaxaada hababka NiFi API
Jirka dhexdiisa waxaad u baahan tahay inaad ka gudubto JSON, sida tan:
{
"revision": {
"clientId": "value",
"version": 0,
"lastModifier": "value"
},
"state": "value",
"disconnectedNodeAcknowledged": true
}
Halbeegyada loo baahan yahay in la buuxiyo si ay u shaqeyso:
gobolka - heerka wareejinta xogta. La heli karo: Gudbinta si loo suurtageliyo wareejinta xogta, JOOJIYAY si loo joojiyo
version - nooca processor-ka
nooca wuxuu noqon doonaa 0 marka la abuuro, laakiin xuduudahaan waxaa lagu heli karaa iyadoo la adeegsanayo habka
Taageerayaasha qoraallada bash, habkani wuxuu u ekaan karaa mid ku habboon, laakiin way igu adag tahay aniga - qoraallada bash-ka maaha kuwa aan jeclahay. Habka soo socda ayaa aad u xiiso badan oo ku habboon fikradayda.
NiPyAPI
NiPyAPI waa maktabad Python ah oo loogu talagalay la falgalka xaaladaha NiFi.
Qoraalkeena ku saabsan soo dejinta qaabeynta waa barnaamij ku jira Python. Aan u gudubno codaynta.
Waxaan u samaynay habayn shaqo dheeraad ah. Waxaan u baahan doonaa xuduudaha soo socda:
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, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π΅ΠΌ
Marka xigta waxaan gelin doonaa magacyada hababka maktabaddan, kuwaas oo lagu tilmaamay
Ku xidh diiwaanka tusaalaha nifi adigoo isticmaalaya
nipyapi.versioning.create_registry_client
Tallaabadan, waxaad sidoo kale ku dari kartaa jeeg in diiwaanka mar hore lagu daray tusaale ahaan; tan waxaad isticmaali kartaa habka
nipyapi.versioning.list_registry_clients
Waxaan u helnaa baaldi si loo raadiyo qulqulka qulqulka ee dambiisha
nipyapi.versioning.get_registry_bucket
Isticmaalka baaldiga la helay, waxaan raadineynaa socodka
nipyapi.versioning.get_flow_in_bucket
Marka xigta, waa muhiim in la fahmo in kooxdan habsocodka mar hore lagu daray. Kooxda habsocodka waxa loo dhigaa si waafaqsan iskudubarid xaaladuna way iman kartaa marka qayb labaad la dul saaro. Waan hubiyay, tani way dhici kartaa :) Si aan u helno dhammaan kooxaha habka lagu daray waxaan isticmaalnaa habka
nipyapi.canvas.list_all_process_groups
Waxaan sii raadin karnaa, tusaale ahaan, magac ahaan.
Ma qeexi doono habka loo cusbooneysiiyo template, kaliya waxaan dhihi doonaa haddii processor-yada lagu daro nooca cusub ee template, markaa ma jiraan wax dhibaato ah oo ku saabsan joogitaanka fariimaha ee safafka. Laakiin haddii processor-rada la saaro, markaa dhibaatooyin ayaa soo bixi kara (nifi kuma oggola inaad ka saarto processor-ka haddii safka farriinta uu ku ururay hortiisa). Hadii aad xiisaynayso sidaan u xaliyay dhibaatadan, fadlan ii soo qor annaguna waan ka wada hadli doonaa qodobkan. Xiriirada dhamaadka maqaalka. Aan u gudubno tallabada ku darida kooxda habsocodka.
Markii aan saxayay qoraalka, waxaan la kulmay sifo gaar ah oo ah in nooca ugu dambeeya ee socodka aan had iyo jeer la soo jiidin, marka waxaan ku talinayaa in marka hore la eego noocaan:
nipyapi.versioning.get_latest_flow_ver
Geli kooxda habsocodka:
nipyapi.versioning.deploy_flow_version
Waxaan bilownaa processor-rada:
nipyapi.canvas.schedule_process_group
Qeybta ku saabsan CLI waxaa lagu qoray in wareejinta xogta aan si toos ah loogu shaqeyn kooxda nidaamka fog? Markii aan fulinayo qoraalka, waxaan la kulmay dhibaatadan sidoo kale. Waqtigaas, ma awoodin in aan bilaabo wareejinta xogta aniga oo isticmaalaya API waxaanan go'aansaday in aan u qoro horumariyaha maktabadda NiPyAPI oo aan weydiiyo talo/caawin. Horumariyuhu wuu ii jawaabay, waanu ka wada hadalnay dhibaatada wuxuuna qoray inuu u baahan yahay wakhti uu "wax ku hubiyo". Kadibna, dhowr maalmood ka dib, waxaa timid warqad ay ku qoran tahay shaqo Python ah oo xallinaysa dhibka aan bilaabay !!! Waqtigaas, nooca NiPyAPI wuxuu ahaa 0.13.3, dabcan, ma jirin wax la mid ah. Laakiin nooca 0.14.0, ee la sii daayay dhawaanahan, shaqadan ayaa mar hore lagu soo daray maktabadda. La kulan,
nipyapi.canvas.set_remote_process_group_transmission
Markaa, annagoo adeegsanayna maktabadda NiPyAPI, waxaan isku xirnay diiwaanka, soo galnay socodka, oo xitaa waxaan bilownay soo-saareyaasha iyo wareejinta xogta. Markaa waxaad shanlayn kartaa koodka, ku dar dhammaan noocyada jeegaga, gelista, waana intaas oo dhan. Laakiin taasi waa sheeko gebi ahaanba ka duwan.
Ikhtiyaarada otomaatiga ah ee aan tixgeliyey, kan ugu dambeeya ayaa ii muuqday midka ugu waxtarka badan. Marka hore, kani wali waa koodka python, kaas oo aad ku dhejin karto koodka barnaamijka caawimada oo aad ka faa'iidaysan karto dhammaan faa'iidooyinka luqadda barnaamijka. Marka labaad, mashruuca NiPyAPI si firfircoon ayuu u horumarayaa oo haddii ay dhibaato dhacdo waxaad u qori kartaa horumariyaha. Marka saddexaad, NiPyAPI wali waa qalab aad u dabacsan oo lagula macaamilayo NiFi si loo xalliyo dhibaatooyinka adag. Tusaale ahaan, marka la go'aaminayo in safafka farriinta ay hadda madhan yihiin socodka iyo in kooxda habsocodka la cusboonaysiin karo.
Waa intaas. Waxaan sharaxay 3 habab oo otomaatig ah gaarsiinta qulqulka ee NiFi, godad uu horumariye la kulmi karo, oo aan bixiyay koodka shaqada si otomaatig ah gaarsiinta. Haddii aad u xiisaynayso mawduucan sidaan anigu ahay -
Source: www.habr.com