Hello a pau!
Penei ka hana - aia kahi kahe i hōʻike ʻia ma ke kiʻi ma luna, pono e ʻōwili ʻia i nā kikowaena N me
ʻO NiFi Site to Site (S2S) kahi ala palekana, hiki ke hoʻololi i ka ʻikepili ma waena o nā manawa NiFi. E ʻike i ka hana ʻana o S2S
I ka wā e pili ana i ka hoʻoili ʻikepili me ka hoʻohana ʻana iā S2S, ua kapa ʻia kahi mea kūʻai aku, ʻo ka lua he kikowaena. Hoʻouna ka mea kūʻai i ka ʻikepili, loaʻa i ke kikowaena. ʻElua ala e hoʻonohonoho ai i ka hoʻoili ʻikepili ma waena o lākou:
- pahu aku ai i. Hoʻouna ʻia ka ʻikepili mai ka mea kūʻai aku me ka hoʻohana ʻana i kahi Pūʻulu Kaʻina Hana mamao (RPG). Ma ke kikowaena kikowaena, loaʻa ka ʻikepili me ka hoʻohana ʻana i ka Input Port
- huki. Loaʻa i ka server ka ʻikepili me ka RPG, hoʻouna ka mea kūʻai aku me ka hoʻohana ʻana i ke awa Output.
Mālama ʻia ke kahe no ka holo ʻana ma ka Registry Apache.
ʻO Apache NiFi Registry kahi papahana o Apache NiFi e hāʻawi ana i kahi mālama kahe a me nā mea hana hoʻololi. ʻO kahi ʻano GIT. Hiki ke loaʻa ka ʻike e pili ana i ke kau ʻana, ka hoʻonohonoho ʻana a me ka hana ʻana me ke kākau inoa
I ka hoʻomaka, inā he helu liʻiliʻi ʻo N, hāʻawi ʻia ke kahe a hoʻonui ʻia e ka lima i ka manawa kūpono.
Akā i ka ulu ʻana o N, nui aʻe nā pilikia:
- ʻoi aku ka lōʻihi o ka manawa e hōʻano hou i ke kahe. Pono ʻoe e hele i nā kikowaena a pau
- aia nā hewa i ka hoʻonui ʻana i nā mamana. Ma ʻaneʻi lākou i hōʻano hou, akā eia lākou poina
- hewa kanaka ke hana i ka nui o na hana like
Ke lawe nei kēia mau mea iā mākou i ka ʻoiaʻiʻo he pono e hoʻomaʻemaʻe i ke kaʻina hana. Ua hoʻāʻo wau i kēia mau ala e hoʻoponopono ai i kēia pilikia:
- E hoʻohana i ka MiNiFi ma kahi o NiFi
- NiFi CLI
- NiPyAPI
Ke hoʻohana nei i ka MiNiFi
ʻO kekahi subproject, MiNiFi C2 Server, e kōkua i ka hoʻoponopono ʻana i kēia pilikia. Manaʻo ʻia kēia huahana e lilo i ke kikowaena o ka hoʻolālā hoʻolaha. Pehea e hoʻonohonoho ai i ke kaiapuni - wehewehe ʻia ma
Ke hana nei ke koho i wehewehe ʻia ma ka ʻatikala ma luna a ʻaʻole paʻakikī ke hoʻokō, akā ʻaʻole pono mākou e poina i kēia:
- ʻAʻole loaʻa i ka minifi nā kaʻina hana a pau mai nifi
- Aia nā mana CPU ma Minifi ma hope o nā mana CPU ma NiFi.
I ka manawa kākau, ʻo ka mana hou o NiFi ʻo 1.9.2. ʻO ka mana kaʻina hana o ka mana MiNiFi hou loa he 1.7.0. Hiki ke hoʻohui ʻia nā kaʻina hana i MiNiFi, akā ma muli o nā ʻano like ʻole ma waena o nā kaʻina hana NiFi a me MiNiFi, ʻaʻole pono kēia.
NiFi CLI
E hoahewa ana e
Holo i ka pono
./bin/cli.sh
_ ___ _
Apache (_) .' ..](_) ,
_ .--. __ _| |_ __ )
[ `.-. | [ |'-| |-'[ | /
| | | | | | | | | | ' '
[___||__][___][___] [___]', ,'
`'
CLI v1.9.2
Type 'help' to see a list of available commands, use tab to auto-complete.
I mea e hiki ai iā mākou ke hoʻouka i ka kahe e pono ai mai ka papa inoa, pono mākou e ʻike i nā mea hōʻike o ka hīnaʻi (ka ʻike ʻike) a me ke kahe ponoʻī (ka ʻike kahe). Hiki ke kiʻi ʻia kēia ʻikepili ma o ka cli a i ʻole ma ke kikowaena pūnaewele hoʻopaʻa inoa NiFi. ʻO ka ʻaoʻao pūnaewele e like me kēia:
Ke hoʻohana nei i ka CLI, hana ʻoe i kēia:
#> 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
Holo i ka hui kaʻina hana hoʻokomo mai ka papa inoa:
#> 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 kahi mea koʻikoʻi e hiki ke kuhikuhi ʻia i kēlā me kēia nifi ma ke ʻano he mea hoʻokipa a mākou e ʻōwili ai i ka hui kaʻina hana.
Hoʻohui ʻia ka hui kaʻina me nā kaʻina hana paʻa, pono lākou e hoʻomaka
#> nifi pg-start -pgid 7f522a13-016e-1000-e504-d5b15587f2f3 -u http://nifi:8080
Nui, ua hoʻomaka nā mea hana. Eia naʻe, e like me nā kūlana o ka pilikia, pono mākou i nā manawa NiFi e hoʻouna i ka ʻikepili i nā manawa ʻē aʻe. E manaʻo mākou ua koho ʻia ke ʻano Push e hoʻoili i ka ʻikepili i ke kikowaena. I mea e hoʻonohonoho ai i ka hoʻoili ʻana i ka ʻikepili, pono ia e hiki ke hoʻololi i ka ʻikepili (Enable transmitting) ma ka Remote Process Group (RPG) i hoʻohui ʻia, i hoʻokomo ʻia i kā mākou kahe.
Ma ka palapala i loko o ka CLI a me nā kumu ʻē aʻe, ʻaʻole i loaʻa iaʻu kahi ala e hiki ai i ka hoʻoili ʻikepili. Inā ʻike ʻoe pehea e hana ai i kēia, e ʻoluʻolu e kākau i nā manaʻo.
No ka mea he bash kā mākou a ua mākaukau mākou e hele i ka hopena, e ʻike mākou i kahi ala i waho! Hiki iā ʻoe ke hoʻohana i ka NiFi API e hoʻoponopono i kēia pilikia. E hoʻohana i kēia ʻano hana, lawe mākou i ka ID mai nā hiʻohiʻona ma luna (i kā mākou hihia ʻo 7f522a13-016e-1000-e504-d5b15587f2f3). ʻO ka wehewehe ʻana i nā ʻano NiFi API
I ke kino, pono ʻoe e hele i JSON, o kēia ʻano:
{
"revision": {
"clientId": "value",
"version": 0,
"lastModifier": "value"
},
"state": "value",
"disconnectedNodeAcknowledged": true
}
ʻO nā ʻāpana pono e hoʻopiha ʻia i mea e "hana":
moku'āina — kūlana hoʻoili ʻikepili. Loaʻa ka TRANSMITTING e hiki ai i ka hoʻoili ʻikepili, STOPPED e hoʻopau
mana - mana hana
e paʻamau ka version i ka 0 i ka wā i hana ʻia ai, akā hiki ke loaʻa kēia mau ʻāpana me ka hoʻohana ʻana i ke ʻano
No ka poʻe makemake i ka bash scripts, kūpono paha kēia ʻano hana, akā paʻakikī iaʻu - ʻaʻole ʻo kaʻu mea punahele ka bash scripts. ʻO ke ala aʻe he mea hoihoi a maʻalahi hoʻi i koʻu manaʻo.
NiPyAPI
ʻO NiPyAPI kahi waihona Python no ka launa pū ʻana me nā manawa NiFi.
ʻO kā mākou palapala no ka ʻōwili ʻana i ka hoʻonohonoho he polokalamu Python. E neʻe kākou i ka coding.
Hoʻonohonoho i nā configs no ka hana hou aku. Pono mākou i kēia mau ʻāpana:
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, которое подтягиваем
E hoʻokomo hou wau i nā inoa o nā ʻano o kēia waihona, i wehewehe ʻia
Hoʻohui mākou i ke kākau inoa i ka hoʻohana ʻana i ka nifi
nipyapi.versioning.create_registry_client
Ma kēia ʻanuʻu, hiki iā ʻoe ke hoʻohui i kahi hōʻoia ua hoʻohui ʻia ke kākau inoa i ka laʻana, no kēia hiki iā ʻoe ke hoʻohana i ke ʻano.
nipyapi.versioning.list_registry_clients
Loaʻa iā mākou ka bākeke e ʻimi hou aku i ke kahe i loko o ka hīnaʻi
nipyapi.versioning.get_registry_bucket
Wahi a ka bākeke i loaʻa, ke ʻimi nei mākou i ke kahe
nipyapi.versioning.get_flow_in_bucket
A laila, pono e hoʻomaopopo inā ua hoʻohui ʻia kēia hui kaʻina. Hoʻonoho ʻia ka pūʻulu kaʻina hana e nā hoʻonohonoho a hiki ke kū mai kahi kūlana ke kau ʻia ka lua ma luna o kekahi. Ua nānā au, hiki iā 🙂 No ka loaʻa ʻana o ka hui kaʻina hana i hoʻohui ʻia, e hoʻohana i ke ʻano
nipyapi.canvas.list_all_process_groups
a laila hiki iā mākou ke ʻimi, no ka laʻana, ma ka inoa.
ʻAʻole wau e wehewehe i ke kaʻina hana o ka hoʻonui ʻana i ka template, e ʻōlelo wale wau inā hoʻohui ʻia nā mea hana i ka mana hou o ka template, a laila ʻaʻohe pilikia me ka hele ʻana o nā memo i nā queues. Akā inā hoʻoneʻe ʻia nā kaʻina hana, a laila hiki ke ala mai nā pilikia (ʻaʻole ʻae ʻo nifi i ka wehe ʻana o ka mea hana inā ua hōʻuluʻulu ʻia kahi laina leka i mua o ia). Inā makemake ʻoe i kaʻu hoʻoponopono ʻana i kēia pilikia - e kākau mai iaʻu, e ʻoluʻolu, e kūkākūkā mākou i kēia wahi. Nā pilina ma ka hope o ka ʻatikala. E neʻe kākou i ka ʻanuʻu o ka hoʻohui ʻana i kahi hui kaʻina hana.
I ka hoʻopau ʻana i ka palapala, ʻike wau i kahi hiʻohiʻona ʻaʻole huki mau ʻia ka mana hou o ka kahe, no laila ke paipai nei au iā ʻoe e wehewehe mua i kēia mana:
nipyapi.versioning.get_latest_flow_ver
Hoʻopili i ka hui kaʻina hana:
nipyapi.versioning.deploy_flow_version
Hoʻomaka mākou i nā mea hana:
nipyapi.canvas.schedule_process_group
Ma ka poloka e pili ana iā CLI, ua kākau ʻia ʻaʻole hiki ke hoʻololi ʻia ka hoʻoili ʻikepili i ka hui kaʻina mamao? I ka hoʻokō ʻana i ka palapala, ua loaʻa iaʻu kēia pilikia. I kēlā manawa, ʻaʻole hiki iaʻu ke hoʻomaka i ka hoʻololi ʻana i ka ʻikepili me ka hoʻohana ʻana i ka API a ua hoʻoholo wau e kākau i ka mea hoʻomohala o ka waihona NiPyAPI a noi i ka ʻōlelo aʻoaʻo / kōkua. Ua pane mai ka mea hoʻomohala iaʻu, ua kūkākūkā mākou i ka pilikia a kākau ʻo ia e pono ana ka manawa e "nānā i kekahi mea". A i kēia manawa, he mau lā ma hope mai, hiki mai kahi leka uila i kākau ʻia kahi hana Python e hoʻonā i kaʻu pilikia hoʻomaka !!! I kēlā manawa, ʻo 0.13.3 ka mana NiPyAPI a, ʻoiaʻiʻo, ʻaʻohe mea o ia ʻano. Akā i ka mana 0.14.0, i hoʻokuʻu ʻia i kēia manawa, ua hoʻokomo ʻia kēia hana i loko o ka waihona. Hui
nipyapi.canvas.set_remote_process_group_transmission
No laila, me ke kōkua o ka hale waihona puke NiPyAPI, ua hoʻopili mākou i ke kākau inoa, ʻōwili i ke kahe, a hoʻomaka pū i nā mea hana a me ka hoʻoili ʻikepili. A laila hiki iā ʻoe ke hoʻohui i ke code, hoʻohui i nā ʻano loiloi āpau, logging, a ʻo ia nō. Akā, he moʻolelo ʻokoʻa loa kēlā.
ʻO nā koho automation aʻu i noʻonoʻo ai, ʻoi aku ka maikaʻi o ka hope. ʻO ka mea mua, ʻo ia nō ka code python, kahi e hiki ai iā ʻoe ke hoʻokomo i ke code program kōkua a hoʻohana pono i ka ʻōlelo papahana. ʻO ka lua, ke ulu ikaika nei ka papahana NiPyAPI a inā pilikia nā pilikia hiki iā ʻoe ke kākau i ka mea hoʻomohala. ʻO ke kolu, ʻo NiPyAPI kahi mea hana maʻalahi no ka launa pū ʻana me NiFi i ka hoʻoponopono ʻana i nā pilikia paʻakikī. No ka laʻana, i ka hoʻoholo ʻana inā ʻaʻohe hakahaka nā queues memo i ke kahe a inā hiki ke hoʻonui i ka hui kaʻina.
ʻo ia wale nō. Ua wehewehe au i 3 mau ala e hoʻokaʻawale ai i ka hāʻawi ʻana i ka kahe ma NiFi, nā pitfalls e hālāwai ai ka mea hoʻomohala a hāʻawi i kahi code hana no ka lawe ʻana i ka lawe ʻana. Inā makemake ʻoe i kēia kumuhana e like me aʻu -
Source: www.habr.com