SlideShare a Scribd company logo
1 of 11
Download to read offline
Introduction	to	NiFi	Registry
Bryan	Bende	&	Kevin	Doran
April	17th 2018
2 ©	Hortonworks	Inc.	2011	– 2018.	All	Rights	Reserved
Background
à Most	frequently	asked	question…
– How	do	I	deploy	my	flow?
à In	theory….
– Avoid	long	turn	around	time	of	deployments
– Quickly	modify	dataflow	via	NiFi	UI
à In	reality…
– Classic	development	lifecycle	(dev	->	int	->	prod)
– Promote	changes	after	successful	testing
– Hands-off	UI	in	production
3 ©	Hortonworks	Inc.	2011	– 2018.	All	Rights	Reserved
Previous	Deployment	Approaches
à Copy	flow.xml.gz	between	environments
– Requires	copying	entire	data	flow	for	any	change
– Can’t	tell	what	changed,	hard	to	diff	if	you	put	in	version	control
– Requires	all	environments	use	the	same	encryption	key	for	sensitive	properties
à Make	templates	of	process	groups
– Script	creation	of	template	and	deployment	to	next	environment
– Requires	stopping	flow	and	removing	components,	then	re-instantiating	template
– No	easy	way	to	see	changes,	hard	to	rollback
4 ©	Hortonworks	Inc.	2011	– 2018.	All	Rights	Reserved
Previous	Variable	Handling
à Need	to	parametrize	values	in	the	flow	per	environment
– Connection	strings,	URLs,	File	System	paths,	etc.
à Can	set	variables	in	bootstrap.conf
– -Dmy.var=foo
à Can	set	a	properties	file	in	nifi.properties
– nifi.variable.registry.properties=production.properties
à Both	require	command	line	access
à Both	require	restart	of	entire	NiFi	instance	to	pick	up	changes
5 ©	Hortonworks	Inc.	2011	– 2018.	All	Rights	Reserved
Enter	NiFi	Registry
à NiFi	Registry	- sub-project	of	Apache	NiFi
– https://github.com/apache/nifi-registry
– https://issues.apache.org/jira/projects/NIFIREG
à Complimentary	application,	central	location	for	
storage/management	of	“versioned”	resources
à Initial	capability	to	store	and	retrieve	“versioned	
flows”
à Integration	on	NiFi	side
– Start/Stop	version	control	of	a	process	group
– Change	version	(upgrade/downgrade)
– Import	new	process	group	from	a	version
6 ©	Hortonworks	Inc.	2011	– 2018.	All	Rights	Reserved
Enter	Variable	Registry
à Parameterize	configuration	like	connection	
strings,	file	paths,	etc.
à Referenced	via	Expression	language
– Kafka Brokers = ${kafka.brokers}
à Variables	associated	with	a	process	group
à Right-click	on	canvas	to	view	variables	for	
current	process	group
à Hierarchical	order	of	precedence,	resolve	
closest	reference	to	component
à Editing	variables	automatically	restarts	
any	components	referencing	the	variables!
Level	1
Level	2
Vars
Vars
7 ©	Hortonworks	Inc.	2011	– 2018.	All	Rights	Reserved
NiFi	Registry	Terminology
à Buckets
– Logical	place	to	store	versioned	items/resources
– Permissions	assigned	at	bucket	level	
• READ	- Retrieve	any	item	from	the	bucket
• WRITE	– Create	new	items	in	the	bucket
à Versioned	Flows
– Currently	the	only	type	of	item
– Each	versioned	flow	has	name,	description,	and	1	or	more	“snapshots”
à Versioned	Flow	Snapshot
– Each	snapshot	has	metadata	and	contents
– Metadata	contains	a	one-up	version	#,	commit	message,	author,		&	create	date
– Content	contains	a	Versioned	Process	Group	i.e.	snapshot	of	PG	from	NiFi
8 ©	Hortonworks	Inc.	2011	– 2018.	All	Rights	Reserved
Architecture
à Metadata	Database
– Metadata	for	each	bucket
– Knowledge	of	which	items	are	in	each	bucket
– Metadata	for	each	versions	of	an	item
– Currently	uses	embedded	H2	DB
à Flow	Persistence	Provider
– Stores/retrieves	serialized	bytes	of	a	versioned	flow
– Pluggable	extension	point
– Provided	implementation	uses	local	file	system
– NIFIREG-162	Git-based	implementation
• https://github.com/apache/nifi-registry/pull/112
Client	UI	(Angular)
Server (Spring	Boot)
REST	API	(Jersey)
Service	Layer (Spring,	Java)
Metadata	Database
Flow	Persistence	
Provider
H2 File	System
=	Extension	Point
9 ©	Hortonworks	Inc.	2011	– 2018.	All	Rights	Reserved
StagingDev
Deployment	Scenario	1	– Shared	Registry	with	Multiple	NiFi’s
NiFi	Registry
NiFi NiFi
Production
NiFi
1.	Start	version	
control	and	save
new	versions
2.	Import	flow	
from	Dev	and
Perform	testing
3.	Import	flow	
that	passed	tests	
in	staging
LDAP
10 ©	Hortonworks	Inc.	2011	– 2018.	All	Rights	Reserved
Deployment	Scenario	2	– Separate	Environments
StagingDev
NiFi	Registry
NiFi NiFi
Production
NiFi
1.	Start	version	
control	and	save
new	versions
3.	Import	flow	
version	& test 4.	Manually	
move	specific	
version	to	prod	
registry
NiFi	Registry NiFi	Registry
LDAP LDAPLDAP
2.	Manually	
move	specific	
version	to	
staging	registry
5.	Import	flow	
version	and	start
11 ©	Hortonworks	Inc.	2011	– 2018.	All	Rights	Reserved
Tools	&	Automation
à NiPyApi
– Python	wrapper	for	NiFi	&	NiFi	Registry	REST	APIs
– https://github.com/Chaffelson/nipyapi
à NiFi	CLI
– Part	of	nifi-toolkit	released	with	Apache	NiFi	1.6.0
– https://github.com/apache/nifi/tree/master/nifi-toolkit/nifi-toolkit-cli
– README	file	at	above	location	has	documentation	to	get	started

More Related Content

What's hot

What's hot (20)

Apache NiFi Meetup - Princeton NJ 2016
Apache NiFi Meetup - Princeton NJ 2016Apache NiFi Meetup - Princeton NJ 2016
Apache NiFi Meetup - Princeton NJ 2016
 
NiFi Best Practices for the Enterprise
NiFi Best Practices for the EnterpriseNiFi Best Practices for the Enterprise
NiFi Best Practices for the Enterprise
 
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San JoseDataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
 
Apache Nifi Crash Course
Apache Nifi Crash CourseApache Nifi Crash Course
Apache Nifi Crash Course
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practices
 
Apache Ranger Hive Metastore Security
Apache Ranger Hive Metastore Security Apache Ranger Hive Metastore Security
Apache Ranger Hive Metastore Security
 
Apache Ranger
Apache RangerApache Ranger
Apache Ranger
 
Real-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiReal-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFi
 
Apache NiFi Crash Course Intro
Apache NiFi Crash Course IntroApache NiFi Crash Course Intro
Apache NiFi Crash Course Intro
 
Hive Does ACID
Hive Does ACIDHive Does ACID
Hive Does ACID
 
Neutron packet logging framework
Neutron packet logging frameworkNeutron packet logging framework
Neutron packet logging framework
 
Kafka 101
Kafka 101Kafka 101
Kafka 101
 
Securing Hadoop with Apache Ranger
Securing Hadoop with Apache RangerSecuring Hadoop with Apache Ranger
Securing Hadoop with Apache Ranger
 
Monitoring With Prometheus
Monitoring With PrometheusMonitoring With Prometheus
Monitoring With Prometheus
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive Mode
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka
 
Understand your system like never before with OpenTelemetry, Grafana, and Pro...
Understand your system like never before with OpenTelemetry, Grafana, and Pro...Understand your system like never before with OpenTelemetry, Grafana, and Pro...
Understand your system like never before with OpenTelemetry, Grafana, and Pro...
 
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and PinotExactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
 
Real time stock processing with apache nifi, apache flink and apache kafka
Real time stock processing with apache nifi, apache flink and apache kafkaReal time stock processing with apache nifi, apache flink and apache kafka
Real time stock processing with apache nifi, apache flink and apache kafka
 

Similar to Apache NiFi Meetup - Introduction to NiFi Registry

Using Spark Streaming and NiFi for the Next Generation of ETL in the Enterprise
Using Spark Streaming and NiFi for the Next Generation of ETL in the EnterpriseUsing Spark Streaming and NiFi for the Next Generation of ETL in the Enterprise
Using Spark Streaming and NiFi for the Next Generation of ETL in the Enterprise
DataWorks Summit
 
Weeks [01 02] 20100921
Weeks [01 02] 20100921Weeks [01 02] 20100921
Weeks [01 02] 20100921
Mohamed Kamel
 
Using Spark Streaming and NiFi for the next generation of ETL in the enterprise
Using Spark Streaming and NiFi for the next generation of ETL in the enterpriseUsing Spark Streaming and NiFi for the next generation of ETL in the enterprise
Using Spark Streaming and NiFi for the next generation of ETL in the enterprise
DataWorks Summit
 

Similar to Apache NiFi Meetup - Introduction to NiFi Registry (20)

Using Spark Streaming and NiFi for the Next Generation of ETL in the Enterprise
Using Spark Streaming and NiFi for the Next Generation of ETL in the EnterpriseUsing Spark Streaming and NiFi for the Next Generation of ETL in the Enterprise
Using Spark Streaming and NiFi for the Next Generation of ETL in the Enterprise
 
OOW15 - Online Patching with Oracle E-Business Suite 12.2
OOW15 - Online Patching with Oracle E-Business Suite 12.2OOW15 - Online Patching with Oracle E-Business Suite 12.2
OOW15 - Online Patching with Oracle E-Business Suite 12.2
 
The Unbearable Lightness of Ephemeral Processing
The Unbearable Lightness of Ephemeral ProcessingThe Unbearable Lightness of Ephemeral Processing
The Unbearable Lightness of Ephemeral Processing
 
Weeks [01 02] 20100921
Weeks [01 02] 20100921Weeks [01 02] 20100921
Weeks [01 02] 20100921
 
Harnessing Data-in-Motion with HDF 2.0, introduction to Apache NIFI/MINIFI
Harnessing Data-in-Motion with HDF 2.0, introduction to Apache NIFI/MINIFIHarnessing Data-in-Motion with HDF 2.0, introduction to Apache NIFI/MINIFI
Harnessing Data-in-Motion with HDF 2.0, introduction to Apache NIFI/MINIFI
 
Hortonworks Data in Motion Webinar Series - Part 1
Hortonworks Data in Motion Webinar Series - Part 1Hortonworks Data in Motion Webinar Series - Part 1
Hortonworks Data in Motion Webinar Series - Part 1
 
Using Spark Streaming and NiFi for the next generation of ETL in the enterprise
Using Spark Streaming and NiFi for the next generation of ETL in the enterpriseUsing Spark Streaming and NiFi for the next generation of ETL in the enterprise
Using Spark Streaming and NiFi for the next generation of ETL in the enterprise
 
Curing the Kafka blindness—Streams Messaging Manager
Curing the Kafka blindness—Streams Messaging ManagerCuring the Kafka blindness—Streams Messaging Manager
Curing the Kafka blindness—Streams Messaging Manager
 
Apache NiFi - Flow Based Programming Meetup
Apache NiFi - Flow Based Programming MeetupApache NiFi - Flow Based Programming Meetup
Apache NiFi - Flow Based Programming Meetup
 
Webinar Series Part 5 New Features of HDF 5
Webinar Series Part 5 New Features of HDF 5Webinar Series Part 5 New Features of HDF 5
Webinar Series Part 5 New Features of HDF 5
 
Taking DataFlow Management to the Edge with Apache NiFi/MiNiFi
Taking DataFlow Management to the Edge with Apache NiFi/MiNiFiTaking DataFlow Management to the Edge with Apache NiFi/MiNiFi
Taking DataFlow Management to the Edge with Apache NiFi/MiNiFi
 
Hadoop & Cloud Storage: Object Store Integration in Production
Hadoop & Cloud Storage: Object Store Integration in ProductionHadoop & Cloud Storage: Object Store Integration in Production
Hadoop & Cloud Storage: Object Store Integration in Production
 
OpenStack Murano
OpenStack MuranoOpenStack Murano
OpenStack Murano
 
Hadoop & cloud storage object store integration in production (final)
Hadoop & cloud storage  object store integration in production (final)Hadoop & cloud storage  object store integration in production (final)
Hadoop & cloud storage object store integration in production (final)
 
OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]
OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]
OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]
 
HDF: Hortonworks DataFlow: Technical Workshop
HDF: Hortonworks DataFlow: Technical WorkshopHDF: Hortonworks DataFlow: Technical Workshop
HDF: Hortonworks DataFlow: Technical Workshop
 
Hadoop & Cloud Storage: Object Store Integration in Production
Hadoop & Cloud Storage: Object Store Integration in ProductionHadoop & Cloud Storage: Object Store Integration in Production
Hadoop & Cloud Storage: Object Store Integration in Production
 
The hourly network outage - Booking.com.pdf
The hourly network outage - Booking.com.pdfThe hourly network outage - Booking.com.pdf
The hourly network outage - Booking.com.pdf
 
Hadoop operations-2015-hadoop-summit-san-jose-v5
Hadoop operations-2015-hadoop-summit-san-jose-v5Hadoop operations-2015-hadoop-summit-san-jose-v5
Hadoop operations-2015-hadoop-summit-san-jose-v5
 
Hadoop Operations - Best Practices from the Field
Hadoop Operations - Best Practices from the FieldHadoop Operations - Best Practices from the Field
Hadoop Operations - Best Practices from the Field
 

More from Bryan Bende

More from Bryan Bende (10)

Devnexus 2018 - Let Your Data Flow with Apache NiFi
Devnexus 2018 - Let Your Data Flow with Apache NiFiDevnexus 2018 - Let Your Data Flow with Apache NiFi
Devnexus 2018 - Let Your Data Flow with Apache NiFi
 
You Can't Search Without Data
You Can't Search Without DataYou Can't Search Without Data
You Can't Search Without Data
 
Apache NiFi Record Processing
Apache NiFi Record ProcessingApache NiFi Record Processing
Apache NiFi Record Processing
 
NJ Hadoop Meetup - Apache NiFi Deep Dive
NJ Hadoop Meetup - Apache NiFi Deep DiveNJ Hadoop Meetup - Apache NiFi Deep Dive
NJ Hadoop Meetup - Apache NiFi Deep Dive
 
Apache NiFi in the Hadoop Ecosystem
Apache NiFi in the Hadoop EcosystemApache NiFi in the Hadoop Ecosystem
Apache NiFi in the Hadoop Ecosystem
 
Integrating NiFi and Apex
Integrating NiFi and ApexIntegrating NiFi and Apex
Integrating NiFi and Apex
 
Integrating NiFi and Flink
Integrating NiFi and FlinkIntegrating NiFi and Flink
Integrating NiFi and Flink
 
Building Data Pipelines for Solr with Apache NiFi
Building Data Pipelines for Solr with Apache NiFiBuilding Data Pipelines for Solr with Apache NiFi
Building Data Pipelines for Solr with Apache NiFi
 
Document Similarity with Cloud Computing
Document Similarity with Cloud ComputingDocument Similarity with Cloud Computing
Document Similarity with Cloud Computing
 
Real-Time Inverted Search NYC ASLUG Oct 2014
Real-Time Inverted Search NYC ASLUG Oct 2014Real-Time Inverted Search NYC ASLUG Oct 2014
Real-Time Inverted Search NYC ASLUG Oct 2014
 

Recently uploaded

Recently uploaded (20)

how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java Developers
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and Prevention
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
How to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfHow to pick right visual testing tool.pdf
How to pick right visual testing tool.pdf
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 

Apache NiFi Meetup - Introduction to NiFi Registry

  • 2. 2 © Hortonworks Inc. 2011 – 2018. All Rights Reserved Background à Most frequently asked question… – How do I deploy my flow? à In theory…. – Avoid long turn around time of deployments – Quickly modify dataflow via NiFi UI à In reality… – Classic development lifecycle (dev -> int -> prod) – Promote changes after successful testing – Hands-off UI in production
  • 3. 3 © Hortonworks Inc. 2011 – 2018. All Rights Reserved Previous Deployment Approaches à Copy flow.xml.gz between environments – Requires copying entire data flow for any change – Can’t tell what changed, hard to diff if you put in version control – Requires all environments use the same encryption key for sensitive properties à Make templates of process groups – Script creation of template and deployment to next environment – Requires stopping flow and removing components, then re-instantiating template – No easy way to see changes, hard to rollback
  • 4. 4 © Hortonworks Inc. 2011 – 2018. All Rights Reserved Previous Variable Handling à Need to parametrize values in the flow per environment – Connection strings, URLs, File System paths, etc. à Can set variables in bootstrap.conf – -Dmy.var=foo à Can set a properties file in nifi.properties – nifi.variable.registry.properties=production.properties à Both require command line access à Both require restart of entire NiFi instance to pick up changes
  • 5. 5 © Hortonworks Inc. 2011 – 2018. All Rights Reserved Enter NiFi Registry à NiFi Registry - sub-project of Apache NiFi – https://github.com/apache/nifi-registry – https://issues.apache.org/jira/projects/NIFIREG à Complimentary application, central location for storage/management of “versioned” resources à Initial capability to store and retrieve “versioned flows” à Integration on NiFi side – Start/Stop version control of a process group – Change version (upgrade/downgrade) – Import new process group from a version
  • 6. 6 © Hortonworks Inc. 2011 – 2018. All Rights Reserved Enter Variable Registry à Parameterize configuration like connection strings, file paths, etc. à Referenced via Expression language – Kafka Brokers = ${kafka.brokers} à Variables associated with a process group à Right-click on canvas to view variables for current process group à Hierarchical order of precedence, resolve closest reference to component à Editing variables automatically restarts any components referencing the variables! Level 1 Level 2 Vars Vars
  • 7. 7 © Hortonworks Inc. 2011 – 2018. All Rights Reserved NiFi Registry Terminology à Buckets – Logical place to store versioned items/resources – Permissions assigned at bucket level • READ - Retrieve any item from the bucket • WRITE – Create new items in the bucket à Versioned Flows – Currently the only type of item – Each versioned flow has name, description, and 1 or more “snapshots” à Versioned Flow Snapshot – Each snapshot has metadata and contents – Metadata contains a one-up version #, commit message, author, & create date – Content contains a Versioned Process Group i.e. snapshot of PG from NiFi
  • 8. 8 © Hortonworks Inc. 2011 – 2018. All Rights Reserved Architecture à Metadata Database – Metadata for each bucket – Knowledge of which items are in each bucket – Metadata for each versions of an item – Currently uses embedded H2 DB à Flow Persistence Provider – Stores/retrieves serialized bytes of a versioned flow – Pluggable extension point – Provided implementation uses local file system – NIFIREG-162 Git-based implementation • https://github.com/apache/nifi-registry/pull/112 Client UI (Angular) Server (Spring Boot) REST API (Jersey) Service Layer (Spring, Java) Metadata Database Flow Persistence Provider H2 File System = Extension Point
  • 9. 9 © Hortonworks Inc. 2011 – 2018. All Rights Reserved StagingDev Deployment Scenario 1 – Shared Registry with Multiple NiFi’s NiFi Registry NiFi NiFi Production NiFi 1. Start version control and save new versions 2. Import flow from Dev and Perform testing 3. Import flow that passed tests in staging LDAP
  • 10. 10 © Hortonworks Inc. 2011 – 2018. All Rights Reserved Deployment Scenario 2 – Separate Environments StagingDev NiFi Registry NiFi NiFi Production NiFi 1. Start version control and save new versions 3. Import flow version & test 4. Manually move specific version to prod registry NiFi Registry NiFi Registry LDAP LDAPLDAP 2. Manually move specific version to staging registry 5. Import flow version and start
  • 11. 11 © Hortonworks Inc. 2011 – 2018. All Rights Reserved Tools & Automation à NiPyApi – Python wrapper for NiFi & NiFi Registry REST APIs – https://github.com/Chaffelson/nipyapi à NiFi CLI – Part of nifi-toolkit released with Apache NiFi 1.6.0 – https://github.com/apache/nifi/tree/master/nifi-toolkit/nifi-toolkit-cli – README file at above location has documentation to get started