ã¿ãªãããããã«ã¡ã¯ïŒ
ã¿ã¹ã¯ã¯æ¬¡ã®ãšããã§ããäžã®å³ã«ç€ºããããŒããããããã N å°ã®ãµãŒããŒã«ããŒã«ã¢ãŠãããå¿
èŠããããŸãã
NiFi ãµã€ãé (S2S) ã¯ãNiFi ã€ã³ã¹ã¿ã³ã¹éã§ããŒã¿ã転éããå®å
šã§é«åºŠã«ã«ã¹ã¿ãã€ãºå¯èœãªæ¹æ³ã§ãã S2S ã®ä»çµã¿ã確èªãã
S2S ã䜿çšããããŒã¿è»¢éã«é¢ããŠã¯ãXNUMX ã€ã®ã€ã³ã¹ã¿ã³ã¹ã¯ã¯ã©ã€ã¢ã³ããšåŒã°ããXNUMX ã€ç®ã¯ãµãŒããŒãšåŒã°ããŸãã ã¯ã©ã€ã¢ã³ããããŒã¿ãéä¿¡ãããµãŒããŒããããåä¿¡ããŸãã ãããã®éã®ããŒã¿è»¢éãèšå®ããã«ã¯ XNUMX ã€ã®æ¹æ³ããããŸãã
- ããã·ã¥ã ããŒã¿ã¯ããªã¢ãŒã ããã»ã¹ ã°ã«ãŒã (RPG) ã䜿çšããŠã¯ã©ã€ã¢ã³ã ã€ã³ã¹ã¿ã³ã¹ããéä¿¡ãããŸãã ãµãŒã㌠ã€ã³ã¹ã¿ã³ã¹ã§ã¯ãå ¥åããŒãã䜿çšããŠããŒã¿ãåä¿¡ãããŸãã
- ãã«ã ãµãŒããŒã¯ RPG ã䜿çšããŠããŒã¿ãåä¿¡ããã¯ã©ã€ã¢ã³ãã¯åºåããŒãã䜿çšããŠéä¿¡ããŸãã
ããŒãªã³ã°ã®ãããŒã¯ Apache ã¬ãžã¹ããªã«ä¿åãããŸãã
Apache NiFi Registry ã¯ããã㌠ã¹ãã¬ãŒãžããã³ããŒãžã§ã³ç®¡çããŒã«ãæäŸãã Apache NiFi ã®ãµããããžã§ã¯ãã§ãã äžçš®ã®GITã ã¬ãžã¹ããªã®ã€ã³ã¹ããŒã«ãæ§æãæäœã«é¢ããæ
å ±ã¯ã次ã®å Žæã«ãããŸãã
éå§æã«ãN ãå°ããå ŽåããããŒã¯é©åãªæéå
ã«æåã§é
ä¿¡ããã³æŽæ°ãããŸãã
ããããN ã倧ãããªãã«ã€ããŠãããã«å€ãã®åé¡ãçºçããŸãã
- ãããŒãæŽæ°ããã«ã¯ããã«æéãããããŸãã ãã¹ãŠã®ãµãŒããŒã«ã¢ã¯ã»ã¹ããå¿ èŠããããŸã
- ãã³ãã¬ãŒãã®æŽæ°äžã«ãšã©ãŒãçºçããŸããã ããã§ã¯æŽæ°ãããŸããããããã§ã¯å¿ããããŠããŸãã
- åæ§ã®æäœãå€æ°å®è¡ããå Žåã®äººçãšã©ãŒ
ããããã¹ãŠã®ããšãããããã»ã¹ãèªååããå¿ èŠããããšããäºå®ãããããŸãã ãã®åé¡ã解決ããããã«æ¬¡ã®æ¹æ³ãè©ŠããŸããã
- NiFi ã®ä»£ããã« MiNiFi ã䜿çšãã
- NiFi CLI
- NiPyAPI
MiNiFiã®äœ¿çš
å¥ã®ãµããããžã§ã¯ãã§ãã MiNiFi C2 Server ã¯ããã®åé¡ã®è§£æ±ºã«åœ¹ç«ã¡ãŸãã ãã®è£œåã¯ãå±éã¢ãŒããã¯ãã£ã®äžå¿ãšãªãããšãç®çãšããŠããŸãã ç°å¢ã®æ§ææ¹æ³ - ã§èª¬æãããŠããŸãã
äžèšã®èšäºã§èª¬æãããŠãããªãã·ã§ã³ã¯æ©èœããŠãããå®è£ ã¯é£ãããããŸãããã次ã®ããšãå¿ããŠã¯ãªããŸããã
- minifi ã«ã¯ nifi ã®ããã»ããµãŒããã¹ãŠæèŒãããŠããããã§ã¯ãããŸãã
- Minifi ã® CPU ããŒãžã§ã³ã¯ãNiFi ã® CPU ããŒãžã§ã³ãããé ããŠããŸãã
ãã®èšäºã®å·çæç¹ã§ã® NiFi ã®ææ°ããŒãžã§ã³ã¯ 1.9.2 ã§ãã ææ°ã® MiNiFi ããŒãžã§ã³ã®ããã»ããµ ããŒãžã§ã³ã¯ 1.7.0 ã§ãã ããã»ããµãŒã MiNiFi ã«è¿œå ã§ããŸãããNiFi ããã»ããµãŒãš MiNiFi ããã»ããµãŒã®ããŒãžã§ã³ãç°ãªããããæ©èœããªãå¯èœæ§ããããŸãã
NiFi CLI
ã§å€æãã
ãŠãŒãã£ãªãã£ãå®è¡ãã
./bin/cli.sh
_ ___ _
Apache (_) .' ..](_) ,
_ .--. __ _| |_ __ )
[ `.-. | [ |'-| |-'[ | /
| | | | | | | | | | ' '
[___||__][___][___] [___]', ,'
`'
CLI v1.9.2
Type 'help' to see a list of available commands, use tab to auto-complete.
å¿ èŠãªãããŒãã¬ãžã¹ããªããããŒãããã«ã¯ããã¹ã±ããã®èå¥å (ãã±ããèå¥å) ãšãããŒèªäœ (ãããŒèå¥å) ãç¥ãå¿ èŠããããŸãã ãã®ããŒã¿ã¯ãcli ãŸã㯠NiFi ã¬ãžã¹ã㪠Web ã€ã³ã¿ãŒãã§ã€ã¹ãéããŠååŸã§ããŸãã Web ã€ã³ã¿ãŒãã§ãŒã¹ã¯æ¬¡ã®ããã«ãªããŸãã
CLI ã䜿çšããŠããããå®è¡ããŸãã
#> 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
ã¬ãžã¹ããªããããã»ã¹ ã°ã«ãŒãã®ã€ã³ããŒããå®è¡ããŸãã
#> 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
éèŠãªç¹ã¯ãããã»ã¹ ã°ã«ãŒããããŒã«ãããã¹ããšããŠä»»æã® nifi ã€ã³ã¹ã¿ã³ã¹ãæå®ã§ããããšã§ãã
åæ¢ããããã»ããµãå«ãããã»ã¹ ã°ã«ãŒããè¿œå ãããŸãããèµ·åããå¿ èŠããããŸãã
#> nifi pg-start -pgid 7f522a13-016e-1000-e504-d5b15587f2f3 -u http://nifi:8080
èŠäºãããã»ããµãèµ·åããŸããã ãã ããåé¡ã®ç¶æ³ã«ãã£ãŠã¯ãNiFi ã€ã³ã¹ã¿ã³ã¹ãä»ã®ã€ã³ã¹ã¿ã³ã¹ã«ããŒã¿ãéä¿¡ããå¿ èŠããããŸãã ããŒã¿ããµãŒããŒã«è»¢éããããã«ããã·ã¥æ¹åŒãéžæããããšä»®å®ããŸãã ããŒã¿è»¢éãæŽçããã«ã¯ãè¿œå ãããªã¢ãŒã ããã»ã¹ ã°ã«ãŒã (RPG) ã§ããŒã¿è»¢éãæå¹ã«ãã (éä¿¡ãæå¹ã«ãã) å¿ èŠããããŸããããã¯ããããŒã«ãã§ã«å«ãŸããŠããŸãã
CLI ããã®ä»ã®ãœãŒã¹ã®ããã¥ã¡ã³ãã§ã¯ãããŒã¿è»¢éãæå¹ã«ããæ¹æ³ãèŠã€ãããŸããã§ããã ãããè¡ãæ¹æ³ãç¥ã£ãŠããå Žåã¯ãã³ã¡ã³ãã«æžã蟌ãã§ãã ããã
ããã·ã¥ãããããæåŸãŸã§è¡ãæºåã¯ã§ããŠããã®ã§ã掻路ãèŠåºããŸãïŒ NiFi API ã䜿çšãããšããã®åé¡ã解決ã§ããŸãã 次ã®ã¡ãœããã䜿çšããŠãäžèšã®äŸãã ID ãååŸããŸã (ãã®å Žå㯠7f522a13-016e-1000-e504-d5b15587f2f3)ã NiFi API ã¡ãœããã®èª¬æ
æ¬æã§ã¯ã次ã®åœ¢åŒã® JSON ãæž¡ãå¿
èŠããããŸãã
{
"revision": {
"clientId": "value",
"version": 0,
"lastModifier": "value"
},
"state": "value",
"disconnectedNodeAcknowledged": true
}
ãæ©èœãããããã«å
¥åããå¿
èŠããããã©ã¡ãŒã¿:
ç¶æ
â ããŒã¿è»¢éã¹ããŒã¿ã¹ã ããŒã¿è»¢éãæå¹ã«ããå Žå㯠TRANSMITTING ã䜿çšã§ããç¡å¹ã«ããå Žå㯠STOPPED ã䜿çšã§ããŸãã
ããŒãžã§ã³ - ããã»ããµã®ããŒãžã§ã³
ããŒãžã§ã³ã¯äœææã«ããã©ã«ã㧠0 ã«èšå®ãããŸããããããã®ãã©ã¡ãŒã¿ã¯æ¬¡ã®ã¡ãœããã䜿çšããŠååŸã§ããŸãã
bash ã¹ã¯ãªããã®ãã¡ã³ã«ãšã£ãŠã¯ããã®æ¹æ³ãé©ããŠããããã«æãããããããŸããããç§ã«ãšã£ãŠã¯é£ããã§ããbash ã¹ã¯ãªããã¯ç§ã®å¥œã¿ã§ã¯ãããŸããã ç§ã®æèŠã§ã¯ã次ã®æ¹æ³ã®æ¹ãé¢çœããŠäŸ¿å©ã§ãã
NiPyAPI
NiPyAPI ã¯ãNiFi ã€ã³ã¹ã¿ã³ã¹ãšå¯Ÿè©±ããããã® Python ã©ã€ãã©ãªã§ãã
æ§æãããŒã«ã¢ãŠãããããã®ã¹ã¯ãªãã㯠Python ããã°ã©ã ã§ãã ã³ãŒãã£ã³ã°ã«é²ã¿ãŸãããã
ãããªãäœæ¥ã®ããã«æ§æãã»ããã¢ããããŸãã 次ã®ãã©ã¡ãŒã¿ãå¿
èŠã«ãªããŸãã
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, кПÑПÑПе пПЎÑÑгОваеЌ
ããã«ããã®ã©ã€ãã©ãªã®ã¡ãœããã®ååãæ¿å
¥ããŸãã
次ã䜿çšããŠã¬ãžã¹ããªã nifi ã€ã³ã¹ã¿ã³ã¹ã«æ¥ç¶ããŸãã
nipyapi.versioning.create_registry_client
ãã®ã¹ãããã§ã¯ãã¬ãžã¹ããªãæ¢ã«ã€ã³ã¹ã¿ã³ã¹ã«è¿œå ãããŠããããšã確èªãããã§ãã¯ãè¿œå ããããšãã§ããŸããããã«ã¯ã次ã®ã¡ãœããã䜿çšã§ããŸãã
nipyapi.versioning.list_registry_clients
ããã®äžã®æµããããã«æ¢çŽ¢ããããã®ãã±ãããèŠã€ããŸã
nipyapi.versioning.get_registry_bucket
èŠã€ãã£ããã±ããã«åŸã£ãŠãããŒãæ¢ããŸã
nipyapi.versioning.get_flow_in_bucket
次ã«ããã®ããã»ã¹ ã°ã«ãŒããæ¢ã«è¿œå ãããŠãããã©ãããç解ããããšãéèŠã§ãã ããã»ã¹ ã°ã«ãŒãã¯åº§æšã«ãã£ãŠé 眮ããããããããã»ã¹ ã°ã«ãŒãã®äžã« XNUMX çªç®ã®ããã»ã¹ãéãªãå Žåã«ç¶æ³ãçºçããå¯èœæ§ããããŸãã 確èªãããšãããããã¯å¯èœã§ã ð è¿œå ããããã¹ãŠã®ããã»ã¹ã°ã«ãŒããååŸããã«ã¯ãã¡ãœããã䜿çšããŸã
nipyapi.canvas.list_all_process_groups
次ã«ãããšãã°ååã§æ€çŽ¢ã§ããŸãã
ãã³ãã¬ãŒããæŽæ°ããããã»ã¹ã«ã€ããŠã¯èª¬æããŸãããæ°ããããŒãžã§ã³ã®ãã³ãã¬ãŒãã«ããã»ããµãè¿œå ãããå Žåããã¥ãŒå ã®ã¡ãã»ãŒãžã®ååšã«åé¡ããªãããšã ããè¿°ã¹ãŸãã ãã ããããã»ããµãåé€ãããšãåé¡ãçºçããå¯èœæ§ããããŸã (ããã»ããµã®åã«ã¡ãã»ãŒãž ãã¥ãŒãèç©ãããŠããå Žåãnifi ã§ã¯ããã»ããµã®åé€ãèš±å¯ãããŸãã)ã ãã®åé¡ãç§ãã©ã®ããã«è§£æ±ºãããã«èå³ãããå Žåã¯ããã®ç¹ã«ã€ããŠè©±ãåããŸãã®ã§ãç§ãŸã§ã¡ãŒã«ããã ããã é£çµ¡å ã¯èšäºã®æåŸã«ãããŸãã ããã»ã¹ ã°ã«ãŒããè¿œå ããæé ã«é²ã¿ãŸãã
ã¹ã¯ãªããããããã°ããŠãããšãã«ããããŒã®ææ°ããŒãžã§ã³ãåžžã«ååŸãããããã§ã¯ãªããšããç¹åŸŽã«ééãããããæåã«ãã®ããŒãžã§ã³ãæ確ã«ããããšããå§ãããŸãã
nipyapi.versioning.get_latest_flow_ver
ãããã€ããã»ã¹ã°ã«ãŒã:
nipyapi.versioning.deploy_flow_version
ããã»ããµãèµ·åããŸãã
nipyapi.canvas.schedule_process_group
CLI ã«é¢ãããããã¯ã§ããªã¢ãŒã ããã»ã¹ ã°ã«ãŒãã§ã¯ããŒã¿è»¢éãèªåçã«æå¹ã«ãªããªããšæžãããŠããŸããã ã¹ã¯ãªãããå®è£ ãããšãã«ãç§ããã®åé¡ã«ééããŸããã åœæãAPI ã䜿çšããŠããŒã¿è»¢éãéå§ã§ããªãã£ããããNiPyAPI ã©ã€ãã©ãªã®éçºè ã«æçŽãæžããŠã¢ããã€ã¹/å©ããæ±ããããšã«ããŸããã éçºè ãç§ã«è¿çããç§ãã¡ã¯åé¡ã«ã€ããŠè©±ãåã£ããšããããäœãã確èªãããæéãå¿ èŠã ãšæžããŠããŸããã ãããŠæ°æ¥åŸãç§ã®èµ·åæã®åé¡ã解決ãã Python é¢æ°ãæžãããé»åã¡ãŒã«ãå±ããŸããã åœæã® NiPyAPI ã®ããŒãžã§ã³ã¯ 0.13.3 ã§ãåœç¶ãªãããã®ãããªãã®ã¯äœããããŸããã§ããã ããããããæè¿ãªãªãŒã¹ãããããŒãžã§ã³ 0.14.0 ã§ã¯ããã®æ©èœã¯ãã§ã«ã©ã€ãã©ãªã«å«ãŸããŠããŸãã äŒã
nipyapi.canvas.set_remote_process_group_transmission
ããã§ãNiPyAPI ã©ã€ãã©ãªã®å©ããåããŠãã¬ãžã¹ããªã«æ¥ç¶ãããããŒãããŒã«ã¢ããããããã»ããµãšããŒã¿è»¢éãéå§ããŸããã 次ã«ãã³ãŒãã粟æ»ããããããçš®é¡ã®ãã§ãã¯ãè¿œå ãããã°ãèšé²ããã ãã§ãã ããããããã¯å šãå¥ã®è©±ã§ãã
ç§ãæ€èšããèªååãªãã·ã§ã³ã®äžã§ãåŸè ãæãå¹ççã§ããããã«æããŸããã ãŸããããã¯äŸç¶ãšã㊠Python ã³ãŒãã§ãããè£å©ããã°ã©ã ã³ãŒããåã蟌ãã§ããã°ã©ãã³ã°èšèªã®å©ç¹ããã¹ãŠäº«åã§ããŸãã 次ã«ãNiPyAPI ãããžã§ã¯ãã¯ç©æ¥µçã«éçºãããŠãããåé¡ãçºçããå Žåã¯éçºè ã«åãåãããããšãã§ããŸãã 第äžã«ãNiPyAPI ã¯ãè€éãªåé¡ã解決ããéã« NiFi ãšå¯Ÿè©±ããããã®ããæè»ãªããŒã«ã§ãã ããšãã°ããããŒå ã®ã¡ãã»ãŒãž ãã¥ãŒãçŸåšç©ºãã©ãããããã³ããã»ã¹ ã°ã«ãŒããæŽæ°ã§ãããã©ãããå€æããŸãã
ããã ãã§ãã NiFi ã§ã®ãããŒé
ä¿¡ãèªååããããã® 3 ã€ã®ã¢ãããŒããšãéçºè
ãééããå¯èœæ§ã®ããèœãšãç©Žã«ã€ããŠèª¬æããé
ä¿¡ãèªååããããã®å®çšçãªã³ãŒããæäŸããŸããã ããããªããç§ãšåãããã«ãã®ãããã¯ã«èå³ããããªã -
åºæïŒ habr.com