Kaabo gbogbo eniyan!
Iṣẹ naa jẹ bi atẹle - ṣiṣan wa, ti a gbekalẹ ni aworan loke, eyiti o nilo lati yiyi si awọn olupin N pẹlu
Aaye NiFi si Aye (S2S) jẹ aabo, ọna atunto irọrun lati gbe data laarin awọn iṣẹlẹ NiFi. Bawo ni S2S ṣiṣẹ, wo
Ni awọn ọran nibiti a ti n sọrọ nipa gbigbe data nipa lilo S2S, apẹẹrẹ kan ni a pe ni alabara, olupin keji. Onibara firanṣẹ data, olupin naa gba. Awọn ọna meji lati tunto gbigbe data laarin wọn:
- Ti. Lati apẹẹrẹ alabara, a firanṣẹ data nipa lilo Ẹgbẹ Ilana Latọna jijin (RPG). Lori apẹẹrẹ olupin, data gba ni lilo Port Input
- Fa. Olupin naa gba data nipa lilo RPG, alabara firanṣẹ ni lilo ibudo Ijade.
Sisan fun yiyi jade ti wa ni ipamọ ni Iforukọsilẹ Apache.
Iforukọsilẹ Apache NiFi jẹ iṣẹ akanṣe ti Apache NiFi ti o pese ohun elo kan fun ibi ipamọ sisan ati iṣakoso ẹya. Iru GIT. Alaye nipa fifi sori ẹrọ, tunto ati ṣiṣẹ pẹlu iforukọsilẹ ni a le rii ni
Ni ibẹrẹ, nigbati N jẹ nọmba kekere, sisan ti wa ni jiṣẹ ati imudojuiwọn pẹlu ọwọ ni akoko itẹwọgba.
Ṣugbọn bi N ṣe n dagba, awọn iṣoro naa di pupọ:
- o gba akoko diẹ sii lati ṣe imudojuiwọn ṣiṣan naa. O nilo lati wọle si gbogbo awọn olupin
- Awọn aṣiṣe imudojuiwọn awoṣe waye. Nibi ti won imudojuiwọn o, sugbon nibi ti won gbagbe
- awọn aṣiṣe eniyan nigba ṣiṣe nọmba nla ti awọn iṣẹ ṣiṣe kanna
Gbogbo eyi mu wa si otitọ pe a nilo lati ṣe adaṣe ilana naa. Mo gbiyanju awọn ọna wọnyi lati yanju iṣoro yii:
- Lo MiNiFi dipo NiFi
- NiFi CLI
- NiPyAPI
Lilo MiNiFi
Koko-ọrọ miiran yoo ṣe iranlọwọ lati yanju iṣoro yii - MiNiFi C2 Server. Ọja yii ni ipinnu lati jẹ aaye aringbungbun ni faaji yiyọjade iṣeto ni. Bii o ṣe le tunto agbegbe - ti a ṣalaye ninu
Aṣayan ti a ṣalaye ninu nkan ti o wa loke n ṣiṣẹ ati pe ko nira lati ṣe, ṣugbọn a ko gbọdọ gbagbe atẹle naa:
- Minifi ko ni gbogbo awọn ero isise lati nifi
- Minifi isise awọn ẹya aisun sile NiFi isise awọn ẹya.
Ni akoko kikọ, ẹya tuntun ti NiFi jẹ 1.9.2. Ẹya ero isise MiNiFi tuntun jẹ 1.7.0. Awọn ero isise le ṣe afikun si MiNiFi, ṣugbọn nitori awọn aiṣedeede ẹya laarin NiFi ati awọn ilana MiNiFi, eyi le ma ṣiṣẹ.
NiFi CLI
Idajọ nipasẹ
Lọlẹ awọn IwUlO
./bin/cli.sh
_ ___ _
Apache (_) .' ..](_) ,
_ .--. __ _| |_ __ )
[ `.-. | [ |'-| |-'[ | /
| | | | | | | | | | ' '
[___||__][___][___] [___]', ,'
`'
CLI v1.9.2
Type 'help' to see a list of available commands, use tab to auto-complete.
Ni ibere fun wa lati fifuye sisan ti a beere lati iforukọsilẹ, a nilo lati mọ awọn idamọ ti garawa (idamo garawa) ati sisan funrararẹ (idamo sisan). O le gba data yii boya nipasẹ cli tabi ni wiwo oju opo wẹẹbu iforukọsilẹ NiFi. Ni wiwo oju opo wẹẹbu o dabi eyi:
Lilo CLI eyi ni a ṣe:
#> 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
A bẹrẹ gbigbe wọle ẹgbẹ ilana lati iforukọsilẹ:
#> 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
Koko pataki kan ni pe eyikeyi apẹẹrẹ nifi le jẹ asọye bi agbalejo eyiti a yipo ẹgbẹ ilana naa.
Ẹgbẹ ilana ti a ṣafikun pẹlu awọn ilana ti o da duro, wọn nilo lati bẹrẹ
#> nifi pg-start -pgid 7f522a13-016e-1000-e504-d5b15587f2f3 -u http://nifi:8080
O dara, awọn olupilẹṣẹ ti bẹrẹ. Sibẹsibẹ, ni ibamu si awọn ofin iṣẹ-ṣiṣe, a nilo awọn iṣẹlẹ NiFi lati fi data ranṣẹ si awọn iṣẹlẹ miiran. Jẹ ki a ro pe o ti yan ọna Titari lati gbe data lọ si olupin naa. Lati ṣeto gbigbe data, o nilo lati mu gbigbe data ṣiṣẹ lori Ẹgbẹ Ilana Latọna jijin ti a ṣafikun (RPG), eyiti o wa tẹlẹ ninu ṣiṣan wa.
Ninu iwe ti o wa ninu CLI ati awọn orisun miiran, Emi ko wa ọna lati mu gbigbe data ṣiṣẹ. Ti o ba mọ bi o ṣe le ṣe eyi, jọwọ kọ sinu awọn asọye.
Niwon a ni bash ati pe a ti ṣetan lati lọ si opin, a yoo wa ọna kan jade! O le lo NiFi API lati yanju iṣoro yii. Jẹ ki a lo ọna atẹle, mu ID lati awọn apẹẹrẹ loke (ninu ọran wa o jẹ 7f522a13-016e-1000-e504-d5b15587f2f3). Apejuwe awọn ọna NiFi API
Ninu ara o nilo lati kọja JSON, bii eyi:
{
"revision": {
"clientId": "value",
"version": 0,
"lastModifier": "value"
},
"state": "value",
"disconnectedNodeAcknowledged": true
}
Awọn paramita ti o nilo lati kun fun lati ṣiṣẹ:
ipinle - data gbigbe ipo. Wa: Gbigbe lati mu ki gbigbe data ṣiṣẹ, STOPED lati mu ṣiṣẹ
version - isise version
Ẹya yoo jẹ aiyipada si 0 nigbati o ṣẹda, ṣugbọn awọn paramita wọnyi le ṣee gba nipa lilo ọna naa
Fun awọn onijakidijagan ti awọn iwe afọwọkọ bash, ọna yii le dabi pe o dara, ṣugbọn o nira diẹ fun mi - awọn iwe afọwọkọ bash kii ṣe ayanfẹ mi. Ọna ti o tẹle jẹ diẹ ti o nifẹ ati irọrun ni ero mi.
NiPyAPI
NiPyAPI jẹ ile-ikawe Python fun ibaraṣepọ pẹlu awọn iṣẹlẹ NiFi.
Iwe afọwọkọ wa fun yiyi iṣeto ni eto ni Python. Jẹ ki a lọ siwaju si ifaminsi.
A ṣeto awọn atunto fun iṣẹ siwaju. A yoo nilo awọn paramita wọnyi:
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, которое подтягиваем
Nigbamii Emi yoo fi awọn orukọ ti awọn ọna ti ile-ikawe yii sii, eyiti a ṣalaye
So iforukọsilẹ pọ si apẹẹrẹ nifi nipa lilo
nipyapi.versioning.create_registry_client
Ni igbesẹ yii, o tun le ṣafikun ṣayẹwo pe a ti ṣafikun iforukọsilẹ si apẹẹrẹ fun eyi o le lo ọna naa
nipyapi.versioning.list_registry_clients
A ri garawa fun wiwa siwaju fun sisan ninu agbọn
nipyapi.versioning.get_registry_bucket
Lilo garawa ri, a wa fun sisan
nipyapi.versioning.get_flow_in_bucket
Nigbamii ti, o ṣe pataki lati ni oye boya ẹgbẹ ilana yii ti ni afikun tẹlẹ. Ẹgbẹ ilana naa ni a gbe ni ibamu si awọn ipoidojuko ati pe ipo kan le dide nigbati paati keji ba wa lori oke ọkan. Mo ṣayẹwo, eyi le ṣẹlẹ :) Lati gba gbogbo awọn ẹgbẹ ilana ti a fi kun a lo ọna naa
nipyapi.canvas.list_all_process_groups
A le wa siwaju sii, fun apẹẹrẹ, nipasẹ orukọ.
Emi kii yoo ṣe apejuwe ilana ti imudojuiwọn awoṣe, Emi yoo sọ pe ti awọn ilana ba ṣafikun ni ẹya tuntun ti awoṣe, lẹhinna ko si awọn iṣoro pẹlu wiwa awọn ifiranṣẹ ninu awọn ila. Ṣugbọn ti awọn ilana ba yọkuro, lẹhinna awọn iṣoro le dide (nifi ko gba ọ laaye lati yọ ero isise kan kuro ti isinyi ifiranṣẹ ba ti ṣajọpọ ni iwaju rẹ). Ti o ba nifẹ si bawo ni MO ṣe yanju iṣoro yii, jọwọ kọ si mi ati pe a yoo jiroro lori ọran yii. Awọn olubasọrọ ni opin nkan naa. Jẹ ki a lọ si igbesẹ ti fifi ẹgbẹ ilana kan kun.
Nigbati o n ṣatunṣe iwe afọwọkọ naa, Mo wa iyatọ kan pe ẹya tuntun ti ṣiṣan ko nigbagbogbo fa soke, nitorinaa Mo ṣeduro iṣayẹwo ẹya yii ni akọkọ:
nipyapi.versioning.get_latest_flow_ver
Mu ẹgbẹ ilana ṣiṣẹ:
nipyapi.versioning.deploy_flow_version
A bẹrẹ awọn isise:
nipyapi.canvas.schedule_process_group
Ninu bulọki nipa CLI o ti kọ pe gbigbe data ko ṣiṣẹ laifọwọyi ni ẹgbẹ ilana isakoṣo latọna jijin? Nigbati imuse iwe afọwọkọ, Mo tun pade iṣoro yii. Ni akoko yẹn, Emi ko le bẹrẹ gbigbe data nipa lilo API ati pe Mo pinnu lati kọwe si oluṣe idagbasoke ile-ikawe NiPyAPI ati beere fun imọran / iranlọwọ. Olùgbéejáde naa dahun si mi, a jiroro iṣoro naa ati pe o kọwe pe o nilo akoko lati "ṣayẹwo nkan". Ati lẹhinna, awọn ọjọ meji lẹhinna, lẹta kan de ninu eyiti a kọ iṣẹ kan ni Python ti o yanju iṣoro ifilọlẹ mi !!! Ni akoko yẹn, ẹya NiPyAPI jẹ 0.13.3 ati, dajudaju, ko si nkankan bi iyẹn. Ṣugbọn ni ẹya 0.14.0, eyiti o ti tu silẹ laipẹ, iṣẹ yii ti wa tẹlẹ ninu ile-ikawe naa. Pade,
nipyapi.canvas.set_remote_process_group_transmission
Nitorinaa, ni lilo ile-ikawe NiPyAPI, a so iforukọsilẹ pọ, yiyi ṣiṣan jade, ati paapaa bẹrẹ awọn iṣelọpọ ati gbigbe data. Lẹhinna o le fọ koodu naa, ṣafikun gbogbo iru awọn sọwedowo, gedu, ati pe gbogbo rẹ ni. Ṣugbọn iyẹn jẹ itan ti o yatọ patapata.
Ninu awọn aṣayan adaṣe ti Mo gbero, eyi ti o kẹhin dabi ẹni pe o munadoko julọ si mi. Ni akọkọ, eyi tun jẹ koodu Python, sinu eyiti o le fi sabe koodu eto iranlọwọ ati lo anfani gbogbo awọn anfani ti ede siseto. Ni ẹẹkeji, iṣẹ akanṣe NiPyAPI n dagbasoke ni itara ati ni ọran awọn iṣoro o le kọ si olupilẹṣẹ. Ni ẹkẹta, NiPyAPI tun jẹ ohun elo to rọ diẹ sii fun ibaraṣepọ pẹlu NiFi ni yiyanju awọn iṣoro idiju. Fun apẹẹrẹ, ni ṣiṣe ipinnu boya awọn ila ifiranṣẹ ti ṣofo ni bayi ati boya ẹgbẹ ilana le ṣe imudojuiwọn.
Gbogbo ẹ niyẹn. Mo ṣe apejuwe awọn ọna 3 si adaṣe adaṣe adaṣe ni NiFi, awọn ọfin ti olupilẹṣẹ le ba pade, ati pese koodu iṣẹ fun adaṣe adaṣe. Ti o ba nifẹ si koko-ọrọ yii bii Emi -
orisun: www.habr.com