Member since
05-24-2022
1
Post
1
Kudos Received
0
Solutions
01-23-2023
03:51 AM
1 Kudo
Overview - ExecuteProcess When developing custom logic as part of our dataflow, having the ability to execute a custom script is a boom especially when it comes to compensating for certain capabilities which are not present out of the box or may not be the need of the hour now for the larger audience. :package: NiFi makes this possible by providing a processor called ExecuteProcess which enables you to execute custom code. It leverages the underlying operating system to execute the command/process. Background Over the course of using this processor I often had trouble with managing different modules that were required by different ExecuteProcess processors within my flow. At times I was looking at having different versions of the same modules for different set of scripts. Virtual environments in python came to my rescue here. Hence as a best practise it is always advised to use virtual environments to setup additional modules while using Python code within the ExecuteProcess processor. Let me now show you how can this be achieved. For the subsequent steps, these are the different versions I am using: Python Version : 3.6.8 pip Version : 21.3.1 NiFi Version : 1.18.0.2.2.6.0-260 Python Module : Faker Process The whole process is divided into two stages: Changes on the system where NiFi is installed(Creation of the virtual env) Configuring the ExecuteProcess processor Stage 1 : Creation of the virtual env Step 1 : Execute the following command to create a virtual env virtualenv <env-name-without-brackets> Eg: virtualenv env *On executing this a directory with the environment name gets created(the name in our case is env) in the current directory Step 2 : Activate the Environment and install the package using the following commands source env/bin/activate Note : Once the virtual environment is activated you should see you environment name at the start of the command prompt. Step 3 : Install the module using the following command pip install faker Step 4 : Once the installation completes, create a shell script(test.sh) with the following content #!/bin/bash source /path/to/your-environment/env/bin/activate python /path/to/your/script/test.py My script folder looks something like this: Important : Make sure the script and the virtual environment folder are accessible by the user which is running NiFi. Stage 2 : Configuring the ExecuteProcess processor Step 1 : In NiFi, configure the processor in the following way Your processor will now be able to import the module that you have setup within your python virtual environment
... View more
Labels: