我在docker中运行NiFi,并将所有相关目录安装为卷。我尝试修改nifi.properties文件中的某些设置,特别是添加自定义属性文件。但是,当我重新启动NiFi时,某些属性将恢复为原始值。
这是我当前的nifi.properties文件的示例:
nifi.ui.autorefresh.interval=5 sec
...
nifi.variable.registry.properties=
Run Code Online (Sandbox Code Playgroud)
如果再将文件更改为以下内容:
nifi.ui.autorefresh.interval=3 sec
...
nifi.variable.registry.properties=./conf/custom.properties
Run Code Online (Sandbox Code Playgroud)
然后重新启动NiFi,它会打印多行replacing target file /opt/nifi/nifi-current/conf/nifi.properties,然后启动UI。当我再次检查nifi.properties文件时,它看起来像:
nifi.ui.autorefresh.interval=3 sec
...
nifi.variable.registry.properties=
Run Code Online (Sandbox Code Playgroud)
由于某些原因,nifi.ui.autorefresh.interval属性将成功更新,但nifi.variable.registry.properties属性不会成功更新。
为什么有些价值观拒绝采用,我如何才能使它们在启动过程中生存下来?
小智 5
有些道具只能使用ENV vars设置(除黑客攻击外)。如果您看下面的命令,您可以找出来。如您所见,nifi.variable.registry.properties是其中之一。
cat /opt/nifi/scripts/start.sh | grep prop_replace
prop_replace 'nifi.web.http.port' "${NIFI_WEB_HTTP_PORT:-8080}"
prop_replace 'nifi.web.http.host' "${NIFI_WEB_HTTP_HOST:-$HOSTNAME}"
prop_replace 'nifi.remote.input.host' "${NIFI_REMOTE_INPUT_HOST:-$HOSTNAME}"
prop_replace 'nifi.remote.input.socket.port' "${NIFI_REMOTE_INPUT_SOCKET_PORT:-10000}"
prop_replace 'nifi.remote.input.secure' 'false'
prop_replace 'baseUrl' "http://${NIFI_WEB_HTTP_HOST:-$HOSTNAME}:${NIFI_WEB_HTTP_PORT:-8080}" ${nifi_toolkit_props_file}
prop_replace 'nifi.variable.registry.properties' "${NIFI_VARIABLE_REGISTRY_PROPERTIES:-}"
prop_replace 'nifi.cluster.is.node' "${NIFI_CLUSTER_IS_NODE:-false}"
prop_replace 'nifi.cluster.node.address' "${NIFI_CLUSTER_ADDRESS:-$HOSTNAME}"
prop_replace 'nifi.cluster.node.protocol.port' "${NIFI_CLUSTER_NODE_PROTOCOL_PORT:-}"
prop_replace 'nifi.cluster.node.protocol.threads' "${NIFI_CLUSTER_NODE_PROTOCOL_THREADS:-10}"
prop_replace 'nifi.cluster.node.protocol.max.threads' "${NIFI_CLUSTER_NODE_PROTOCOL_MAX_THREADS:-50}"
prop_replace 'nifi.zookeeper.connect.string' "${NIFI_ZK_CONNECT_STRING:-}"
prop_replace 'nifi.zookeeper.root.node' "${NIFI_ZK_ROOT_NODE:-/nifi}"
prop_replace 'nifi.cluster.flow.election.max.wait.time' "${NIFI_ELECTION_MAX_WAIT:-5 mins}"
prop_replace 'nifi.cluster.flow.election.max.candidates' "${NIFI_ELECTION_MAX_CANDIDATES:-}"
prop_replace 'nifi.web.proxy.context.path' "${NIFI_WEB_PROXY_CONTEXT_PATH:-}"
prop_replace 'nifi.security.user.login.identity.provider' 'ldap-provider'
Run Code Online (Sandbox Code Playgroud)