Details
Description
Issue:
PutHDFS executes with SUCESS, although exception in logs and no file saved.
Solution:
Propagate exception to UI (with FAILURE status).
Steps to reproduce
- This error applies to an installation of Nifi on a MS Windows system
- Make your own application properties file (e.g. myapp-nifi.properties) and link it in the main nifi.properties file (with property “nifi.variable.registry.properties=<mypath>/myapp-nifi.properties”)
- Enter a new property “hadoop_conf=C:\bin\hadoop-2.7.1\etc\hadoop\core-site.xml,C:\bin\hadoop-2.7.1\etc\hadoop\hdfs-site.xml” in myapp-nifi.properties (Hadoop is installed in the corresponding directory)
- The backslashes of the directory path of the configuration are the important thing to look at
- Restart Nifi to take the configuration change into account
- Open the properties configuration of the PutHDFS processor
- Set the " Hadoop Configuration Resources" to the variable key of the external property: ${hadoop_conf}.
- Execute the flow/processor with some path and filename to put into HDFS.
- Processor executes with SUCCESS
- Log file shows "java.lang.reflect.InvocationTargetException: null"
- No file is written into HDFS
Example external properties file:
hadoop_conf=C:\bin\hadoop-2.7.1\etc\hadoop\core-site.xml,C:\bin\hadoop-2.7.1\etc\hadoop\hdfs-site.xml
Setting the path value directly in the PutHDFS processor with the "\" path can be used and executes correct (no error, file is stored in HDFS).
Workaround:
Replace windows backslah "\" with "/" in the external property file (e.g. hadoop_conf=C:/bin/hadoop-2.7.1/etc/hadoop/core-site.xml,C:/bin/hadoop-2.7.1/etc/hadoop/hdfs-site.xml).