Hello a h-uile duine!
Tha an obair mar a leanas - tha sruth ann, air a thaisbeanadh san dealbh gu h-àrd, a dh’ fheumas a bhith air a sgaoileadh a-mach gu frithealaichean N le
Tha Làrach NiFi gu Làrach (S2S) na dhòigh tèarainte, furasta a rèiteachadh airson dàta a ghluasad eadar suidheachaidhean NiFi. Mar a tha S2S ag obair, faic
Ann an cùisean far a bheil sinn a’ bruidhinn mu ghluasad dàta a’ cleachdadh S2S, canar teachdaiche ri aon eisimpleir, an dàrna frithealaiche. Bidh an neach-dèiligidh a’ cur dàta, gheibh am frithealaiche. Dà dhòigh air gluasad dàta a rèiteachadh eatorra:
- Push. Bho eisimpleir an neach-dèiligidh, thèid dàta a chuir a-steach a’ cleachdadh Buidheann Pròiseas Iomallach (RPG). Air eisimpleir an fhrithealaiche, gheibhear dàta a’ cleachdadh am Port Input
- Pull. Bidh an frithealaiche a ’faighinn dàta a’ cleachdadh RPG, bidh an neach-dèiligidh a ’cur a’ cleachdadh port Toraidh.
Tha sruthadh airson sgaoileadh air a stòradh ann an Clàr Apache.
Tha Clàradh Apache NiFi na fho-phròiseact de Apache NiFi a bheir seachad inneal airson stòradh sruthadh agus smachd dreach. Seòrsa de GIT. Gheibhear fiosrachadh mu bhith a’ stàladh, a’ rèiteachadh agus ag obair leis a’ chlàr ann an
Aig an toiseach, nuair a tha N na àireamh bheag, tha sruth air a lìbhrigeadh agus air ùrachadh le làimh ann an ùine iomchaidh.
Ach mar a bhios N a’ fàs, bidh na duilgheadasan a’ fàs nas lìonmhoire:
- bheir e barrachd ùine airson an t-sruth ùrachadh. Feumaidh tu logadh a-steach a h-uile frithealaichean
- Tha mearachdan ùrachadh teamplaid a’ nochdadh. An seo dh’ ùraich iad e, ach an seo dhìochuimhnich iad
- mearachdan daonna nuair a bhios iad a’ coileanadh àireamh mhòr de dh’ obraichean coltach ris
Tha seo uile gar toirt don fhìrinn gum feum sinn am pròiseas a dhèanamh fèin-ghluasadach. Dh'fheuch mi na dòighean a leanas gus an duilgheadas seo fhuasgladh:
- Cleachd MiNiFi an àite NiFi
- NiFi CLI
- NiPyAPI
A’ cleachdadh MiNiFi
Cuidichidh fo-phròiseact eile leis an duilgheadas seo fhuasgladh - MiNiFi C2 Server. Thathas an dùil gum bi an toradh seo mar phrìomh àite ann an ailtireachd sgaoileadh rèiteachaidh. Mar a chuireas tu an àrainneachd air dòigh - air a mhìneachadh ann an
Tha an roghainn a tha air a mhìneachadh san artaigil gu h-àrd ag obair agus chan eil e doirbh a bhuileachadh, ach cha bu chòir dhuinn dìochuimhneachadh na leanas:
- Chan eil a h-uile pròiseasar aig Minifi bho nifi
- Tha dreachan pròiseasar Minifi air dheireadh air dreachan pròiseasar NiFi.
Aig àm sgrìobhaidh, is e an dreach as ùire de NiFi 1.9.2. Is e an dreach pròiseasar MiNiFi as ùire 1.7.0. Faodar pròiseasairean a chuir ri MiNiFi, ach air sgàth eadar-dhealachaidhean dreach eadar pròiseasairean NiFi agus MiNiFi, is dòcha nach obraich seo.
NiFi CLI
A ’breithneachadh le
Cuir air bhog an goireas
./bin/cli.sh
_ ___ _
Apache (_) .' ..](_) ,
_ .--. __ _| |_ __ )
[ `.-. | [ |'-| |-'[ | /
| | | | | | | | | | ' '
[___||__][___][___] [___]', ,'
`'
CLI v1.9.2
Type 'help' to see a list of available commands, use tab to auto-complete.
Gus an urrainn dhuinn an sruth a tha a dhìth a luchdachadh bhon chlàr, feumaidh fios a bhith againn air aithnichearan a’ bhucaid (aithnichear bucaid) agus an t-sruth fhèin (aithnichear sruth). Faodar an dàta seo fhaighinn an dàrna cuid tron cli no ann an eadar-aghaidh lìn clàraidh NiFi. Anns an eadar-aghaidh lìn tha e a’ coimhead mar seo:
A’ cleachdadh an CLI tha seo air a dhèanamh:
#> 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
Tòisichidh sinn a’ toirt a-steach buidheann pròiseas bhon chlàr:
#> 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
Is e puing chudromach gum faodar eisimpleir nifi sam bith a shònrachadh mar an aoigh air am bi sinn a’ sgaoileadh a’ bhuidheann pròiseas.
Buidheann pròiseas air a chur ris le pròiseasairean stad, feumaidh iad tòiseachadh
#> nifi pg-start -pgid 7f522a13-016e-1000-e504-d5b15587f2f3 -u http://nifi:8080
Sgoinneil, tha na pròiseasairean air tòiseachadh. Ach, a rèir teirmean na h-obrach, feumaidh sinn suidheachaidhean NiFi airson dàta a chuir gu suidheachaidhean eile. Gabhaidh sinn ris gu bheil thu air an dòigh Push a thaghadh airson dàta a ghluasad chun t-seirbheisiche. Gus gluasad dàta a chuir air dòigh, feumaidh tu gluasad dàta a chomasachadh air a’ Bhuidheann Pròiseas Iomallach (RPG) a bharrachd, a tha mar-thà air a ghabhail a-steach san t-sruth againn.
Anns na sgrìobhainnean anns an CLI agus tobraichean eile, cha do lorg mi dòigh air gluasad dàta a chomasachadh. Ma tha fios agad mar a nì thu seo, sgrìobh anns na beachdan.
Leis gu bheil bash againn agus gu bheil sinn deiseil airson a dhol chun deireadh, lorgaidh sinn slighe a-mach! Faodaidh tu an API NiFi a chleachdadh gus an duilgheadas seo fhuasgladh. Cleachdaidh sinn an dòigh a leanas, gabh an ID bho na h-eisimpleirean gu h-àrd (anns a’ chùis againn is e 7f522a13-016e-1000-e504-d5b15587f2f3). Tuairisgeul air dòighean API NiFi
Anns a’ bhodhaig feumaidh tu a dhol seachad air JSON, mar seo:
{
"revision": {
"clientId": "value",
"version": 0,
"lastModifier": "value"
},
"state": "value",
"disconnectedNodeAcknowledged": true
}
Paramadairean a dh'fheumar a lìonadh a-steach airson a bhith ag obair:
stàite - inbhe gluasad dàta. Ri fhaighinn: TRANSMITTING gus gluasad dàta a chomasachadh, STOPED gus a chuir à comas
dreach - dreach pròiseasar
bidh an dreach bunaiteach gu 0 nuair a thèid a chruthachadh, ach gheibhear na paramadairean sin leis an dòigh
Do luchd-leantainn sgriobtaichean bash, is dòcha gu bheil an dòigh seo a ’coimhead freagarrach, ach tha e beagan duilich dhomh - chan e sgriobtaichean bash as fheàrr leam. Tha an ath dhòigh-obrach nas inntinniche agus nas goireasaiche nam bheachd-sa.
NiPyAPI
Tha NiPyAPI na leabharlann Python airson eadar-obrachadh le suidheachaidhean NiFi.
Tha an sgriobt againn airson an rèiteachadh a sgaoileadh na phrògram ann am Python. Gluaisidh sinn air adhart gu còdadh.
Stèidhich sinn configs airson tuilleadh obrach. Feumaidh sinn na paramadairean a leanas:
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, которое подтягиваем
An uairsin cuiridh mi a-steach ainmean dhòighean an leabharlainn seo, a tha air am mìneachadh
Ceangail an clàradh ris an eisimpleir nifi a 'cleachdadh
nipyapi.versioning.create_registry_client
Aig a 'cheum seo, faodaidh tu cuideachd seic a chuir ris gu bheil an clàr air a chur ris an eisimpleir mu thràth; airson seo faodaidh tu am modh a chleachdadh
nipyapi.versioning.list_registry_clients
Lorg sinn am bucaid airson tuilleadh rannsachaidh airson sruthadh sa bhasgaid
nipyapi.versioning.get_registry_bucket
A 'cleachdadh a' bhucaid a chaidh a lorg, bidh sinn a 'coimhead airson sruth
nipyapi.versioning.get_flow_in_bucket
An ath rud, tha e cudromach tuigsinn a bheil am buidheann pròiseas seo air a chur ris mu thràth. Tha am buidheann Pròiseas air a chuir a rèir co-chomharran agus faodaidh suidheachadh èirigh nuair a thèid dàrna pàirt a chuir thairis air aon. Rinn mi sgrùdadh, faodaidh seo tachairt :) Gus a h-uile buidheann pròiseas a bharrachd fhaighinn bidh sinn a’ cleachdadh an dòigh
nipyapi.canvas.list_all_process_groups
Faodaidh sinn tuilleadh rannsachaidh a dhèanamh, mar eisimpleir, le ainm.
Cha toir mi cunntas air a’ phròiseas airson an teamplaid ùrachadh, cha bhith mi ag ràdh ach ma thèid pròiseasairean a chuir ris an dreach ùr den teamplaid, chan eil duilgheadas sam bith ann le làthaireachd teachdaireachdan anns na ciudha. Ach ma thèid pròiseasairean a thoirt air falbh, faodaidh duilgheadasan èirigh (cha leig nifi leat pròiseasar a thoirt air falbh ma tha ciudha teachdaireachd air cruinneachadh air a bheulaibh). Ma tha ùidh agad mar a dh’ fhuasgail mi an duilgheadas seo, nach sgrìobh thu thugam agus bruidhnidh sinn mun chùis seo. Caraidean aig deireadh an artaigil. Gluaisidh sinn air adhart chun cheum gus buidheann pròiseas a chur ris.
Nuair a bha mi a ’deasbad an sgriobt, thàinig mi tarsainn air rud sònraichte nach eil an dreach as ùire de shruth an-còmhnaidh air a tharraing suas, agus mar sin tha mi a’ moladh sùil a thoirt air an dreach seo an-toiseach:
nipyapi.versioning.get_latest_flow_ver
Cleachd buidheann pròiseas:
nipyapi.versioning.deploy_flow_version
Bidh sinn a’ tòiseachadh na pròiseasairean:
nipyapi.canvas.schedule_process_group
Anns a’ bhloc mu CLI chaidh a sgrìobhadh nach eil gluasad dàta air a chomasachadh gu fèin-ghluasadach sa bhuidheann phròiseasan iomallach? Nuair a chuir mi an sgriobt an gnìomh, thachair mi ris an duilgheadas seo cuideachd. Aig an àm sin, cha robh e comasach dhomh gluasad dàta a thòiseachadh leis an API agus chuir mi romhpa sgrìobhadh gu leasaiche leabharlann NiPyAPI agus comhairle / cuideachadh iarraidh. Fhreagair an leasaiche mi, bheachdaich sinn air an duilgheadas agus sgrìobh e gu robh feum aige air ùine airson “rudeigin a sgrùdadh”. Agus an uairsin, latha no dhà às deidh sin, thig litir a-steach anns a bheil gnìomh sgrìobhte ann am Python a dh’ fhuasglas mo dhuilgheadas tòiseachaidh !!! Aig an àm sin, bha an dreach NiPyAPI 0.13.3 agus, gu dearbh, cha robh dad mar sin ann. Ach ann an dreach 0.14.0, a chaidh a leigeil a-mach o chionn ghoirid, bha an gnìomh seo mar-thà air a ghabhail a-steach don leabharlann. Coinnich,
nipyapi.canvas.set_remote_process_group_transmission
Mar sin, a’ cleachdadh leabharlann NiPyAPI, cheangail sinn an clàr, chuir sinn a-steach sruth, agus thòisich sinn eadhon air pròiseasairean agus gluasad dàta. An uairsin faodaidh tu an còd a chìreadh, cuir a h-uile seòrsa seic, logadh a-steach, agus sin agad. Ach ’s e sgeulachd gu tur eadar-dhealaichte a tha sin.
De na roghainnean fèin-ghluasaid air an do bheachdaich mi, bha e coltach riumsa am fear mu dheireadh as èifeachdaiche. An toiseach, is e còd python a tha seo fhathast, anns an urrainn dhut còd prògram cuideachaidh a chuir a-steach agus brath a ghabhail air na buannachdan uile bhon chànan prògramaidh. San dàrna h-àite, tha pròiseact NiPyAPI gu gnìomhach a’ leasachadh agus ma tha duilgheadasan ann faodaidh tu sgrìobhadh chun leasaiche. San treas àite, tha NiPyAPI fhathast na inneal nas sùbailte airson eadar-obrachadh le NiFi ann a bhith a’ fuasgladh dhuilgheadasan iom-fhillte. Mar eisimpleir, ann a bhith a’ dearbhadh a bheil na ciudhaichean teachdaireachd a-nis falamh san t-sruth agus an gabh am buidheann pròiseas ùrachadh.
Sin e. Thug mi cunntas air dòighean-obrach 3 airson lìbhrigeadh sruth fèin-ghluasadach ann an NiFi, duilgheadasan a dh’ fhaodadh a bhith aig leasaiche, agus thug mi seachad còd obrach airson lìbhrigeadh fèin-ghluasadach. Ma tha an aon ùidh agad sa chuspair seo ’s a tha mise -
Source: www.habr.com