ααααΆααα½αααα»ααααααααααααΆ!
ααΆααα·α
αα
ααΆαααΌα
ααΆαααααα - ααΆαααα αΌαααααααα αΆααααα»αααΌαααΆαααΆαααΎ αααα
αΆαααΆα
αααααΌααααααΌααα
ααΆαα N servers ααΆαα½α
NiFi Site to Site (S2S) ααΊααΆαα·ααΈαα»ααααα·ααΆα αα·αα’αΆα
ααααΌαααΆαααααααΆαααααααααα»αααΆαααααααα·αααααααααΆα NiFi instancesα ααΎαααααααα S2S ααααΎαααΆα
αα ααααα·ααΆαα’αααΈααΆαααααααα·αααααααααααααΎ S2S ααααα»αα½αααααΌαααΆαααα α ααΆαααΆαααΈααααααααΈααΈαααΊαααΆαααΈαααα αααΆαααΈααααααααααΎαα·αααααα αααΆαααΈαααααα½αααΆα αα·ααΈααΈααααΆαααΎααααΈαααα αααΆαααααααα·αααααααααΆααα½αααα
- αα»α. αα·ααααααβααααΌαβααΆαβααααΎβααΈβαααααα·ααΈβα’αα·αα·ααβαααβααααΎβαααα»αβααααΎαααΆαβααΈβα ααααΆα (RPG)α αα ααΎαααΆαααΈααα αα·ααααααααααΌαααΆαααα½ααααααααΎα ααααααα αΌα
- ααΆα. αααΆαααΈαααααα½ααα·αααααααααααααΎ RPG αααΆαααΈααααααααααΎαααααααΎα ααααα·αααααα
ααα αΌααααααΆααααΆαααααααααΌαααΆααααααΆαα»ααα
αααα»α Apache Registry α
Apache NiFi Registry ααΊααΆαααααααααααα Apache NiFi ααααααααααΌαα§ααααααααα»αααα αΌα αα·αααααααααααα αααααααα GIT α ααααααΆαα’αααΈααΆαααα‘αΎα ααααααα
ααΆαααααααα αα·αααααΎααΆαααΆαα½ααααααΈαααααα’αΆα
ααααΆααα
αααα»α
αα
αααα
αΆααααααΎα αα
αααααα N ααΆα
ααα½αααΌα
ααα αΌαααααΌαααΆααααααΌα αα·αααααΎαα
αα
α»ααααααααΆαααααααααα»ααααααααΆαααααααα½αα
ααα»αααααα αααααα N ααΌαααΆααααΆααααα αΆααΆααααα αααΎα:
- ααΆααααΌαααΆααααααααΆαααααααααααΎααααΈααααΎαα αα α»ααααααααΆαααα αΌαα α’αααααααΌαα αΌααα ααΆαααααΆαααΈαααααΆααα’ααα
- ααΆαααα α»ααααα»αααΆαααααΎαα αα α»ααααααααΆαααααΌα αα ααΈααααα½αααααΆαααααΎαα αα α»ααααααααΆα ααα»αααααα ααΈααααα½αααααααα
- ααα α»αααααααα»ααααα αααα’αα»ααααααααα·ααααα·ααΆαααααααααααΆαα½αα ααα½ααα
ααΆααα’αααααααΆαααΎααα ααααΆααα·ααααααΆααΆα αΆαααΆα αααΎααααΈααααΎα±ααααααΎαααΆααααααααααααααααα·α αααα»αααΆαααΆααααααα·ααΈααΆααααααααΎααααΈαααααααΆααααα αΆαααα
- ααααΎ MiNiFi αααα½αα±αα NiFi
- NiFi CLI
- NiPyAPI
ααΆαααααΎααααΆαα MiNiFi
αααααααααα½ααααααΊ MiNiFi C2 Server ααΉααα½ααααααααΆααααα αΆαααα ααα·ααααααααΆαααααααααΎααΆα
ααα»α
αααααΆααα
αααα»αααααΆααααααααααααΆαααΆαααααααΆαα ααααααααααα
ααΆααααααααααα·ααααΆα - αα·αααααΆαα
αααα»α
αααααΎααααααΆααα·αααααΆαα αααα»αα’αααααααΆαααΎααΊααααΎαααΆαα αΎααα·ααα·ααΆααααα»αααΆαα’αα»αααααα ααα»ααααααΎααα·αααααΌαααααα ααΌα ααΆαααααααααααα
- minifi αα·αααΆα processors ααΆααα’ααααΈ nifi ααα
- αααααααΈααΈααΌαα αααα»α Minifi ααΊαααΆααααα CPU αα αααα»α NiFi α
αα αααααααα ααααα α»αααααααααα 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 α α ααα»α αααααΆααααα αααααααΎααα ααΌα αααα
αααααααΎ 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 instances ααΎααααΈαααααΌααα·αααααααα ααΆαα instance ααααααααα α αΌααααααααΆαα·ααΈααΆααααα Push ααααΌαααΆαααααΎαααΎαααΎααααΈααααααα·αααααααα αααΆαααΈαααα ααΎααααΈαααα αααΆαααααααα·αααααα ααΆα αΆαααΆα ααααα»αααΆαααΎαααΆαααααααα·αααααα (ααΎαααααΎαααΆααααααΌα) αα ααΎ Remote Process Group (RPG) αααααΆααααααααααααααΌαααΆααααα αΌααααα»αααα αΌαααααααΎααα½α α αΎαα
αα
αααα»αα―αααΆααα
αααα»α CLI αα·αααααααααααααα αααα»ααα·αααΆαααααΎααα·ααΈααΎααααΈααΎαααΆαααααααα·ααααααααα ααααα·αααΎα’αααααΉαααΈααααααααΎααΆααΌαααααααα
αααα»αααα·αααααα
αααααΆαααΎαααΆα bash α αΎαααΎαααααααααα½αααΎααααΈαα
ααΈαααα
αα ααΎαααΉαααααααΌαα
αα! α’αααα’αΆα
ααααΎ NiFi API ααΎααααΈαααααααΆααααα αΆαααα α
αΌαααααΎαα·ααΈααΆαααααααΆαααααα ααΎαααααααααααΆααααΈα§ααΆα αααααΆαααΎ (αααα»αααααΈααααααΎαααΆααΊ 7f522a13-016e-1000-e504-d5b15587f2f3)α ααΆααα·αααααΆα’αααΈ NiFi API Methods
αα
αααα»ααα½ α’αααααααΌαααααααΆαα JSON ααααααααααΆααααααα
{
"revision": {
"clientId": "value",
"version": 0,
"lastModifier": "value"
},
"state": "value",
"disconnectedNodeAcknowledged": true
}
αααΆαααΆαααααααααααααΌααααααααααΎααααΈ "ααααΎααΆα"α
αααα - ααααΆαααΆαααααααα·ααααααα ααΆα TRANSMITTING ααΎααααΈααΎαααΆαααααααα·αααααα STOPPED ααΎααααΈαα·α
αααα - ααααααααααααααααΎαααΆα
ααααααΉαααααΆαααΎααα 0 αα ααααααααΎα ααα»αααααααΆαααΆααααααααΆαααααα’αΆα ααα½αααΆααααααααΎαα·ααΈααΆααααα
αααααΆααα’αααα
αΌαα
α·αααααααααΈα bash αα·ααΈααΆααααααααα αΆααααΌα
ααΆαααααα ααα»ααααααΆαα·ααΆααααααΆαααααα»α - ααααααΈα bash αα·ααααααΆαααααααααααααα»αααα αα·ααΈαααααΆααααΊαα½αα±ααα
αΆααα’αΆαααααααα·αααΆααααα½αααΆααα
αααα»ααααα·ααααααααα»αα
NiPyAPI
NiPyAPI ααΊααΆαααααΆααα Python αααααΆααααααΎα’ααααααααααΆαα½αααααα» NiFi α
ααααααΈαααααααΎααααααΆααααΆααα
ααααΆαααααααα
ααΆααααααααααΊααΆαααααα·ααΈ 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
αααααΆααααααα ααΆα αΆαααΆα ααααα»αααΆαααααααααααΆααΎαααα»αααααΎαααΆααααααααΌαααΆααααααααα½α α αΎαα¬α’ααα αααα»αααααΎαααΆαααααΌαααΆαααΆαααααααΌα’ααααα α αΎαααααΆαααΆαα’αΆα ααΎαα‘αΎααα ααααααααΈααΈαααααΌαααΆαααΆααααΈααΎα αααα»αααΆααα·αα·ααα ααΆα’αΆα ααΆ π ααΎααααΈααα½αααΆααααα»αααααΎαααΆαααααααααΆααα’αα ααΌαααααΎαα·ααΈααΆααααα
nipyapi.canvas.list_all_process_groups
α αΎααααααΆααααααΎαα’αΆα αααααααα§ααΆα αααααΆααααααα
αααα»αααΉααα·ααααααΆααα’αααΈααααΎαααΆαααααΆαα’αΆαααααααααΌαα αααα»αααΉααα·ααΆαααααΆααααα·αααΎ processors ααααΌαααΆααααααααα αααα»αααααααααΈαα template αααααΆαα·αααΆααααα αΆααΆαα½αααΉαααααααΆαααΆααα αααα»ααα½ααααααα ααα»ααααααααα·αααΎ processors ααααΌαααΆαααα αα ααααααα αΆα’αΆα ααΉαααΎαα‘αΎα (nifi αα·αα’αα»ααααΆαα±αααα processor α αααα ααααα·αααΎαα½αααΆαααΆααααααΌααααα»ααα ααΈαα»αααΆ)α ααααα·αααΎα’αααα αΆααα’αΆααααααααΈααααααααααα»αααΆααααααααΆααααα αΆααα - ααΌαααααααααααα»α ααΎαααΉααα·ααΆααααΆα ααα»α αααα ααααΆαααααααα α α»ααααα ααααα’αααααα α αΌααααααα ααα αΆαααααΆααααααααααα»αααααΎαααΆαα
αα αααααααα α»αααααααΈα αααα»αααΆααα½ααααααααα·ααααα½ααααααααα α»αααααααααα»αααααα αΌααα·ααααααααααΌαααΆαααΆαα‘αΎα ααΌα αααααααα»αααααΆαα’αααα±αααααααΆαααααααααααΆαα»ααα·αα
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 αααα»αααΆααααααααΆααααα αΆαααα»αααααΆαα α§ααΆα ααα αααα»αααΆααααααααΆααΎαα½αααΆααα αα α»ααααααααααα αααα»αααα αΌα αα·αααΆααΎααΆα’αΆα αα αα½α ααΎααααΈααααΎαα αα α»ααααααααΆααααα»αααααΎαααΆααααα¬αα
α’ααα αΎαα αααα»αααΆααα·αααααΆα’αααΈαα·ααΈααΆαααααα
ααα½α 3 αααα»αααΆααααααααα αΌααααααααααααααααα·αα
αααα»α NiFi αααααΆαααα αΆαααα’αααα’αα·ααααααα’αΆα
αα½αααααα αα·αααααααααααΌαααααΎααΆααααααΆααααΆαααΉααααααΌααααααααααααααααα·α ααααα·αααΎα’αααα
αΆααα’αΆααααααααΎαααααΆααααααααΌα
αααα»α -
ααααα: www.habr.com