<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question NiFi Toolkit: Can't start NiFi with a ~75MB gzipped flow.xml in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/288712#M213826</link>
    <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There is an issue when having a lot of (17.000 +)&amp;nbsp; components in NiFi's canvas resulting in a very large template.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When the &lt;EM&gt;flow.xml.gz&lt;/EM&gt; in &lt;EM&gt;/var/lib/conf/flow.xml.gz&lt;/EM&gt; starts to get large we need to increase maximum heap size for the toolkit JVM (Ambari &amp;gt; NiFi &amp;gt; Advanced nifi-toolkit-env &amp;gt; Toolkit java options) in order for NiFi to start. Normally this solves the issue setting it to &lt;EM&gt;-Xms1024m -Xmx7168m&amp;nbsp;&lt;/EM&gt;or any reasonably high maximum value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The issue is when &lt;EM&gt;flow.xml.gz&lt;/EM&gt; starts to exceed ~70MB, NiFi can't be started even with large amounts of memory (we've tried up to 70GB).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;IDK if this is a memory problem (e.g. we need more RAM) or if we've hit a wall of some kind.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Error:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;ERROR [main] org.apache.nifi.toolkit.encryptconfig.EncryptConfigMain: 
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
	at java.lang.StringCoding.encode(StringCoding.java:350)
	at java.lang.String.getBytes(String.java:941)
	at org.apache.commons.io.IOUtils.write(IOUtils.java:2025)
	at org.apache.commons.io.IOUtils$write$0.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)
	at org.apache.nifi.properties.ConfigEncryptionTool$_writeFlowXmlToFile_closure6$_closure30.doCall(ConfigEncryptionTool.groovy:870)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
	at groovy.lang.Closure.call(Closure.java:414)
	at groovy.lang.Closure.call(Closure.java:430)
	at org.codehaus.groovy.runtime.IOGroovyMethods.withCloseable(IOGroovyMethods.java:1622)
	at org.codehaus.groovy.runtime.NioGroovyMethods.withCloseable(NioGroovyMethods.java:1759)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:54)
	at org.codehaus.groovy.runtime.metaclass.NewInstanceMetaMethod.invoke(NewInstanceMetaMethod.java:56)
	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at org.apache.nifi.properties.ConfigEncryptionTool$_writeFlowXmlToFile_closure6.doCall(ConfigEncryptionTool.groovy:869)
Requested array size exceeds VM limit&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After this point NiFi can't start, automatically deletes / creates a new flow.xml.gz and starts with an empty canvas.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Full log:&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;P&gt;stderr:&lt;BR /&gt;Traceback (most recent call last):&lt;BR /&gt;File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi.py", line 304, in &amp;lt;module&amp;gt;&lt;BR /&gt;Master().execute()&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 352, in execute&lt;BR /&gt;method(env)&lt;BR /&gt;File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi.py", line 143, in start&lt;BR /&gt;self.configure(env, is_starting = True)&lt;BR /&gt;File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi.py", line 111, in configure&lt;BR /&gt;self.write_configurations(params, is_starting)&lt;BR /&gt;File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi.py", line 247, in write_configurations&lt;BR /&gt;support_encrypt_authorizers=params.stack_support_encrypt_authorizers&lt;BR /&gt;File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi_toolkit_util_common.py", line 574, in encrypt_sensitive_properties&lt;BR /&gt;Execute(encrypt_config_command, user=nifi_user, logoutput=False, environment=environment)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/base.py", line 166, in __init__&lt;BR /&gt;self.env.run()&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/environment.py", line 160, in run&lt;BR /&gt;self.run_action(resource, action)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/environment.py", line 124, in run_action&lt;BR /&gt;provider_action()&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/providers/system.py", line 263, in action_run&lt;BR /&gt;returns=self.resource.returns)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 72, in inner&lt;BR /&gt;result = function(command, **kwargs)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 102, in checked_call&lt;BR /&gt;tries=tries, try_sleep=try_sleep, timeout_kill_strategy=timeout_kill_strategy, returns=returns)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 150, in _call_wrapper&lt;BR /&gt;result = _call(command, **kwargs_copy)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 314, in _call&lt;BR /&gt;raise ExecutionFailed(err_msg, code, out, err)&lt;BR /&gt;resource_management.core.exceptions.ExecutionFailed: Execution of '/usr/hdf/current/nifi-toolkit/bin/encrypt-config.sh -v -b /usr/hdf/current/nifi/conf/bootstrap.conf -n /usr/hdf/current/nifi/conf/nifi.properties -f /var/lib/nifi/conf/flow.xml.gz -s '[PROTECTED]' -l /usr/hdf/current/nifi/conf/login-identity-providers.xml -a /usr/hdf/current/nifi/conf/authorizers.xml -m -e '[PROTECTED]' -p '[PROTECTED]'' returned 255.&amp;nbsp;&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Handling encryption of nifi.properties&lt;BR /&gt;2020/01/29 14:55:02 WARN [main] org.apache.nifi.properties.ConfigEncryptionTool: The source nifi.properties and destination nifi.properties are identical [/usr/hdf/current/nifi/conf/nifi.properties] so the original will be overwritten&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Handling encryption of login-identity-providers.xml&lt;BR /&gt;2020/01/29 14:55:02 WARN [main] org.apache.nifi.properties.ConfigEncryptionTool: The source login-identity-providers.xml and destination login-identity-providers.xml are identical [/usr/hdf/current/nifi/conf/login-identity-providers.xml] so the original will be overwritten&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Handling encryption of authorizers.xml&lt;BR /&gt;2020/01/29 14:55:02 WARN [main] org.apache.nifi.properties.ConfigEncryptionTool: The source authorizers.xml and destination authorizers.xml are identical [/usr/hdf/current/nifi/conf/authorizers.xml] so the original will be overwritten&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Handling encryption of flow.xml.gz&lt;BR /&gt;2020/01/29 14:55:02 WARN [main] org.apache.nifi.properties.ConfigEncryptionTool: The source flow.xml.gz and destination flow.xml.gz are identical [/var/lib/nifi/conf/flow.xml.gz] so the original will be overwritten&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: bootstrap.conf: /usr/hdf/current/nifi/conf/bootstrap.conf&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (src) nifi.properties: /usr/hdf/current/nifi/conf/nifi.properties&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (dest) nifi.properties: /usr/hdf/current/nifi/conf/nifi.properties&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (src) login-identity-providers.xml: /usr/hdf/current/nifi/conf/login-identity-providers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (dest) login-identity-providers.xml: /usr/hdf/current/nifi/conf/login-identity-providers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (src) authorizers.xml: /usr/hdf/current/nifi/conf/authorizers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (dest) authorizers.xml: /usr/hdf/current/nifi/conf/authorizers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (src) flow.xml.gz: /var/lib/nifi/conf/flow.xml.gz&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (dest) flow.xml.gz: /var/lib/nifi/conf/flow.xml.gz&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Key migration mode activated&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.NiFiPropertiesLoader: Loaded 161 properties from /usr/hdf/current/nifi/conf/nifi.properties&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.NiFiPropertiesLoader: Loaded 161 properties from /usr/hdf/current/nifi/conf/nifi.properties&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ProtectedNiFiProperties: There are 3 protected properties of 5 sensitive properties (75%)&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Loaded NiFiProperties instance with 158 properties&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Loaded login identity providers content (14 lines)&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: No encrypted password property elements found in login-identity-providers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: No unencrypted password property elements found in login-identity-providers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Loaded authorizers content (30 lines)&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: No encrypted password property elements found in authorizers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: No unencrypted password property elements found in authorizers.xml&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Decrypted and re-encrypted 56 elements for flow.xml.gz&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Protected nifi.security.keyPasswd with aes/gcm/256 -&amp;gt; l3Bk1iJuJf+Y5yyM||Y7jSBqByRUZPmJa2jxf0x2j2s+2efYYoVxp89PeRmCrXbf7M14wUrjKfq4z85RgKTkh/K49m+cZr2fo&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Updated protection key nifi.security.keyPasswd.protected&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Protected nifi.security.keystorePasswd with aes/gcm/256 -&amp;gt; qK4aq6CsT54K5a+f||XuhbPv7Dn456Gd0UwEnFb8hMn1np9EhsaZgT8cFCeXGRgRmxJ34VAsOZrc9AmzWen73DYU+3cCQ2YB0&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Updated protection key nifi.security.keystorePasswd.protected&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Protected nifi.security.truststorePasswd with aes/gcm/256 -&amp;gt; CtBw7uibRzIGE0+8||q/aQRM/4uVzMLPga0R/noUj5MpruYl/z5xM62/CUUtskgfyv&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Updated protection key nifi.security.truststorePasswd.protected&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Protected nifi.sensitive.props.key with aes/gcm/256 -&amp;gt; NwNIA9WqScpilGSV||L34l7Lsx5NyEmWjqoGTtaGWDhZ8eo34ADw&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Updated protection key nifi.sensitive.props.key.protected&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Final result: 162 keys including 4 protected keys&lt;BR /&gt;2020/01/29 14:55:13 ERROR [main] org.apache.nifi.toolkit.encryptconfig.EncryptConfigMain:&lt;BR /&gt;java.lang.OutOfMemoryError: Requested array size exceeds VM limit&lt;BR /&gt;at java.lang.StringCoding.encode(StringCoding.java:350)&lt;BR /&gt;at java.lang.String.getBytes(String.java:941)&lt;BR /&gt;at org.apache.commons.io.IOUtils.write(IOUtils.java:2025)&lt;BR /&gt;at org.apache.commons.io.IOUtils$write$0.call(Unknown Source)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)&lt;BR /&gt;at org.apache.nifi.properties.ConfigEncryptionTool$_writeFlowXmlToFile_closure6$_closure30.doCall(ConfigEncryptionTool.groovy:870)&lt;BR /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;BR /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&lt;BR /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&lt;BR /&gt;at java.lang.reflect.Method.invoke(Method.java:498)&lt;BR /&gt;at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)&lt;BR /&gt;at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)&lt;BR /&gt;at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)&lt;BR /&gt;at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)&lt;BR /&gt;at groovy.lang.Closure.call(Closure.java:414)&lt;BR /&gt;at groovy.lang.Closure.call(Closure.java:430)&lt;BR /&gt;at org.codehaus.groovy.runtime.IOGroovyMethods.withCloseable(IOGroovyMethods.java:1622)&lt;BR /&gt;at org.codehaus.groovy.runtime.NioGroovyMethods.withCloseable(NioGroovyMethods.java:1759)&lt;BR /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;BR /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&lt;BR /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&lt;BR /&gt;at java.lang.reflect.Method.invoke(Method.java:498)&lt;BR /&gt;at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:54)&lt;BR /&gt;at org.codehaus.groovy.runtime.metaclass.NewInstanceMetaMethod.invoke(NewInstanceMetaMethod.java:56)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)&lt;BR /&gt;at org.apache.nifi.properties.ConfigEncryptionTool$_writeFlowXmlToFile_closure6.doCall(ConfigEncryptionTool.groovy:869)&lt;BR /&gt;Requested array size exceeds VM limit&lt;/P&gt;
&lt;P&gt;usage: org.apache.nifi.toolkit.encryptconfig.EncryptConfigMain [-h] [options]&lt;/P&gt;
&lt;P&gt;This tool enables easy encryption and decryption of configuration files for NiFi and its sub-projects. Unprotected files can be input to this tool to be&lt;BR /&gt;protected by a key in a manner that is understood by NiFi. Protected files, along with a key, can be input to this tool to be unprotected, for troubleshooting&lt;BR /&gt;or automation purposes.&lt;/P&gt;
&lt;P&gt;-h,--help Show usage information (this message)&lt;BR /&gt;--nifiRegistry Specifies to target NiFi Registry. When this flag is not included, NiFi is the target.&lt;/P&gt;
&lt;P&gt;When targeting NiFi:&lt;BR /&gt;-h,--help Show usage information (this message)&lt;BR /&gt;-v,--verbose Sets verbose mode (default false)&lt;BR /&gt;-n,--niFiProperties &amp;lt;file&amp;gt; The nifi.properties file containing unprotected config values (will be overwritten unless -o is specified)&lt;BR /&gt;-o,--outputNiFiProperties &amp;lt;file&amp;gt; The destination nifi.properties file containing protected config values (will not modify input nifi.properties)&lt;BR /&gt;-l,--loginIdentityProviders &amp;lt;file&amp;gt; The login-identity-providers.xml file containing unprotected config values (will be overwritten unless -i is&lt;BR /&gt;specified)&lt;BR /&gt;-i,--outputLoginIdentityProviders &amp;lt;file&amp;gt; The destination login-identity-providers.xml file containing protected config values (will not modify input&lt;BR /&gt;login-identity-providers.xml)&lt;BR /&gt;-a,--authorizers &amp;lt;file&amp;gt; The authorizers.xml file containing unprotected config values (will be overwritten unless -u is specified)&lt;BR /&gt;-u,--outputAuthorizers &amp;lt;file&amp;gt; The destination authorizers.xml file containing protected config values (will not modify input authorizers.xml)&lt;BR /&gt;-f,--flowXml &amp;lt;file&amp;gt; The flow.xml.gz file currently protected with old password (will be overwritten unless -g is specified)&lt;BR /&gt;-g,--outputFlowXml &amp;lt;file&amp;gt; The destination flow.xml.gz file containing protected config values (will not modify input flow.xml.gz)&lt;BR /&gt;-b,--bootstrapConf &amp;lt;file&amp;gt; The bootstrap.conf file to persist master key&lt;BR /&gt;-k,--key &amp;lt;keyhex&amp;gt; The raw hexadecimal key to use to encrypt the sensitive properties&lt;BR /&gt;-e,--oldKey &amp;lt;keyhex&amp;gt; The old raw hexadecimal key to use during key migration&lt;BR /&gt;-p,--password &amp;lt;password&amp;gt; The password from which to derive the key to use to encrypt the sensitive properties&lt;BR /&gt;-w,--oldPassword &amp;lt;password&amp;gt; The old password from which to derive the key during migration&lt;BR /&gt;-r,--useRawKey If provided, the secure console will prompt for the raw key value in hexadecimal form&lt;BR /&gt;-m,--migrate If provided, the nifi.properties and/or login-identity-providers.xml sensitive properties will be re-encrypted with&lt;BR /&gt;a new key&lt;BR /&gt;-x,--encryptFlowXmlOnly If provided, the properties in flow.xml.gz will be re-encrypted with a new key but the nifi.properties and/or&lt;BR /&gt;login-identity-providers.xml files will not be modified&lt;BR /&gt;-s,--propsKey &amp;lt;password|keyhex&amp;gt; The password or key to use to encrypt the sensitive processor properties in flow.xml.gz&lt;BR /&gt;-A,--newFlowAlgorithm &amp;lt;algorithm&amp;gt; The algorithm to use to encrypt the sensitive processor properties in flow.xml.gz&lt;BR /&gt;-P,--newFlowProvider &amp;lt;algorithm&amp;gt; The security provider to use to encrypt the sensitive processor properties in flow.xml.gz&lt;BR /&gt;-c,--translateCli Translates the nifi.properties file to a format suitable for the NiFi CLI tool&lt;/P&gt;
&lt;P&gt;When targeting NiFi Registry using the --nifiRegistry flag:&lt;BR /&gt;-h,--help Show usage information (this message)&lt;BR /&gt;-v,--verbose Sets verbose mode (default false)&lt;BR /&gt;-p,--password &amp;lt;password&amp;gt; Protect the files using a password-derived key. If an argument is not provided to this flag, interactive mode will&lt;BR /&gt;be triggered to prompt the user to enter the password.&lt;BR /&gt;-k,--key &amp;lt;keyhex&amp;gt; Protect the files using a raw hexadecimal key. If an argument is not provided to this flag, interactive mode will be&lt;BR /&gt;triggered to prompt the user to enter the key.&lt;BR /&gt;--oldPassword &amp;lt;password&amp;gt; If the input files are already protected using a password-derived key, this specifies the old password so that the&lt;BR /&gt;files can be unprotected before re-protecting.&lt;BR /&gt;--oldKey &amp;lt;keyhex&amp;gt; If the input files are already protected using a key, this specifies the raw hexadecimal key so that the files can&lt;BR /&gt;be unprotected before re-protecting.&lt;BR /&gt;-b,--bootstrapConf &amp;lt;file&amp;gt; The bootstrap.conf file containing no master key or an existing master key. If a new password or key is specified&lt;BR /&gt;(using -p or -k) and no output bootstrap.conf file is specified, then this file will be overwritten to persist the&lt;BR /&gt;new master key.&lt;BR /&gt;-B,--outputBootstrapConf &amp;lt;file&amp;gt; The destination bootstrap.conf file to persist master key. If specified, the input bootstrap.conf will not be&lt;BR /&gt;modified.&lt;BR /&gt;-r,--nifiRegistryProperties &amp;lt;file&amp;gt; The nifi-registry.properties file containing unprotected config values, overwritten if no output file specified.&lt;BR /&gt;-R,--outputNifiRegistryProperties &amp;lt;file&amp;gt; The destination nifi-registry.properties file containing protected config values.&lt;BR /&gt;-a,--authorizersXml &amp;lt;file&amp;gt; The authorizers.xml file containing unprotected config values, overwritten if no output file specified.&lt;BR /&gt;-A,--outputAuthorizersXml &amp;lt;file&amp;gt; The destination authorizers.xml file containing protected config values.&lt;BR /&gt;-i,--identityProvidersXml &amp;lt;file&amp;gt; The identity-providers.xml file containing unprotected config values, overwritten if no output file specified.&lt;BR /&gt;-I,--outputIdentityProvidersXml &amp;lt;file&amp;gt; The destination identity-providers.xml file containing protected config values.&lt;BR /&gt;--decrypt Can be used with -r to decrypt a previously encrypted NiFi Registry Properties file. Decrypted content is printed to&lt;BR /&gt;STDOUT.&lt;BR /&gt;stdout:&lt;BR /&gt;2020-01-29 14:54:59,928 - Stack Feature Version Info: Cluster Stack=3.1, Command Stack=None, Command Version=3.1.0.0-78 -&amp;gt; 3.1.0.0-78&lt;BR /&gt;2020-01-29 14:54:59,944 - Using hadoop conf dir: /usr/hdp/3.1.0.0-78/hadoop/conf&lt;BR /&gt;2020-01-29 14:55:00,197 - Stack Feature Version Info: Cluster Stack=3.1, Command Stack=None, Command Version=3.1.0.0-78 -&amp;gt; 3.1.0.0-78&lt;BR /&gt;2020-01-29 14:55:00,202 - Using hadoop conf dir: /usr/hdp/3.1.0.0-78/hadoop/conf&lt;BR /&gt;2020-01-29 14:55:00,203 - Group['livy'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['spark'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['nifiregistry'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['hdfs'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['zeppelin'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['hadoop'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['nifi'] {}&lt;BR /&gt;2020-01-29 14:55:00,205 - Group['users'] {}&lt;BR /&gt;2020-01-29 14:55:00,205 - Group['knox'] {}&lt;BR /&gt;2020-01-29 14:55:00,205 - User['yarn-ats'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,206 - User['hive'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,207 - User['infra-solr'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,208 - User['zookeeper'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,208 - User['ams'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,209 - User['tez'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop', 'users'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,210 - User['nifiregistry'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['nifiregistry'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,211 - User['zeppelin'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['zeppelin', 'hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,212 - User['nifi'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['nifi'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,213 - User['logsearch'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,213 - User['livy'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['livy', 'hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,214 - User['spark'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['spark', 'hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,215 - User['ambari-qa'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop', 'users'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,216 - User['hdfs'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hdfs', 'hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,216 - User['yarn'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,217 - User['mapred'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,218 - User['knox'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop', 'knox'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,218 - File['/var/lib/ambari-agent/tmp/changeUid.sh'] {'content': StaticFile('changeToSecureUid.sh'), 'mode': 0555}&lt;BR /&gt;2020-01-29 14:55:00,220 - Execute['/var/lib/ambari-agent/tmp/changeUid.sh ambari-qa /tmp/hadoop-ambari-qa,/tmp/hsperfdata_ambari-qa,/home/ambari-qa,/tmp/ambari-qa,/tmp/sqoop-ambari-qa 0'] {'not_if': '(test $(id -u ambari-qa) -gt 1000) || (false)'}&lt;BR /&gt;2020-01-29 14:55:00,225 - Skipping Execute['/var/lib/ambari-agent/tmp/changeUid.sh ambari-qa /tmp/hadoop-ambari-qa,/tmp/hsperfdata_ambari-qa,/home/ambari-qa,/tmp/ambari-qa,/tmp/sqoop-ambari-qa 0'] due to not_if&lt;BR /&gt;2020-01-29 14:55:00,226 - Group['hdfs'] {}&lt;BR /&gt;2020-01-29 14:55:00,226 - User['hdfs'] {'fetch_nonlocal_groups': True, 'groups': ['hdfs', 'hadoop', u'hdfs']}&lt;BR /&gt;2020-01-29 14:55:00,226 - FS Type: HDFS&lt;BR /&gt;2020-01-29 14:55:00,226 - Directory['/etc/hadoop'] {'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:00,240 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/hadoop-env.sh'] {'content': InlineTemplate(...), 'owner': 'root', 'group': 'hadoop'}&lt;BR /&gt;2020-01-29 14:55:00,240 - Writing File['/usr/hdp/3.1.0.0-78/hadoop/conf/hadoop-env.sh'] because contents don't match&lt;BR /&gt;2020-01-29 14:55:00,241 - Directory['/var/lib/ambari-agent/tmp/hadoop_java_io_tmpdir'] {'owner': 'hdfs', 'group': 'hadoop', 'mode': 01777}&lt;BR /&gt;2020-01-29 14:55:00,256 - Execute[('setenforce', '0')] {'not_if': '(! which getenforce ) || (which getenforce &amp;amp;&amp;amp; getenforce | grep -q Disabled)', 'sudo': True, 'only_if': 'test -f /selinux/enforce'}&lt;BR /&gt;2020-01-29 14:55:00,263 - Skipping Execute[('setenforce', '0')] due to not_if&lt;BR /&gt;2020-01-29 14:55:00,264 - Directory['/var/log/hadoop'] {'owner': 'root', 'create_parents': True, 'group': 'hadoop', 'mode': 0775, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,266 - Directory['/var/run/hadoop'] {'owner': 'root', 'create_parents': True, 'group': 'root', 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,266 - Directory['/var/run/hadoop/hdfs'] {'owner': 'hdfs', 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,267 - Directory['/tmp/hadoop-hdfs'] {'owner': 'hdfs', 'create_parents': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,270 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/commons-logging.properties'] {'content': Template('commons-logging.properties.j2'), 'owner': 'root'}&lt;BR /&gt;2020-01-29 14:55:00,271 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/health_check'] {'content': Template('health_check.j2'), 'owner': 'root'}&lt;BR /&gt;2020-01-29 14:55:00,277 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/log4j.properties'] {'content': InlineTemplate(...), 'owner': 'hdfs', 'group': 'hadoop', 'mode': 0644}&lt;BR /&gt;2020-01-29 14:55:00,286 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/hadoop-metrics2.properties'] {'content': InlineTemplate(...), 'owner': 'hdfs', 'group': 'hadoop'}&lt;BR /&gt;2020-01-29 14:55:00,286 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/task-log4j.properties'] {'content': StaticFile('task-log4j.properties'), 'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:00,287 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/configuration.xsl'] {'owner': 'hdfs', 'group': 'hadoop'}&lt;BR /&gt;2020-01-29 14:55:00,290 - File['/etc/hadoop/conf/topology_mappings.data'] {'owner': 'hdfs', 'content': Template('topology_mappings.data.j2'), 'only_if': 'test -d /etc/hadoop/conf', 'group': 'hadoop', 'mode': 0644}&lt;BR /&gt;2020-01-29 14:55:00,294 - File['/etc/hadoop/conf/topology_script.py'] {'content': StaticFile('topology_script.py'), 'only_if': 'test -d /etc/hadoop/conf', 'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:00,297 - Skipping unlimited key JCE policy check and setup since the Java VM is not managed by Ambari&lt;BR /&gt;2020-01-29 14:55:00,304 - Skipping stack-select on NIFI because it does not exist in the stack-select package structure.&lt;BR /&gt;2020-01-29 14:55:00,647 - Stack Feature Version Info: Cluster Stack=3.1, Command Stack=None, Command Version=3.1.0.0-78 -&amp;gt; 3.1.0.0-78&lt;BR /&gt;2020-01-29 14:55:00,704 - File['/var/lib/ambari-agent/tmp/run_ca.sh'] {'owner': 'nifi', 'content': StaticFile('run_ca.sh'), 'group': 'nifi', 'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:00,706 - Changing owner of package files&lt;BR /&gt;2020-01-29 14:55:00,706 - Directory['/usr/hdf/current/nifi-toolkit'] {'group': 'nifi', 'cd_access': 'a', 'recursion_follow_links': True, 'create_parents': False, 'recursive_ownership': True, 'owner': 'nifi', 'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:00,710 - Directory['/var/run/nifi'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,711 - Directory['/var/lib/nifi'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,807 - Directory['/var/lib/nifi/database_repository'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,807 - Directory['/hadoopfs/fs1/nifi/flowfile_repository'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,808 - Directory['/hadoopfs/fs1/nifi/provenance_repository'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,810 - Directory['/usr/hdf/current/nifi/conf'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,812 - Directory['/var/lib/nifi/conf'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,812 - Directory['/var/lib/nifi/state/local'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,814 - Directory['/usr/hdf/current/nifi/lib'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,817 - Directory['/hadoopfs/fs1/nifi/content_repository'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,896 - Directory['/hadoopfs/fs1/nifi/content_repository'] {'owner': 'nifi', 'group': 'nifi', 'create_parents': True, 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,962 - Directory['/etc/security/limits.d'] {'owner': 'root', 'create_parents': True, 'group': 'root'}&lt;BR /&gt;2020-01-29 14:55:00,966 - File['/etc/security/limits.d/nifi.conf'] {'content': Template('nifi.conf.j2'), 'owner': 'root', 'group': 'root', 'mode': 0644}&lt;BR /&gt;2020-01-29 14:55:00,968 - PropertiesFile['/usr/hdf/current/nifi/conf/nifi.properties'] {'owner': 'nifi', 'group': 'nifi', 'mode': 0600, 'properties': ...}&lt;BR /&gt;2020-01-29 14:55:00,973 - Generating properties file: /usr/hdf/current/nifi/conf/nifi.properties&lt;BR /&gt;2020-01-29 14:55:00,973 - File['/usr/hdf/current/nifi/conf/nifi.properties'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0600, 'encoding': 'UTF-8'}&lt;BR /&gt;2020-01-29 14:55:01,070 - Writing File['/usr/hdf/current/nifi/conf/nifi.properties'] because contents don't match&lt;BR /&gt;2020-01-29 14:55:01,074 - File['/usr/hdf/current/nifi/conf/bootstrap.conf'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0600}&lt;BR /&gt;2020-01-29 14:55:01,075 - Writing File['/usr/hdf/current/nifi/conf/bootstrap.conf'] because contents don't match&lt;BR /&gt;2020-01-29 14:55:01,078 - File['/usr/hdf/current/nifi/conf/logback.xml'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0400}&lt;BR /&gt;2020-01-29 14:55:01,081 - File['/usr/hdf/current/nifi/conf/state-management.xml'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0400}&lt;BR /&gt;2020-01-29 14:55:01,088 - File['/usr/hdf/current/nifi/conf/authorizers.xml'] {'owner': 'nifi', 'content': ..., 'group': 'nifi', 'mode': 0600}&lt;BR /&gt;2020-01-29 14:55:01,093 - File['/usr/hdf/current/nifi/conf/login-identity-providers.xml'] {'owner': 'nifi', 'content': '&amp;lt;loginIdentityProviders&amp;gt;\n \n \n \n \n &amp;lt;provider&amp;gt;\n &amp;lt;identifier&amp;gt;kerberos-provider&amp;lt;/identifier&amp;gt;\n &amp;lt;class&amp;gt;org.apache.nifi.kerberos.KerberosProvider&amp;lt;/class&amp;gt;\n &amp;lt;property name="Default Realm"&amp;gt;DHUB-FP.COM&amp;lt;/property&amp;gt;\n &amp;lt;property name="Authentication Expiration"&amp;gt;12 hours&amp;lt;/property&amp;gt;\n &amp;lt;/provider&amp;gt;\n \n\n &amp;lt;/loginIdentityProviders&amp;gt;', 'group': 'nifi', 'mode': 0600}&lt;BR /&gt;2020-01-29 14:55:01,095 - File['/usr/hdf/current/nifi/bin/nifi-env.sh'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:01,097 - File['/usr/hdf/current/nifi/conf/bootstrap-notification-services.xml'] {'owner': 'nifi', 'content': '&amp;lt;services&amp;gt;\n \n \n\n \n\n \n &amp;lt;/services&amp;gt;', 'group': 'nifi', 'mode': 0400}&lt;BR /&gt;2020-01-29 14:55:01,099 - File['/usr/hdf/current/nifi/conf/nifi_jaas.conf'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0400}&lt;BR /&gt;2020-01-29 14:55:01,099 - Using repository toolkit script: /usr/hdf/current/nifi-toolkit/bin/encrypt-config.sh&lt;BR /&gt;2020-01-29 14:55:01,099 - File['/usr/hdf/current/nifi-toolkit/bin/encrypt-config.sh'] {'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:01,099 - Encrypting NiFi sensitive configuration properties&lt;BR /&gt;2020-01-29 14:55:01,166 - Execute[('/usr/hdf/current/nifi-toolkit/bin/encrypt-config.sh', '-v', '-b', u'/usr/hdf/current/nifi/conf/bootstrap.conf', '-n', u'/usr/hdf/current/nifi/conf/nifi.properties', '-f', u'/var/lib/nifi/conf/flow.xml.gz', '-s', [PROTECTED], '-l', u'/usr/hdf/current/nifi/conf/login-identity-providers.xml', '-a', u'/usr/hdf/current/nifi/conf/authorizers.xml', '-m', '-e', [PROTECTED], '-p', [PROTECTED])] {'environment': {'JAVA_OPTS': u'-Xms71680m -Xmx71680m', 'JAVA_HOME': u'/usr/lib/jvm/java'}, 'logoutput': False, 'user': 'nifi'}&lt;BR /&gt;2020-01-29 14:55:14,348 - Skipping stack-select on NIFI because it does not exist in the stack-select package structure.&lt;/P&gt;
&lt;P&gt;Command failed after 1 tries&lt;/P&gt;
&lt;/LI-SPOILER&gt;
&lt;P&gt;&lt;STRONG&gt;NiFi version&lt;/STRONG&gt;: 1.9.0&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Ambari Version&lt;/STRONG&gt;: 2.7.3.0&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Java Version&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;openjdk version "1.8.0_191"&lt;BR /&gt;OpenJDK Runtime Environment (build 1.8.0_191-b12)&lt;BR /&gt;OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;OS version&lt;/STRONG&gt;: centos-release-7-6.1810.2.el7.centos.x86_64&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Thank you&lt;/STRONG&gt; in advance for any tips in the right direction.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 30 Jan 2020 18:33:54 GMT</pubDate>
    <dc:creator>DavidR</dc:creator>
    <dc:date>2020-01-30T18:33:54Z</dc:date>
    <item>
      <title>NiFi Toolkit: Can't start NiFi with a ~75MB gzipped flow.xml</title>
      <link>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/288712#M213826</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There is an issue when having a lot of (17.000 +)&amp;nbsp; components in NiFi's canvas resulting in a very large template.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When the &lt;EM&gt;flow.xml.gz&lt;/EM&gt; in &lt;EM&gt;/var/lib/conf/flow.xml.gz&lt;/EM&gt; starts to get large we need to increase maximum heap size for the toolkit JVM (Ambari &amp;gt; NiFi &amp;gt; Advanced nifi-toolkit-env &amp;gt; Toolkit java options) in order for NiFi to start. Normally this solves the issue setting it to &lt;EM&gt;-Xms1024m -Xmx7168m&amp;nbsp;&lt;/EM&gt;or any reasonably high maximum value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The issue is when &lt;EM&gt;flow.xml.gz&lt;/EM&gt; starts to exceed ~70MB, NiFi can't be started even with large amounts of memory (we've tried up to 70GB).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;IDK if this is a memory problem (e.g. we need more RAM) or if we've hit a wall of some kind.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Error:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;ERROR [main] org.apache.nifi.toolkit.encryptconfig.EncryptConfigMain: 
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
	at java.lang.StringCoding.encode(StringCoding.java:350)
	at java.lang.String.getBytes(String.java:941)
	at org.apache.commons.io.IOUtils.write(IOUtils.java:2025)
	at org.apache.commons.io.IOUtils$write$0.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)
	at org.apache.nifi.properties.ConfigEncryptionTool$_writeFlowXmlToFile_closure6$_closure30.doCall(ConfigEncryptionTool.groovy:870)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
	at groovy.lang.Closure.call(Closure.java:414)
	at groovy.lang.Closure.call(Closure.java:430)
	at org.codehaus.groovy.runtime.IOGroovyMethods.withCloseable(IOGroovyMethods.java:1622)
	at org.codehaus.groovy.runtime.NioGroovyMethods.withCloseable(NioGroovyMethods.java:1759)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:54)
	at org.codehaus.groovy.runtime.metaclass.NewInstanceMetaMethod.invoke(NewInstanceMetaMethod.java:56)
	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at org.apache.nifi.properties.ConfigEncryptionTool$_writeFlowXmlToFile_closure6.doCall(ConfigEncryptionTool.groovy:869)
Requested array size exceeds VM limit&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After this point NiFi can't start, automatically deletes / creates a new flow.xml.gz and starts with an empty canvas.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Full log:&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;P&gt;stderr:&lt;BR /&gt;Traceback (most recent call last):&lt;BR /&gt;File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi.py", line 304, in &amp;lt;module&amp;gt;&lt;BR /&gt;Master().execute()&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 352, in execute&lt;BR /&gt;method(env)&lt;BR /&gt;File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi.py", line 143, in start&lt;BR /&gt;self.configure(env, is_starting = True)&lt;BR /&gt;File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi.py", line 111, in configure&lt;BR /&gt;self.write_configurations(params, is_starting)&lt;BR /&gt;File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi.py", line 247, in write_configurations&lt;BR /&gt;support_encrypt_authorizers=params.stack_support_encrypt_authorizers&lt;BR /&gt;File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi_toolkit_util_common.py", line 574, in encrypt_sensitive_properties&lt;BR /&gt;Execute(encrypt_config_command, user=nifi_user, logoutput=False, environment=environment)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/base.py", line 166, in __init__&lt;BR /&gt;self.env.run()&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/environment.py", line 160, in run&lt;BR /&gt;self.run_action(resource, action)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/environment.py", line 124, in run_action&lt;BR /&gt;provider_action()&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/providers/system.py", line 263, in action_run&lt;BR /&gt;returns=self.resource.returns)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 72, in inner&lt;BR /&gt;result = function(command, **kwargs)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 102, in checked_call&lt;BR /&gt;tries=tries, try_sleep=try_sleep, timeout_kill_strategy=timeout_kill_strategy, returns=returns)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 150, in _call_wrapper&lt;BR /&gt;result = _call(command, **kwargs_copy)&lt;BR /&gt;File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 314, in _call&lt;BR /&gt;raise ExecutionFailed(err_msg, code, out, err)&lt;BR /&gt;resource_management.core.exceptions.ExecutionFailed: Execution of '/usr/hdf/current/nifi-toolkit/bin/encrypt-config.sh -v -b /usr/hdf/current/nifi/conf/bootstrap.conf -n /usr/hdf/current/nifi/conf/nifi.properties -f /var/lib/nifi/conf/flow.xml.gz -s '[PROTECTED]' -l /usr/hdf/current/nifi/conf/login-identity-providers.xml -a /usr/hdf/current/nifi/conf/authorizers.xml -m -e '[PROTECTED]' -p '[PROTECTED]'' returned 255.&amp;nbsp;&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Handling encryption of nifi.properties&lt;BR /&gt;2020/01/29 14:55:02 WARN [main] org.apache.nifi.properties.ConfigEncryptionTool: The source nifi.properties and destination nifi.properties are identical [/usr/hdf/current/nifi/conf/nifi.properties] so the original will be overwritten&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Handling encryption of login-identity-providers.xml&lt;BR /&gt;2020/01/29 14:55:02 WARN [main] org.apache.nifi.properties.ConfigEncryptionTool: The source login-identity-providers.xml and destination login-identity-providers.xml are identical [/usr/hdf/current/nifi/conf/login-identity-providers.xml] so the original will be overwritten&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Handling encryption of authorizers.xml&lt;BR /&gt;2020/01/29 14:55:02 WARN [main] org.apache.nifi.properties.ConfigEncryptionTool: The source authorizers.xml and destination authorizers.xml are identical [/usr/hdf/current/nifi/conf/authorizers.xml] so the original will be overwritten&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Handling encryption of flow.xml.gz&lt;BR /&gt;2020/01/29 14:55:02 WARN [main] org.apache.nifi.properties.ConfigEncryptionTool: The source flow.xml.gz and destination flow.xml.gz are identical [/var/lib/nifi/conf/flow.xml.gz] so the original will be overwritten&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: bootstrap.conf: /usr/hdf/current/nifi/conf/bootstrap.conf&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (src) nifi.properties: /usr/hdf/current/nifi/conf/nifi.properties&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (dest) nifi.properties: /usr/hdf/current/nifi/conf/nifi.properties&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (src) login-identity-providers.xml: /usr/hdf/current/nifi/conf/login-identity-providers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (dest) login-identity-providers.xml: /usr/hdf/current/nifi/conf/login-identity-providers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (src) authorizers.xml: /usr/hdf/current/nifi/conf/authorizers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (dest) authorizers.xml: /usr/hdf/current/nifi/conf/authorizers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (src) flow.xml.gz: /var/lib/nifi/conf/flow.xml.gz&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: (dest) flow.xml.gz: /var/lib/nifi/conf/flow.xml.gz&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Key migration mode activated&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.NiFiPropertiesLoader: Loaded 161 properties from /usr/hdf/current/nifi/conf/nifi.properties&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.NiFiPropertiesLoader: Loaded 161 properties from /usr/hdf/current/nifi/conf/nifi.properties&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ProtectedNiFiProperties: There are 3 protected properties of 5 sensitive properties (75%)&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Loaded NiFiProperties instance with 158 properties&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Loaded login identity providers content (14 lines)&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: No encrypted password property elements found in login-identity-providers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: No unencrypted password property elements found in login-identity-providers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Loaded authorizers content (30 lines)&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: No encrypted password property elements found in authorizers.xml&lt;BR /&gt;2020/01/29 14:55:02 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: No unencrypted password property elements found in authorizers.xml&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Decrypted and re-encrypted 56 elements for flow.xml.gz&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Protected nifi.security.keyPasswd with aes/gcm/256 -&amp;gt; l3Bk1iJuJf+Y5yyM||Y7jSBqByRUZPmJa2jxf0x2j2s+2efYYoVxp89PeRmCrXbf7M14wUrjKfq4z85RgKTkh/K49m+cZr2fo&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Updated protection key nifi.security.keyPasswd.protected&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Protected nifi.security.keystorePasswd with aes/gcm/256 -&amp;gt; qK4aq6CsT54K5a+f||XuhbPv7Dn456Gd0UwEnFb8hMn1np9EhsaZgT8cFCeXGRgRmxJ34VAsOZrc9AmzWen73DYU+3cCQ2YB0&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Updated protection key nifi.security.keystorePasswd.protected&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Protected nifi.security.truststorePasswd with aes/gcm/256 -&amp;gt; CtBw7uibRzIGE0+8||q/aQRM/4uVzMLPga0R/noUj5MpruYl/z5xM62/CUUtskgfyv&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Updated protection key nifi.security.truststorePasswd.protected&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Protected nifi.sensitive.props.key with aes/gcm/256 -&amp;gt; NwNIA9WqScpilGSV||L34l7Lsx5NyEmWjqoGTtaGWDhZ8eo34ADw&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Updated protection key nifi.sensitive.props.key.protected&lt;BR /&gt;2020/01/29 14:55:13 INFO [main] org.apache.nifi.properties.ConfigEncryptionTool: Final result: 162 keys including 4 protected keys&lt;BR /&gt;2020/01/29 14:55:13 ERROR [main] org.apache.nifi.toolkit.encryptconfig.EncryptConfigMain:&lt;BR /&gt;java.lang.OutOfMemoryError: Requested array size exceeds VM limit&lt;BR /&gt;at java.lang.StringCoding.encode(StringCoding.java:350)&lt;BR /&gt;at java.lang.String.getBytes(String.java:941)&lt;BR /&gt;at org.apache.commons.io.IOUtils.write(IOUtils.java:2025)&lt;BR /&gt;at org.apache.commons.io.IOUtils$write$0.call(Unknown Source)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)&lt;BR /&gt;at org.apache.nifi.properties.ConfigEncryptionTool$_writeFlowXmlToFile_closure6$_closure30.doCall(ConfigEncryptionTool.groovy:870)&lt;BR /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;BR /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&lt;BR /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&lt;BR /&gt;at java.lang.reflect.Method.invoke(Method.java:498)&lt;BR /&gt;at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)&lt;BR /&gt;at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)&lt;BR /&gt;at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)&lt;BR /&gt;at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)&lt;BR /&gt;at groovy.lang.Closure.call(Closure.java:414)&lt;BR /&gt;at groovy.lang.Closure.call(Closure.java:430)&lt;BR /&gt;at org.codehaus.groovy.runtime.IOGroovyMethods.withCloseable(IOGroovyMethods.java:1622)&lt;BR /&gt;at org.codehaus.groovy.runtime.NioGroovyMethods.withCloseable(NioGroovyMethods.java:1759)&lt;BR /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;BR /&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&lt;BR /&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&lt;BR /&gt;at java.lang.reflect.Method.invoke(Method.java:498)&lt;BR /&gt;at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:54)&lt;BR /&gt;at org.codehaus.groovy.runtime.metaclass.NewInstanceMetaMethod.invoke(NewInstanceMetaMethod.java:56)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)&lt;BR /&gt;at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)&lt;BR /&gt;at org.apache.nifi.properties.ConfigEncryptionTool$_writeFlowXmlToFile_closure6.doCall(ConfigEncryptionTool.groovy:869)&lt;BR /&gt;Requested array size exceeds VM limit&lt;/P&gt;
&lt;P&gt;usage: org.apache.nifi.toolkit.encryptconfig.EncryptConfigMain [-h] [options]&lt;/P&gt;
&lt;P&gt;This tool enables easy encryption and decryption of configuration files for NiFi and its sub-projects. Unprotected files can be input to this tool to be&lt;BR /&gt;protected by a key in a manner that is understood by NiFi. Protected files, along with a key, can be input to this tool to be unprotected, for troubleshooting&lt;BR /&gt;or automation purposes.&lt;/P&gt;
&lt;P&gt;-h,--help Show usage information (this message)&lt;BR /&gt;--nifiRegistry Specifies to target NiFi Registry. When this flag is not included, NiFi is the target.&lt;/P&gt;
&lt;P&gt;When targeting NiFi:&lt;BR /&gt;-h,--help Show usage information (this message)&lt;BR /&gt;-v,--verbose Sets verbose mode (default false)&lt;BR /&gt;-n,--niFiProperties &amp;lt;file&amp;gt; The nifi.properties file containing unprotected config values (will be overwritten unless -o is specified)&lt;BR /&gt;-o,--outputNiFiProperties &amp;lt;file&amp;gt; The destination nifi.properties file containing protected config values (will not modify input nifi.properties)&lt;BR /&gt;-l,--loginIdentityProviders &amp;lt;file&amp;gt; The login-identity-providers.xml file containing unprotected config values (will be overwritten unless -i is&lt;BR /&gt;specified)&lt;BR /&gt;-i,--outputLoginIdentityProviders &amp;lt;file&amp;gt; The destination login-identity-providers.xml file containing protected config values (will not modify input&lt;BR /&gt;login-identity-providers.xml)&lt;BR /&gt;-a,--authorizers &amp;lt;file&amp;gt; The authorizers.xml file containing unprotected config values (will be overwritten unless -u is specified)&lt;BR /&gt;-u,--outputAuthorizers &amp;lt;file&amp;gt; The destination authorizers.xml file containing protected config values (will not modify input authorizers.xml)&lt;BR /&gt;-f,--flowXml &amp;lt;file&amp;gt; The flow.xml.gz file currently protected with old password (will be overwritten unless -g is specified)&lt;BR /&gt;-g,--outputFlowXml &amp;lt;file&amp;gt; The destination flow.xml.gz file containing protected config values (will not modify input flow.xml.gz)&lt;BR /&gt;-b,--bootstrapConf &amp;lt;file&amp;gt; The bootstrap.conf file to persist master key&lt;BR /&gt;-k,--key &amp;lt;keyhex&amp;gt; The raw hexadecimal key to use to encrypt the sensitive properties&lt;BR /&gt;-e,--oldKey &amp;lt;keyhex&amp;gt; The old raw hexadecimal key to use during key migration&lt;BR /&gt;-p,--password &amp;lt;password&amp;gt; The password from which to derive the key to use to encrypt the sensitive properties&lt;BR /&gt;-w,--oldPassword &amp;lt;password&amp;gt; The old password from which to derive the key during migration&lt;BR /&gt;-r,--useRawKey If provided, the secure console will prompt for the raw key value in hexadecimal form&lt;BR /&gt;-m,--migrate If provided, the nifi.properties and/or login-identity-providers.xml sensitive properties will be re-encrypted with&lt;BR /&gt;a new key&lt;BR /&gt;-x,--encryptFlowXmlOnly If provided, the properties in flow.xml.gz will be re-encrypted with a new key but the nifi.properties and/or&lt;BR /&gt;login-identity-providers.xml files will not be modified&lt;BR /&gt;-s,--propsKey &amp;lt;password|keyhex&amp;gt; The password or key to use to encrypt the sensitive processor properties in flow.xml.gz&lt;BR /&gt;-A,--newFlowAlgorithm &amp;lt;algorithm&amp;gt; The algorithm to use to encrypt the sensitive processor properties in flow.xml.gz&lt;BR /&gt;-P,--newFlowProvider &amp;lt;algorithm&amp;gt; The security provider to use to encrypt the sensitive processor properties in flow.xml.gz&lt;BR /&gt;-c,--translateCli Translates the nifi.properties file to a format suitable for the NiFi CLI tool&lt;/P&gt;
&lt;P&gt;When targeting NiFi Registry using the --nifiRegistry flag:&lt;BR /&gt;-h,--help Show usage information (this message)&lt;BR /&gt;-v,--verbose Sets verbose mode (default false)&lt;BR /&gt;-p,--password &amp;lt;password&amp;gt; Protect the files using a password-derived key. If an argument is not provided to this flag, interactive mode will&lt;BR /&gt;be triggered to prompt the user to enter the password.&lt;BR /&gt;-k,--key &amp;lt;keyhex&amp;gt; Protect the files using a raw hexadecimal key. If an argument is not provided to this flag, interactive mode will be&lt;BR /&gt;triggered to prompt the user to enter the key.&lt;BR /&gt;--oldPassword &amp;lt;password&amp;gt; If the input files are already protected using a password-derived key, this specifies the old password so that the&lt;BR /&gt;files can be unprotected before re-protecting.&lt;BR /&gt;--oldKey &amp;lt;keyhex&amp;gt; If the input files are already protected using a key, this specifies the raw hexadecimal key so that the files can&lt;BR /&gt;be unprotected before re-protecting.&lt;BR /&gt;-b,--bootstrapConf &amp;lt;file&amp;gt; The bootstrap.conf file containing no master key or an existing master key. If a new password or key is specified&lt;BR /&gt;(using -p or -k) and no output bootstrap.conf file is specified, then this file will be overwritten to persist the&lt;BR /&gt;new master key.&lt;BR /&gt;-B,--outputBootstrapConf &amp;lt;file&amp;gt; The destination bootstrap.conf file to persist master key. If specified, the input bootstrap.conf will not be&lt;BR /&gt;modified.&lt;BR /&gt;-r,--nifiRegistryProperties &amp;lt;file&amp;gt; The nifi-registry.properties file containing unprotected config values, overwritten if no output file specified.&lt;BR /&gt;-R,--outputNifiRegistryProperties &amp;lt;file&amp;gt; The destination nifi-registry.properties file containing protected config values.&lt;BR /&gt;-a,--authorizersXml &amp;lt;file&amp;gt; The authorizers.xml file containing unprotected config values, overwritten if no output file specified.&lt;BR /&gt;-A,--outputAuthorizersXml &amp;lt;file&amp;gt; The destination authorizers.xml file containing protected config values.&lt;BR /&gt;-i,--identityProvidersXml &amp;lt;file&amp;gt; The identity-providers.xml file containing unprotected config values, overwritten if no output file specified.&lt;BR /&gt;-I,--outputIdentityProvidersXml &amp;lt;file&amp;gt; The destination identity-providers.xml file containing protected config values.&lt;BR /&gt;--decrypt Can be used with -r to decrypt a previously encrypted NiFi Registry Properties file. Decrypted content is printed to&lt;BR /&gt;STDOUT.&lt;BR /&gt;stdout:&lt;BR /&gt;2020-01-29 14:54:59,928 - Stack Feature Version Info: Cluster Stack=3.1, Command Stack=None, Command Version=3.1.0.0-78 -&amp;gt; 3.1.0.0-78&lt;BR /&gt;2020-01-29 14:54:59,944 - Using hadoop conf dir: /usr/hdp/3.1.0.0-78/hadoop/conf&lt;BR /&gt;2020-01-29 14:55:00,197 - Stack Feature Version Info: Cluster Stack=3.1, Command Stack=None, Command Version=3.1.0.0-78 -&amp;gt; 3.1.0.0-78&lt;BR /&gt;2020-01-29 14:55:00,202 - Using hadoop conf dir: /usr/hdp/3.1.0.0-78/hadoop/conf&lt;BR /&gt;2020-01-29 14:55:00,203 - Group['livy'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['spark'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['nifiregistry'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['hdfs'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['zeppelin'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['hadoop'] {}&lt;BR /&gt;2020-01-29 14:55:00,204 - Group['nifi'] {}&lt;BR /&gt;2020-01-29 14:55:00,205 - Group['users'] {}&lt;BR /&gt;2020-01-29 14:55:00,205 - Group['knox'] {}&lt;BR /&gt;2020-01-29 14:55:00,205 - User['yarn-ats'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,206 - User['hive'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,207 - User['infra-solr'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,208 - User['zookeeper'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,208 - User['ams'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,209 - User['tez'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop', 'users'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,210 - User['nifiregistry'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['nifiregistry'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,211 - User['zeppelin'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['zeppelin', 'hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,212 - User['nifi'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['nifi'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,213 - User['logsearch'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,213 - User['livy'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['livy', 'hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,214 - User['spark'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['spark', 'hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,215 - User['ambari-qa'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop', 'users'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,216 - User['hdfs'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hdfs', 'hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,216 - User['yarn'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,217 - User['mapred'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,218 - User['knox'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop', 'knox'], 'uid': None}&lt;BR /&gt;2020-01-29 14:55:00,218 - File['/var/lib/ambari-agent/tmp/changeUid.sh'] {'content': StaticFile('changeToSecureUid.sh'), 'mode': 0555}&lt;BR /&gt;2020-01-29 14:55:00,220 - Execute['/var/lib/ambari-agent/tmp/changeUid.sh ambari-qa /tmp/hadoop-ambari-qa,/tmp/hsperfdata_ambari-qa,/home/ambari-qa,/tmp/ambari-qa,/tmp/sqoop-ambari-qa 0'] {'not_if': '(test $(id -u ambari-qa) -gt 1000) || (false)'}&lt;BR /&gt;2020-01-29 14:55:00,225 - Skipping Execute['/var/lib/ambari-agent/tmp/changeUid.sh ambari-qa /tmp/hadoop-ambari-qa,/tmp/hsperfdata_ambari-qa,/home/ambari-qa,/tmp/ambari-qa,/tmp/sqoop-ambari-qa 0'] due to not_if&lt;BR /&gt;2020-01-29 14:55:00,226 - Group['hdfs'] {}&lt;BR /&gt;2020-01-29 14:55:00,226 - User['hdfs'] {'fetch_nonlocal_groups': True, 'groups': ['hdfs', 'hadoop', u'hdfs']}&lt;BR /&gt;2020-01-29 14:55:00,226 - FS Type: HDFS&lt;BR /&gt;2020-01-29 14:55:00,226 - Directory['/etc/hadoop'] {'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:00,240 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/hadoop-env.sh'] {'content': InlineTemplate(...), 'owner': 'root', 'group': 'hadoop'}&lt;BR /&gt;2020-01-29 14:55:00,240 - Writing File['/usr/hdp/3.1.0.0-78/hadoop/conf/hadoop-env.sh'] because contents don't match&lt;BR /&gt;2020-01-29 14:55:00,241 - Directory['/var/lib/ambari-agent/tmp/hadoop_java_io_tmpdir'] {'owner': 'hdfs', 'group': 'hadoop', 'mode': 01777}&lt;BR /&gt;2020-01-29 14:55:00,256 - Execute[('setenforce', '0')] {'not_if': '(! which getenforce ) || (which getenforce &amp;amp;&amp;amp; getenforce | grep -q Disabled)', 'sudo': True, 'only_if': 'test -f /selinux/enforce'}&lt;BR /&gt;2020-01-29 14:55:00,263 - Skipping Execute[('setenforce', '0')] due to not_if&lt;BR /&gt;2020-01-29 14:55:00,264 - Directory['/var/log/hadoop'] {'owner': 'root', 'create_parents': True, 'group': 'hadoop', 'mode': 0775, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,266 - Directory['/var/run/hadoop'] {'owner': 'root', 'create_parents': True, 'group': 'root', 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,266 - Directory['/var/run/hadoop/hdfs'] {'owner': 'hdfs', 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,267 - Directory['/tmp/hadoop-hdfs'] {'owner': 'hdfs', 'create_parents': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,270 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/commons-logging.properties'] {'content': Template('commons-logging.properties.j2'), 'owner': 'root'}&lt;BR /&gt;2020-01-29 14:55:00,271 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/health_check'] {'content': Template('health_check.j2'), 'owner': 'root'}&lt;BR /&gt;2020-01-29 14:55:00,277 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/log4j.properties'] {'content': InlineTemplate(...), 'owner': 'hdfs', 'group': 'hadoop', 'mode': 0644}&lt;BR /&gt;2020-01-29 14:55:00,286 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/hadoop-metrics2.properties'] {'content': InlineTemplate(...), 'owner': 'hdfs', 'group': 'hadoop'}&lt;BR /&gt;2020-01-29 14:55:00,286 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/task-log4j.properties'] {'content': StaticFile('task-log4j.properties'), 'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:00,287 - File['/usr/hdp/3.1.0.0-78/hadoop/conf/configuration.xsl'] {'owner': 'hdfs', 'group': 'hadoop'}&lt;BR /&gt;2020-01-29 14:55:00,290 - File['/etc/hadoop/conf/topology_mappings.data'] {'owner': 'hdfs', 'content': Template('topology_mappings.data.j2'), 'only_if': 'test -d /etc/hadoop/conf', 'group': 'hadoop', 'mode': 0644}&lt;BR /&gt;2020-01-29 14:55:00,294 - File['/etc/hadoop/conf/topology_script.py'] {'content': StaticFile('topology_script.py'), 'only_if': 'test -d /etc/hadoop/conf', 'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:00,297 - Skipping unlimited key JCE policy check and setup since the Java VM is not managed by Ambari&lt;BR /&gt;2020-01-29 14:55:00,304 - Skipping stack-select on NIFI because it does not exist in the stack-select package structure.&lt;BR /&gt;2020-01-29 14:55:00,647 - Stack Feature Version Info: Cluster Stack=3.1, Command Stack=None, Command Version=3.1.0.0-78 -&amp;gt; 3.1.0.0-78&lt;BR /&gt;2020-01-29 14:55:00,704 - File['/var/lib/ambari-agent/tmp/run_ca.sh'] {'owner': 'nifi', 'content': StaticFile('run_ca.sh'), 'group': 'nifi', 'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:00,706 - Changing owner of package files&lt;BR /&gt;2020-01-29 14:55:00,706 - Directory['/usr/hdf/current/nifi-toolkit'] {'group': 'nifi', 'cd_access': 'a', 'recursion_follow_links': True, 'create_parents': False, 'recursive_ownership': True, 'owner': 'nifi', 'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:00,710 - Directory['/var/run/nifi'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,711 - Directory['/var/lib/nifi'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,807 - Directory['/var/lib/nifi/database_repository'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,807 - Directory['/hadoopfs/fs1/nifi/flowfile_repository'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,808 - Directory['/hadoopfs/fs1/nifi/provenance_repository'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,810 - Directory['/usr/hdf/current/nifi/conf'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,812 - Directory['/var/lib/nifi/conf'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,812 - Directory['/var/lib/nifi/state/local'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,814 - Directory['/usr/hdf/current/nifi/lib'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,817 - Directory['/hadoopfs/fs1/nifi/content_repository'] {'owner': 'nifi', 'create_parents': True, 'group': 'nifi', 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,896 - Directory['/hadoopfs/fs1/nifi/content_repository'] {'owner': 'nifi', 'group': 'nifi', 'create_parents': True, 'recursive_ownership': True, 'cd_access': 'a'}&lt;BR /&gt;2020-01-29 14:55:00,962 - Directory['/etc/security/limits.d'] {'owner': 'root', 'create_parents': True, 'group': 'root'}&lt;BR /&gt;2020-01-29 14:55:00,966 - File['/etc/security/limits.d/nifi.conf'] {'content': Template('nifi.conf.j2'), 'owner': 'root', 'group': 'root', 'mode': 0644}&lt;BR /&gt;2020-01-29 14:55:00,968 - PropertiesFile['/usr/hdf/current/nifi/conf/nifi.properties'] {'owner': 'nifi', 'group': 'nifi', 'mode': 0600, 'properties': ...}&lt;BR /&gt;2020-01-29 14:55:00,973 - Generating properties file: /usr/hdf/current/nifi/conf/nifi.properties&lt;BR /&gt;2020-01-29 14:55:00,973 - File['/usr/hdf/current/nifi/conf/nifi.properties'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0600, 'encoding': 'UTF-8'}&lt;BR /&gt;2020-01-29 14:55:01,070 - Writing File['/usr/hdf/current/nifi/conf/nifi.properties'] because contents don't match&lt;BR /&gt;2020-01-29 14:55:01,074 - File['/usr/hdf/current/nifi/conf/bootstrap.conf'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0600}&lt;BR /&gt;2020-01-29 14:55:01,075 - Writing File['/usr/hdf/current/nifi/conf/bootstrap.conf'] because contents don't match&lt;BR /&gt;2020-01-29 14:55:01,078 - File['/usr/hdf/current/nifi/conf/logback.xml'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0400}&lt;BR /&gt;2020-01-29 14:55:01,081 - File['/usr/hdf/current/nifi/conf/state-management.xml'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0400}&lt;BR /&gt;2020-01-29 14:55:01,088 - File['/usr/hdf/current/nifi/conf/authorizers.xml'] {'owner': 'nifi', 'content': ..., 'group': 'nifi', 'mode': 0600}&lt;BR /&gt;2020-01-29 14:55:01,093 - File['/usr/hdf/current/nifi/conf/login-identity-providers.xml'] {'owner': 'nifi', 'content': '&amp;lt;loginIdentityProviders&amp;gt;\n \n \n \n \n &amp;lt;provider&amp;gt;\n &amp;lt;identifier&amp;gt;kerberos-provider&amp;lt;/identifier&amp;gt;\n &amp;lt;class&amp;gt;org.apache.nifi.kerberos.KerberosProvider&amp;lt;/class&amp;gt;\n &amp;lt;property name="Default Realm"&amp;gt;DHUB-FP.COM&amp;lt;/property&amp;gt;\n &amp;lt;property name="Authentication Expiration"&amp;gt;12 hours&amp;lt;/property&amp;gt;\n &amp;lt;/provider&amp;gt;\n \n\n &amp;lt;/loginIdentityProviders&amp;gt;', 'group': 'nifi', 'mode': 0600}&lt;BR /&gt;2020-01-29 14:55:01,095 - File['/usr/hdf/current/nifi/bin/nifi-env.sh'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:01,097 - File['/usr/hdf/current/nifi/conf/bootstrap-notification-services.xml'] {'owner': 'nifi', 'content': '&amp;lt;services&amp;gt;\n \n \n\n \n\n \n &amp;lt;/services&amp;gt;', 'group': 'nifi', 'mode': 0400}&lt;BR /&gt;2020-01-29 14:55:01,099 - File['/usr/hdf/current/nifi/conf/nifi_jaas.conf'] {'owner': 'nifi', 'content': InlineTemplate(...), 'group': 'nifi', 'mode': 0400}&lt;BR /&gt;2020-01-29 14:55:01,099 - Using repository toolkit script: /usr/hdf/current/nifi-toolkit/bin/encrypt-config.sh&lt;BR /&gt;2020-01-29 14:55:01,099 - File['/usr/hdf/current/nifi-toolkit/bin/encrypt-config.sh'] {'mode': 0755}&lt;BR /&gt;2020-01-29 14:55:01,099 - Encrypting NiFi sensitive configuration properties&lt;BR /&gt;2020-01-29 14:55:01,166 - Execute[('/usr/hdf/current/nifi-toolkit/bin/encrypt-config.sh', '-v', '-b', u'/usr/hdf/current/nifi/conf/bootstrap.conf', '-n', u'/usr/hdf/current/nifi/conf/nifi.properties', '-f', u'/var/lib/nifi/conf/flow.xml.gz', '-s', [PROTECTED], '-l', u'/usr/hdf/current/nifi/conf/login-identity-providers.xml', '-a', u'/usr/hdf/current/nifi/conf/authorizers.xml', '-m', '-e', [PROTECTED], '-p', [PROTECTED])] {'environment': {'JAVA_OPTS': u'-Xms71680m -Xmx71680m', 'JAVA_HOME': u'/usr/lib/jvm/java'}, 'logoutput': False, 'user': 'nifi'}&lt;BR /&gt;2020-01-29 14:55:14,348 - Skipping stack-select on NIFI because it does not exist in the stack-select package structure.&lt;/P&gt;
&lt;P&gt;Command failed after 1 tries&lt;/P&gt;
&lt;/LI-SPOILER&gt;
&lt;P&gt;&lt;STRONG&gt;NiFi version&lt;/STRONG&gt;: 1.9.0&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Ambari Version&lt;/STRONG&gt;: 2.7.3.0&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Java Version&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;openjdk version "1.8.0_191"&lt;BR /&gt;OpenJDK Runtime Environment (build 1.8.0_191-b12)&lt;BR /&gt;OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;OS version&lt;/STRONG&gt;: centos-release-7-6.1810.2.el7.centos.x86_64&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Thank you&lt;/STRONG&gt; in advance for any tips in the right direction.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Jan 2020 18:33:54 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/288712#M213826</guid>
      <dc:creator>DavidR</dc:creator>
      <dc:date>2020-01-30T18:33:54Z</dc:date>
    </item>
    <item>
      <title>Re: NiFi Toolkit: Can't start NiFi with a ~75MB gzipped flow.xml</title>
      <link>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/288718#M213828</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/70071"&gt;@DavidR&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That is one extremely large flow.xml.gz.&amp;nbsp; I would guess that once uncompressed it falls in the ~1.5 GB size range.&amp;nbsp; My guess is that you have a large number of templates loaded in your NiFi.&lt;BR /&gt;&lt;BR /&gt;The Encrypt-Config toolkit serializes the flow.xml.gz in memory in order to re-encrypt the sensitive properties.&lt;BR /&gt;The "&lt;SPAN&gt;Requested array size exceeds VM limit" is telling you that the action taken has created an array that exceeds the max JVM array size of&amp;nbsp;2^31-1 elements.&amp;nbsp; Increasing the JVM heap size will not change this max supportable array size.&lt;BR /&gt;&lt;BR /&gt;NiFi then ends up with no flow.xml.gz because as a result of the failed encrypt config toolkiit operation, no re-encrypted flow.xml.gz was produced as output.&amp;nbsp; &amp;nbsp;So on next restart attempt of NiFi service, it starts fine and creates a blank flow.xml.gz since one did not exist.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;This is documented in this bug:&amp;nbsp;&lt;A href="https://issues.apache.org/jira/browse/NIFI-6999" target="_blank"&gt;https://issues.apache.org/jira/browse/NIFI-6999&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;Workaround for this issue:&lt;BR /&gt;1. Start your NiFi nodes from command line rather then via Ambari.&amp;nbsp; ( &amp;lt;path to nifi&amp;gt;/bin/nifi.sh start )&lt;BR /&gt;2. Once NiFi cluster is back up and running, download and then delete templates stored in NiFi.&amp;nbsp; &amp;nbsp;Access the global menu (upper right corner) --&amp;gt; Templates.&amp;nbsp; This opens a list of all stored NiFi templates.&amp;nbsp; One by one download (optional) and delete each template.&amp;nbsp; Removing stored templates does not affect anything instantiated to the canvas.&lt;BR /&gt;&lt;BR /&gt;These actions should greatly reduce the size of your flow.xml.gz.&amp;nbsp; Then try restarting NiFi via Ambari again.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Hope this helps,&lt;/P&gt;&lt;P&gt;Matt&lt;/P&gt;</description>
      <pubDate>Thu, 30 Jan 2020 19:20:29 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/288718#M213828</guid>
      <dc:creator>MattWho</dc:creator>
      <dc:date>2020-01-30T19:20:29Z</dc:date>
    </item>
    <item>
      <title>Re: NiFi Toolkit: Can't start NiFi with a ~75MB gzipped flow.xml</title>
      <link>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/288726#M213834</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/35454"&gt;@MattWho&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you so much for the clarification, pointing us in the right direction and for the proposed workaround. We're going to try that and come to you with feedback. Your contribution to this community is invaluable.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;</description>
      <pubDate>Thu, 30 Jan 2020 21:53:15 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/288726#M213834</guid>
      <dc:creator>DavidR</dc:creator>
      <dc:date>2020-01-30T21:53:15Z</dc:date>
    </item>
    <item>
      <title>Re: NiFi Toolkit: Can't start NiFi with a ~75MB gzipped flow.xml</title>
      <link>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/289798#M214470</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/35454"&gt;@MattWho&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sorry for the delay.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Workaround for this issue:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Start your NiFi nodes from command line rather then via Ambari.&amp;nbsp; ( &amp;lt;path to nifi&amp;gt;/bin/nifi.sh start )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;When I try to start this flow in a separate testing cluster using&amp;nbsp;&amp;lt;path to nifi&amp;gt;/bin/nifi.sh start I get:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;ERROR [main] org.apache.nifi.NiFi Failure to launch NiFi due to java.lang.IllegalArgumentException: There was an issue decrypting protected properties
java.lang.IllegalArgumentException: There was an issue decrypting protected properties
at org.apache.nifi.NiFi.initializeProperties(NiFi.java:337)
at org.apache.nifi.NiFi.convertArgumentsToValidatedNiFiProperties(NiFi.java:305)
at org.apache.nifi.NiFi.main(NiFi.java:296)
Caused by: org.apache.nifi.properties.SensitivePropertyProtectionException: The provider factory cannot generate providers without a key
at org.apache.nifi.properties.AESSensitivePropertyProviderFactory.getProvider(AESSensitivePropertyProviderFactory.java:40)
at org.apache.nifi.properties.NiFiPropertiesLoader.getSensitivePropertyProvider(NiFiPropertiesLoader.java:190)
at org.apache.nifi.properties.NiFiPropertiesLoader.load(NiFiPropertiesLoader.java:249)
at org.apache.nifi.properties.NiFiPropertiesLoader.load(NiFiPropertiesLoader.java:266)
at org.apache.nifi.properties.NiFiPropertiesLoader.loadDefault(NiFiPropertiesLoader.java:173)
at org.apache.nifi.properties.NiFiPropertiesLoader.get(NiFiPropertiesLoader.java:284)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.nifi.NiFi.initializeProperties(NiFi.java:332)
... 2 common frames omitted&lt;/LI-CODE&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Is this caused by trying to launch the flow. in another environment or am I supposed&amp;nbsp;to configure something before trying to launch nifi this way?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks in advance once again,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;David Resende&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 14 Feb 2020 11:45:09 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/289798#M214470</guid>
      <dc:creator>DavidR</dc:creator>
      <dc:date>2020-02-14T11:45:09Z</dc:date>
    </item>
    <item>
      <title>Re: NiFi Toolkit: Can't start NiFi with a ~75MB gzipped flow.xml</title>
      <link>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/289825#M214487</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/70071"&gt;@DavidR&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;NiFi requires that a sensitive properties key has been configured.&amp;nbsp; The Sensitive properties key is used to encrypt all passwords written to the flow.xml.gz file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The flow.xml.gz is not portable between different installations of NiFi unless at least 1 of the 2 following is true:&lt;BR /&gt;&lt;BR /&gt;1. Both NiFi installations are using the exact same sensitive properties key in the nif.properties file:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;nifi.sensitive.props.key=&lt;/LI-CODE&gt;&lt;P&gt;All the sensitive properties (passwords) entered in to components configured in your dataflows contained within the flow.xml.gz are encrypted.&amp;nbsp; NiFi will fail to start if it cannot decrypt these sensitive properties as the flow.xml.gz is uncompressed and loaded in to memory.&lt;/P&gt;&lt;P&gt;2. The&amp;nbsp; flow.xml.gz contains no encrypted sensitive properties.&amp;nbsp; If you do not know the sensitive properties key used on NiFi where the flow.xml.gz was obtained, you can uncompress the flow.xml.gz yourself and remove all occurrences of "enc{.*}".&amp;nbsp; For example:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;value&amp;gt;enc{2fecf4bbb0456fd10c088f73aab2b3c3e92b532afa46eb042f0b0a14b06b1b60}&amp;lt;/value&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;would be replaced with:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;Then gzip the flow.xml again. This removes all passwords from your flow.xml.gz will allowing it to be loaded by any new NiFi installation.&amp;nbsp; You will then need to go through your components and set the passwords again which will then get encrypted to the flow.xml.gz using the sensitive props key set on that NiFi.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this helps,&lt;/P&gt;&lt;P&gt;Matt&lt;/P&gt;</description>
      <pubDate>Fri, 14 Feb 2020 17:50:16 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/289825#M214487</guid>
      <dc:creator>MattWho</dc:creator>
      <dc:date>2020-02-14T17:50:16Z</dc:date>
    </item>
    <item>
      <title>Re: NiFi Toolkit: Can't start NiFi with a ~75MB gzipped flow.xml</title>
      <link>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/289988#M214598</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/35454"&gt;@MattWho&lt;/a&gt;&amp;nbsp;Thank you once again for the information posted here. It solved our problem.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was able to run the flow in another cluster using nifi.sh instead of running it with ambari (and the encrypt tool it uses).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;copying&amp;nbsp;nifi.sensitive.props.key in /etc/nifi/conf/nifi.properties&amp;nbsp;from source cluster did the trick.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Feb 2020 16:37:27 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/NiFi-Toolkit-Can-t-start-NiFi-with-a-75MB-gzipped-flow-xml/m-p/289988#M214598</guid>
      <dc:creator>DavidR</dc:creator>
      <dc:date>2020-02-18T16:37:27Z</dc:date>
    </item>
  </channel>
</rss>

