{"id":334150,"date":"2022-06-07T09:00:43","date_gmt":"2022-06-07T09:00:43","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=334150"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=334150","title":{"rendered":"<span>Apache NiFi: \u043a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0433\u0443\u0433\u043b\u044f\u0442\u0441\u044f<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a Apache NiFi \u0438 Zookeeper, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e LDAP \u0438 \u0440\u0430\u0431\u043e\u0442\u0430 NiFi \u043f\u043e HTTPS, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a Apache NiFi Registry, \u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 NiFi c Kerberos \u2014 \u0432\u043e\u0442 \u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/st\/ds\/nh\/stdsnhrxoqf9vanduxvwre5ablg.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/st\/ds\/nh\/stdsnhrxoqf9vanduxvwre5ablg.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041d\u0435 \u0432\u0438\u0436\u0443 \u0441\u043c\u044b\u0441\u043b\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c NiFi \u0438 NiFi Registry \u2014 \u0435\u0441\u0442\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0438 \u043c\u0430\u043d\u0443\u0430\u043b\u044b \u0432 \u0441\u0435\u0442\u0438. \u042f \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430\u0445, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435\u0442, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c. \u041f\u0440\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043c\u0430\u0441\u0441\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u042f \u043f\u0440\u043e\u0432\u0435\u043b \u043c\u0435\u0441\u044f\u0446\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 DEBUG \u0438 TRACE, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0432\u0441\u0451 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u0413\u043e\u0442\u043e\u0432 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0441\u044f.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, NiFi (Niagara Files) \u2013 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0423 \u043d\u0430\u0441 \u043e\u043d\u0430 \u0447\u0438\u0442\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0437 \u041a\u0430\u0444\u043a\u0438 \u0438 \u043a\u043b\u0430\u0434\u0435\u0442 \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u0437 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430. <\/p>\n<p>  \u0412 \u0445\u043e\u0434\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0438 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 NiFi \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437, \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0439 \u043d\u0430 Ansible, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b NiFi \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435. <\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a Apache NiFi<\/h2>\n<p>  \u0412 \u0413\u0440\u0443\u043f\u043f\u0435 \u041d\u041b\u041c\u041a \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a NiFi \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Ansible Playbooks, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430 \u00ab\u0433\u043e\u043b\u044b\u0435\u00bb \u0412\u041c \u0441\u0442\u0430\u0432\u044f\u0442 \u0441\u043e\u0444\u0442, \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u044e\u0442 \u0434\u0438\u0441\u043a\u0438, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440\u044b, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442 zookepeer, \u0430 \u0434\u0430\u043b\u0435\u0435 \u0438 \u0441\u0430\u043c NiFi.<\/p>\n<p>  \u042f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e LDAP, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443 \u0432\u0430\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 AD (\u043d\u0435 \u0431\u0443\u0434\u0443 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0410D \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c, \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u044d\u0442\u043e \u0443\u0436\u0435 \u0435\u0441\u0442\u044c).<\/p>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 NiFi \u043f\u043e HTTPS \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0437\u0434\u0435\u0441\u044c\u00a0Securing NiFi with Provided Certificates. \u0412 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0431\u044b\u043b\u0438. \u0422\u0443\u0442 \u043d\u0435 \u0431\u0443\u0434\u0443 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0438\u0445 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0442\u044c, \u043b\u0438\u0448\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c identity mapping \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 NiFi \u0438 NiFi Registry.<\/p>\n<p>  \u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b NiFi \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c zookeeper.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a Zookeeper<\/h2>\n<p>  NiFi \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u0431\u0435\u0437 zookeeper. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c zookeeper \u0431\u044b\u0441\u0442\u0440\u043e.<\/p>\n<pre><code class=\"plaintext\">&lt;b>docker-compose.yaml&lt;\/b>  --- version: '3.5'  services:   zookeeper:     image: 'bitnami\/zookeeper:3.7.0'     hostname: nifi-test-node-1.mycompany     restart: unless-stopped     ports:       - '2181:2181'       - '2888:2888'       - '3888:3888'     env_file:       - zookeeper.env     volumes:       - zookeeper_data:\/bitnami  volumes:   zookeeper_data:     driver: local ...<\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043e\u0431\u0440\u0430\u0437\u0430 bitnami\/ zookeeper \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c <a href=\"https:\/\/github.com\/bitnami\/bitnami-docker-zookeeper\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>  \u0414\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u041d\u0438\u0436\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. <\/p>\n<pre><code class=\"plaintext\">&lt;b>zookeeper.env&lt;\/b> # ID \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0437\u043e\u043e\u043a\u0438\u043f\u0435\u0440\u0430 ZOO_SERVER_ID=1  # \u0417\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0442\u044c\u0441\u044f \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e ALLOW_ANONYMOUS_LOGIN=NO # \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e ZOO_ENABLE_AUTH=yes # \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 ZOO_SERVER_USERS=user1,user1 # \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u043e\u043b\u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 ZOO_SERVER_PASSWORDS=password1,password2 # \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043d\u043e\u0434 Zookeeper ZOO_CLIENT_USER=user1 # \u041f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f ZOO_CLIENT_PASSWORD=password1 # \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u043e\u0434\u044b Zookeeper \u0438 ZOO_SERVER_ID \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0434\u0430\u043c\u0438 ZOO_SERVERS=nifi-test-node-1.mycompany:2888:3888::1,nifi-test-node-2.mycompany:2888:3888::2,nifi-test-node-3.mycompany:2888:3888::3 ZOO_ENABLE_PROMETHEUS_METRICS=YES<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a zookeeper \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u0438 \u0432\u0441\u0435 \u043d\u043e\u0434\u044b \u0432\u043e\u0439\u0434\u0443\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0432 \u043b\u043e\u0433\u0430\u0445 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u044b. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u0442\u043e NiFi \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a Zookeeper.<\/p>\n<p>  <b>\u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 Zookeeper:<\/b> <\/p>\n<ul>\n<li>\u041e\u0448\u0438\u0431\u043a\u0430 Zookeeper &#171;<code>Cannot open channel to 2 at election address nifi-test-node-2.mycompany\/ip:3888 java.net.ConnectException: Connection refused (Connection refused)<\/code>&#187; \u043e\u0448\u0438\u0431\u043a\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043b\u0438\u0431\u043e \u043d\u043e\u0434\u0430 <code>zookeeper nifi-test-node-2.mycompany<\/code> \u0435\u0449\u0435 \u043d\u0435 \u043f\u043e\u0434\u043d\u044f\u0442\u0430. \u041b\u0438\u0431\u043e \u0432\u0442\u043e\u0440\u0430\u044f \u043d\u043e\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0441\u0435\u0431\u044f \u0434\u0440\u0443\u0433\u043e\u0439 1 \u0438\u043b\u0438 3, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 zookeeper \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0439\u0442\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b <code>ZOO_SERVER_ID<\/code> \u0438 <code>ZOO_SERVERS<\/code>, \u0432 <code>ZOO_SERVERS<\/code> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b \u0443\u043a\u0430\u0437\u0430\u043d ID \u0443 \u043d\u043e\u0434\u044b.<\/li>\n<li>\u0415\u0441\u043b\u0438 \u0436\u0435 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 zookeeper \u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 zoo.cfg \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 <code>server.1=nifi-test-node-1.mycompany:2888:3888 server.2=nifi-test-node-2.mycompany:2888:3888<\/code> \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \/data\/myid \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0443 \u043d\u043e\u0434\u044b zookeeper.<\/li>\n<li>\u041e\u0448\u0438\u0431\u043a\u0430 NiFi (\u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442, \u0435\u0441\u043b\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Zookeeper) &#171;<code>WARN [main] o.a.nifi.controller.StandardFlowService There is currently no Cluster Coordinator. This often happens upon restart of NiFi when running an embedded ZooKeeper. Will register this node to become the active Cluster Coordinator and will attempt to connect to cluster again.<\/code>&#187; \u0414\u0430\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432 NiFi, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 zookeeper, \u0438 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u043a \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c\u0443, \u043d\u043e \u0443 nifi \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 zookeeper (\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435). \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 <code>conf\/nifi.properties\u00a0nifi.state.management.embedded.zookeeper.start=false<\/code>.\n<p>  \u0422. \u0435. \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0434\u0432\u0443\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445: 1) \u043a\u043e\u0433\u0434\u0430 nifi \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u043a \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c\u0443 zookeeper \u2013 \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c 2) \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0443\u043c\u0430\u043b\u0447\u0438\u0432\u0430\u0435\u0442: \u043a\u043e\u0433\u0434\u0430 nifi \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u043a \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 zookeeper.<\/p>\n<p>  \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 NiFi conf\/nifi.properties: <code>nifi.zookeeper.connect.string=nifi-test-node-1.mycompany:2181,nifi-test-node-1.mycompany:2181,nifi-test-node-1.mycompany:2181<\/code>  <\/li>\n<\/ul>\n<p>  <\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a Apache NiFi<\/h2>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Zookeeper, \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 NiFi. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u044f \u0440\u0430\u0437\u0431\u0435\u0440\u0443 \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c, \u0435\u0441\u043b\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440.<br \/>  \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 NiFi \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e LDAP:<\/p>\n<p>  1) conf\/nifi.properties<\/p>\n<p>  \u0412\u043e\u0442 \u0431\u043b\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b NiFi \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0441\u044f \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<pre><code class=\"plaintext\">&lt;b>nifi.properties&lt;\/b> # ... - \u041c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439  # Site to Site properties # ... # \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430 True nifi.remote.input.secure=True  # web properties # # \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u043e https \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b nifi.web.http.host \u0438 nifi.web.http.port \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u043f\u0443\u0441\u0442\u044b\u043c\u0438 nifi.web.http.host= nifi.web.http.port= nifi.web.http.network.interface.default= # \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u043e https \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b nifi.web.https.host \u0438 nifi.web.https.port nifi.web.https.host=nifi-test-node-1.mycompany nifi.web.https.port=9091 nifi.web.https.network.interface.default=  #... # \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430 \u043d\u043e\u0434\u044b NiFi \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0434\u0435\u0441\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u044c web proxy host nifi.web.proxy.host=my-test-nifi-proxy.com #...  # security properties # # \u0414\u043e NiFi 1.14 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c \u0438 \u0432\u0430\u0448 flow \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0431\u044b \u043d\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u0441\u044f, \u0438 NiFi \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0431\u044b \u0432 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 # C \u0432\u0435\u0440\u0441\u0438\u0435\u0439 NiFi \u0432\u044b\u0448\u0435 1.14 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0438\u043d\u0430\u0447\u0435 NiFi \u0432\u044b\u0434\u0430\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0443. nifi.sensitive.props.key=&lt;\u0432\u0430\u0448\u0435_\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435_\u043a\u043b\u044e\u0447\u0430> #...  # \u0422\u0430\u043a \u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0443\u0442\u0438 \u0434\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0438 \u0438\u0445 \u043f\u0430\u0440\u043e\u043b\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 NiFi \u0432 secure \u0440\u0435\u0436\u0438\u043c\u0435 nifi.security.keystore=\/etc\/ssl\/keystore.jks nifi.security.keystoreType=JKS nifi.security.keystorePasswd=&lt;\u043f\u0430\u0440\u043e\u043b\u044c> nifi.security.keyPasswd=&lt;\u043f\u0430\u0440\u043e\u043b\u044c> nifi.security.truststore=\/etc\/ssl\/truststore.jks nifi.security.truststoreType=JKS nifi.security.truststorePasswd=&lt;\u043f\u0430\u0440\u043e\u043b\u044c> nifi.security.user.authorizer=managed-authorizer nifi.security.allow.anonymous.authentication=false # \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 nifi.security.user.login.identity.provider=ldap-provider  #... # Identity Mapping Properties # # \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 # \u0414\u0430\u043d\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u0435\u043c\u043d\u0442\u0430\u0446\u0438\u044f \u0442\u0443\u0442 https:\/\/docs.cloudera.com\/HDPDocuments\/HDF3\/HDF-3.2.0\/nifi-system-properties\/content\/identity-mapping-properties.html nifi.security.identity.mapping.pattern.dn=^L=(.*?), ST=(.*?), C=(.*?), OU=(.*?), O=(.*?),.*?$ nifi.security.identity.mapping.value.dn=$4@$5 nifi.security.identity.mapping.transform.dn=LOWER  # cluster node properties (only configure for cluster nodes) # # \u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 NiFi \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 True \u0432 nifi.cluster.is.node \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0432\u0430\u0448\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430\u043c # \u0438\u043d\u0430\u0447\u0435 \u043d\u043e\u0434\u0430 NiFi \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0446\u0435\u043f\u043b\u044f\u0442\u044c\u0441\u044f \u043a \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443 nifi.cluster.is.node=True nifi.cluster.node.address=nifi-test-node-1.mycompany nifi.cluster.node.protocol.port=9088 nifi.cluster.node.protocol.threads=10 nifi.cluster.node.protocol.max.threads=50 nifi.cluster.node.event.history.size=25 nifi.cluster.node.connection.timeout=5 sec nifi.cluster.node.read.timeout=5 sec nifi.cluster.node.max.concurrent.requests=100 nifi.cluster.firewall.file= nifi.cluster.flow.election.max.wait.time=5 mins nifi.cluster.flow.election.max.candidates=  # zookeeper properties, used for cluster management # # \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u043c zookeeper,\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u0440\u0430\u043d\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b nifi.zookeeper.* nifi.zookeeper.connect.string=nifi-test-node-1.mycompany:2181,nifi-test-node-2.mycompany:2181,nifi-test-node-3.mycompany:2181 nifi.zookeeper.connect.timeout=10 secs nifi.zookeeper.session.timeout=10 secs nifi.zookeeper.root.node=\/nifi<\/code><\/pre>\n<p>  <\/p>\n<ol>\n<li>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u043e https \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b nifi.web.http.host \u0438 nifi.web.http.port \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u043f\u0443\u0441\u0442\u044b\u043c\u0438.<\/li>\n<li>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u043e https \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b nifi.web.https.host \u0438 nifi.web.https.port.<\/li>\n<li>\u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435, \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c\u0438, \u0442\u043e NiFi \u0432\u044b\u0434\u0430\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 &#171;<code>IllegalStateException: Only one of the HTTP and HTTPS connectors can be configured at one time<\/code>&#171;.<\/li>\n<li>\u0414\u043e NiFi 1.14 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e <code>nifi.sensitive.props.key=&lt;\u0432\u0430\u0448\u0435_\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435_\u043a\u043b\u044e\u0447\u0430><\/code> \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c \u0438 \u0432\u0430\u0448 flow \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0431\u044b \u043d\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u0441\u044f, \u0438 NiFi \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0431\u044b \u0432 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.\n<p>  C \u0432\u0435\u0440\u0441\u0438\u0435\u0439 NiFi \u0432\u044b\u0448\u0435 1.14 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0438\u043d\u0430\u0447\u0435 NiFi \u0432\u044b\u0434\u0430\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 &#171;<code>IllegalArgumentException: There was an issue decrypting protected properties<\/code>&#171;<\/li>\n<li>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b nifi.security.identity.mapping.* \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u043d\u043e \u0438\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0441\u0430\u043c\u0438\u0445 \u043d\u043e\u0434 \u043d\u0430\u0439\u0444\u0430\u044f \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c. <a href=\"https:\/\/docs.cloudera.com\/HDPDocuments\/HDF3\/HDF-3.2.0\/nifi-system-properties\/content\/identity-mapping-properties.html\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>.<\/li>\n<li>\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 NiFi \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 True \u0432 nifi.cluster.is.node \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b nifi.cluster.node.* \u043f\u043e \u0432\u0430\u0448\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430\u043c \u0438\u043d\u0430\u0447\u0435 \u043d\u043e\u0434\u0430 NiFi \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0446\u0435\u043f\u043b\u044f\u0442\u044c\u0441\u044f \u043a \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443.<\/li>\n<li>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u043c zookeeper, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u0440\u0430\u043d\u0435\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b nifi.zookeeper.*<\/li>\n<\/ol>\n<p>  2) conf\/authorizers.xml<\/p>\n<p>  \u0412 \u0444\u0430\u0439\u043b\u0435 authorizers.xml \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0445 \u043d\u0430 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0433\u0440\u0443\u043f\u043f \u0432 NiFi, \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430.<\/p>\n<p>  <a href=\"https:\/\/docs.cloudera.com\/HDPDocuments\/HDF3\/HDF-3.5.2\/nifi-security\/content\/authorizers-setup.html\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a> <\/p>\n<pre><code class=\"xml\">&lt;b>authorizers.xml&lt;\/b> &lt;?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> &lt;authorizers>     &lt;userGroupProvider>         &lt;identifier>file-user-group-provider&lt;\/identifier>         &lt;class>org.apache.nifi.authorization.FileUserGroupProvider&lt;\/class>         &lt;property name=\"Users File\">.\/conf\/users.xml&lt;\/property>         &lt;property name=\"Legacy Authorized Users File\">&lt;\/property>         &lt;property name=\"Initial User Identity 1\">nifi_habr@test&lt;\/property>         &lt;property name=\"Initial User Identity 2\">nifiadmin&lt;\/property>     &lt;\/userGroupProvider>      &lt;userGroupProvider>         &lt;identifier>ldap-user-group-provider&lt;\/identifier>         &lt;class>org.apache.nifi.ldap.tenants.LdapUserGroupProvider&lt;\/class>         &lt;property name=\"Authentication Strategy\">SIMPLE&lt;\/property>          &lt;property name=\"Manager DN\">cn=nifiadmin,ou=nifi-habr,ou=nifi,ou=test,ou=example,dc=com,dc=mycompany&lt;\/property>         &lt;property name=\"Manager Password\">pass&lt;\/property>           &lt;!--         TLS \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0435\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e         -->          &lt;property name=\"Referral Strategy\">FOLLOW&lt;\/property>         &lt;property name=\"Connect Timeout\">10 secs&lt;\/property>         &lt;property name=\"Read Timeout\">10 secs&lt;\/property>          &lt;property name=\"Url\">ldaps:\/\/mycompany.com:10109&lt;\/property>         &lt;property name=\"Page Size\">&lt;\/property>         &lt;property name=\"Sync Interval\">5 mins&lt;\/property>         &lt;property name=\"Group Membership - Enforce Case Sensitivity\">false&lt;\/property>          &lt;property name=\"User Search Base\">DC=com,DC=mycompany&lt;\/property>         &lt;property name=\"User Object Class\">user&lt;\/property>         &lt;property name=\"User Search Scope\">SUBTREE&lt;\/property>         &lt;property name=\"User Search Filter\">filter_users&lt;\/property>         &lt;property name=\"User Identity Attribute\">SamAccountName&lt;\/property>         &lt;property name=\"User Group Name Attribute\">&lt;\/property>         &lt;property name=\"User Group Name Attribute - Referenced Group Attribute\">&lt;\/property>          &lt;property name=\"Group Search Base\">OU=nifi-habr,OU=nifi,OU=test,OU=example,DC=com,DC=mycompany&lt;\/property>         &lt;property name=\"Group Object Class\">group&lt;\/property>         &lt;property name=\"Group Search Scope\">SUBTREE&lt;\/property>         &lt;property name=\"Group Search Filter\">filter_groups&lt;\/property>         &lt;property name=\"Group Name Attribute\">cn&lt;\/property>         &lt;property name=\"Group Member Attribute\">member&lt;\/property>         &lt;property name=\"Group Member Attribute - Referenced User Attribute\">&lt;\/property>     &lt;\/userGroupProvider>       &lt;userGroupProvider>         &lt;identifier>composite-configurable-user-group-provider&lt;\/identifier>         &lt;class>org.apache.nifi.authorization.CompositeConfigurableUserGroupProvider&lt;\/class>         &lt;property name=\"Configurable User Group Provider\">file-user-group-provider&lt;\/property>         &lt;property name=\"User Group Provider 1\">ldap-user-group-provider&lt;\/property>     &lt;\/userGroupProvider>      &lt;accessPolicyProvider>         &lt;identifier>file-access-policy-provider&lt;\/identifier>         &lt;class>org.apache.nifi.authorization.FileAccessPolicyProvider&lt;\/class>         &lt;property name=\"User Group Provider\">composite-configurable-user-group-provider&lt;\/property>         &lt;property name=\"Authorizations File\">.\/conf\/authorizations.xml&lt;\/property>         &lt;property name=\"Initial Admin Identity\">nifiadmin&lt;\/property>         &lt;property name=\"Legacy Authorized Users File\">&lt;\/property>         &lt;property name=\"Node Identity 1\">nifi_habr@test&lt;\/property>         &lt;property name=\"Node Group\">&lt;\/property>         &lt;property name=\"Legacy Authorized Users File\">&lt;\/property>     &lt;\/accessPolicyProvider>      &lt;authorizer>         &lt;identifier>managed-authorizer&lt;\/identifier>         &lt;class>org.apache.nifi.authorization.StandardManagedAuthorizer&lt;\/class>         &lt;property name=\"Access Policy Provider\">file-access-policy-provider&lt;\/property>         &lt;property name=\"Initial Admin Identity\">nifiadmin&lt;\/property>         &lt;property name=\"Legacy Authorized Users File\">&lt;\/property>         &lt;property name=\"Node Identity 1\">nifi_habr@test&lt;\/property>     &lt;\/authorizer> &lt;\/authorizers><\/code><\/pre>\n<p>  3) conf\/login-identity-providers.xml<\/p>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c NiFi, \u043a\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c LDAP.<\/p>\n<pre><code class=\"xml\">&lt;b>login-identity-providers.xml&lt;\/b> &lt;?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> &lt;loginIdentityProviders>     &lt;provider>         &lt;identifier>ldap-provider&lt;\/identifier>         &lt;class>org.apache.nifi.ldap.LdapProvider&lt;\/class>         &lt;property name=\"Authentication Strategy\">SIMPLE&lt;\/property>          &lt;property name=\"Manager DN\">cn=nifiadmin,ou=nifi-habr,ou=nifi,ou=test,ou=example,dc=com,dc=mycompany&lt;\/property>         &lt;property name=\"Manager Password\">pass&lt;\/property>          &lt;!--         TLS \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0435\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e         -->          &lt;property name=\"Referral Strategy\">FOLLOW&lt;\/property>         &lt;property name=\"Connect Timeout\">10 secs&lt;\/property>         &lt;property name=\"Read Timeout\">10 secs&lt;\/property>          &lt;property name=\"Url\">ldaps:\/\/mycompany.com:10109&lt;\/property>         &lt;property name=\"User Search Base\">DC=com,DC=mycompany&lt;\/property>         &lt;property name=\"User Search Filter\">(sAMAccountName={0})&lt;\/property>          &lt;property name=\"Identity Strategy\">USE_USERNAME&lt;\/property>         &lt;property name=\"Authentication Expiration\">12 hours&lt;\/property>     &lt;\/provider> &lt;\/loginIdentityProviders><\/code><\/pre>\n<p>  \u041f\u0440\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, NiFi \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a <code>DC=com,DC=mycompany<\/code> \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043e \u0435\u0433\u043e \u0438\u043c\u0435\u043d\u0438 <code>USE_USERNAME<\/code> \u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f <code>12 hours<\/code>. \u041d\u043e \u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432 authorizers.xml <code>filter_users<\/code>, \u0442\u043e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0443 \u043d\u0435\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0434\u0430\u0436\u0435 \u043a\u00a0UI.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442 NiFi \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u0431\u0435\u0437 \u043e\u0441\u043e\u0431\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a Apache NiFi Registry<\/h2>\n<p>  \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a NiFi Registry \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 NiFi. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438.\u00a0<\/p>\n<p>  \u041e\u0441\u043e\u0431\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 nifi-registry.properties \u043f\u0440\u0438 \u0441\u0432\u044f\u0437\u0438 NiFi \u0438 NiFi Registry. \u0418\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0438\u0445 \u0441\u0432\u044f\u0437\u044c.<\/p>\n<pre><code class=\"plaintext\">&lt;b>nifi-registry.properties&lt;\/b> #... # Identity Mapping Properties # # \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 # \u0414\u0430\u043d\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0442\u0443\u0442 https:\/\/docs.cloudera.com\/HDPDocuments\/HDF3\/HDF-3.2.0\/nifi-system-properties\/content\/identity-mapping-properties.html nifi.registry.security.identity.mapping.pattern.dn=^L=(.*?), ST=(.*?), C=(.*?), OU=(.*?), O=(.*?),.*?$ nifi.registry.security.identity.mapping.value.dn=$4@$5 nifi.registry.security.identity.mapping.transform.dn=LOWER L=NLMK-IT, ST=Moscow, C=RU, OU=nifi, O=prod, EMAILADDRESS=sre-team@nlmk.com, CN=000_0<\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c NiFi \u0438 NiFi registry.<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 NiFi\u00a0Registry \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 Settings \u2192 Controller Settings \u2192 Registry Clients.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 NiFi Registry \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443: <code>Unable to obtain listing of buckets: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target<\/code>. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0438\u0437 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0431\u0430\u043a\u0435\u0442\u043e\u0432 \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u00abNo Available Buckets\u00bb. \u0427\u0442\u043e\u0431\u044b \u0443\u0431\u0440\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443, \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c truststore NiFi Registry \u0432 truststore NiFi \u0438 truststore NiFi \u0432 truststore NiFi Registry \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c\u0438 (\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u0432\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0434\u0440\u0443\u0433 \u0432 \u0434\u0440\u0443\u0433\u0430). <\/p>\n<p>  \u041c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/www.ibm.com\/docs\/en\/sdk-java-technology\/7?topic=examples-importing-keystore\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439<\/a>. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u0430\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0443 \u0432\u0430\u0441 \u043f\u0440\u043e\u043f\u0430\u0434\u0435\u0442.<\/p>\n<p>  <b>\u00abNo Available Buckets\u00bb\u00a0\u0441\u0430\u043c\u0430\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f.<\/b><br \/>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043d\u0430 \u043f\u0430\u043b\u044c\u0446\u0430\u0445, \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>  \u0412 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 Proxy User Request, \u043d\u043e \u043d\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043a\u0430\u043a \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c.<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 NiFi, \u043f\u043e\u0441\u043b\u0435 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"plaintext\">L=mycompany, ST=Moscow, C=RU, OU=nifi_habr, O=test, EMAILADDRESS=nifihabr@mycompany.com, CN=nifi-test-node-1.mycompany \u041f\u043e\u0434\u0433\u043e\u043d\u0438\u043c \u0434\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 nifi-registry.properties:\u00a0 ^L=(.*?), ST=(.*?), C=(.*?), OU=(.*?), O=(.*?),.*?$ $4@$5<\/code><\/pre>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 NiFi \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0434\u0438\u0442\u044c \u0432 NiFi Registry, NiFi Registry, \u0431\u0443\u0434\u0435\u0442 \u0435\u0433\u043e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e nifi_habr@test, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 NiFi Registry, \u0432\u044b\u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u043f\u0440\u0430\u0432\u0430 Proxy User Request. \u0422\u0430\u043a \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044e, \u0432\u0435\u0434\u044c \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a NiFi c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f Kerberos<\/h2>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a NiFi c Kerberos \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 zookeeper \u0441 Kerberos.<\/p>\n<p>  \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043c\u044b \u0443\u0436\u0435 \u0438\u043c\u0435\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0435\u0439\u0442\u0430\u0431\u044b \u0434\u043b\u044f zookeeper \u0438 nifi \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0438\u0434\u0430.<\/p>\n<pre><code class=\"plaintext\">&lt;b>zookeeper_server.keytab&lt;\/b> Keytab name: FILE:\/etc\/security\/keytabs\/zookeeper_server.keytab KVNO Timestamp           Principal ---- ------------------- ------------------------------------------------------    1 11.11.2021 15:45:18 zookeeper\/nifi-test-node-1.mycompany@mycompany.com (aes256-cts-hmac-sha1-96)    1 11.11.2021 16:13:04 zookeeper\/nifi-test-node-1.mycompany@mycompany.com (aes128-cts-hmac-sha1-96) &lt;b>nifi_server.keytab&lt;\/b> Keytab name: FILE:\/etc\/security\/keytabs\/nifi_server.keytab KVNO Timestamp           Principal ---- ------------------- ------------------------------------------------------    1 11.11.2021 16:52:43 nifi\/nifi-test-node-1.mycompany@mycompany.com (aes256-cts-hmac-sha1-96)    1 11.11.2021 16:52:43 nifi\/nifi-test-node-1.mycompany@mycompany.com (aes128-cts-hmac-sha1-96)<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u044f \u0445\u043e\u0447\u0443 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0447\u0442\u043e \u0442\u0438\u043f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 krb5.conf (\u0443 \u043d\u0430\u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0442\u0430\u043a):<\/p>\n<p>  default_tgs_enctypes = aes256-cts aes128-cts rc4-hmac<br \/>  default_tkt_enctypes = aes256-cts aes128-cts rc4-hmac<br \/>  permitted_enctypes = aes256-cts aes128-cts rc4-hmac<\/p>\n<p>  \u0418\u043d\u0430\u0447\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 Kerberos \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0432\u044b\u043b\u043e\u0436\u0443 \u043f\u0440\u0438\u043c\u0435\u0440 docker-compose \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p>  \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 Zookeeper.<\/p>\n<pre><code class=\"plaintext\">&lt;b>docker-compose.yaml&lt;\/b> --- version: '3.7'  services:   zookeeper:     image: zookeeper     restart: always     hostname: nifi-test-node-1.mycompany     ports:       - 2181:2181       - 2888:2888       - 3888:3888     networks:       - zk     environment:       JVMFLAGS: \"-Djava.net.preferIPv4Stack=true -Djava.security.auth.login.config=\/conf\/jaas.conf -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djute.maxbuffer=4194304 -Dsun.security.krb5.disableReferrals=true -Djdk.tls.ephemeralDHKeySize=2048 -Dzookeeper.multiAddress.enabled=true\"     volumes:       - zk_data:\/data       - zk_datalog:\/datalog       - zk_logs:\/logs       - \/etc\/security\/keytabs\/zookeeper_server.keytab:\/zookeeper.keytab:ro       - \/etc\/krb5.conf:\/etc\/krb5.conf:ro       - .\/jaas.conf:\/conf\/jaas.conf:ro       - .\/zoo.cfg:\/conf\/zoo.cfg:ro  volumes:   zk_data: {}   zk_datalog: {}   zk_logs: {} networks:   zk:     name: zk ...<\/code><\/pre>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0444\u043b\u0430\u0433\u0438 JVM \u0438 \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 Kerberos.<\/p>\n<p>  \u041c\u043e\u0436\u0435\u0442\u0435 \u0432\u0437\u044f\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0445 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 <a href=\"https:\/\/docs.cloudera.com\/runtime\/7.2.10\/zookeeper-security\/topics\/zookeeper-configure-server-kerberos-authentication.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>.<\/p>\n<pre><code class=\"plaintext\">&lt;b>jaas.conf&lt;\/b> Server {   com.sun.security.auth.module.Krb5LoginModule required   useKeyTab=true   keyTab=\"\/zookeeper.keytab\"   storeKey=true   useTicketCache=false   principal=\"zookeeper\/nifi-test-node-1.mycompany@mycompany.com\"; };   QuorumServer {   com.sun.security.auth.module.Krb5LoginModule required   useKeyTab=true   keyTab=\"\/zookeeper.keytab\"   storeKey=true   useTicketCache=false   principal=\"zookeeper\/nifi-test-node-1.mycompany@mycompany.com\"; };   QuorumLearner {   com.sun.security.auth.module.Krb5LoginModule required   useKeyTab=true   keyTab=\"\/zookeeper.keytab\"   storeKey=true   useTicketCache=false   principal=\"zookeeper\/nifi-test-node-1.mycompany@mycompany.com\"; }; &lt;b>zoo.cfg&lt;\/b> jaasLoginRenew=3600000 requireClientAuthScheme=sasl tickTime=2000 initLimit=300 syncLimit=10 4lw.commands.whitelist=conf,cons,crst,dirs,dump,envi,gtmk,ruok,stmk,srst,srvr,stat,wchs,mntr,isro dataDir=\/data\/ dataLogDir=\/datalog\/ clientPort=2181 maxClientCnxns=2000 minSessionTimeout=4000 maxSessionTimeout=60000000 autopurge.purgeInterval=1 autopurge.snapRetainCount=10 quorum.auth.enableSasl=true quorum.cnxn.threads.size=20 admin.enableServer=false admin.serverPort=5181 leaderServes=yes authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider kerberos.removeHostFromPrincipal=true kerberos.removeRealmFromPrincipal=true quorum.auth.kerberos.servicePrincipal=zookeeper\/_HOST quorum.auth.learnerRequireSasl=true quorum.auth.serverRequireSasl=true preAllocSize=131072 snapCount=3000000 server.1=nifi-test-node-1.mycompany:2888:3888 server.2=nifi-test-node-2.mycompany:2888:3888 server.3=nifi-test-node-3.mycompany:2888:3888<\/code><\/pre>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c krb5.conf \u0444\u0430\u0439\u043b, \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/docs.oracle.com\/cd\/E23941_01\/E26092\/html\/kerberos-auth.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439<\/a>. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Zookeeper \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043d\u043e\u0434 \u0438 \u0438\u0434\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c NiFi.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a Apache NiFi c Kerberos<\/h2>\n<p>  \u0417\u0434\u0435\u0441\u044c \u044f \u0445\u043e\u0447\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0430\u043a\u0446\u0435\u043d\u0442 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043c\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0447\u0435\u0440\u0435\u0437 LDAP, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 Kerberos\u00a0 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/nifi.apache.org\/docs\/nifi-docs\/html\/administration-guide.html#kerberos_login_identity_provider\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439<\/a>.\u00a0<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0437\u044f\u0442\u044c \u0438\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 NiFi \u0432\u044b\u0448\u0435.<\/p>\n<p>  \u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b \u043a\u043b\u0438\u0435\u043d\u0442\u0430 zookeeper-jaas.conf<\/p>\n<pre><code class=\"plaintext\">&lt;b>zookeeper-jaas.conf&lt;\/b> Client { com.sun.security.auth.module.Krb5LoginModule required debug=true useKeyTab=true storeKey=true doNotPrompt=true useTicketCache=false keyTab=\"\/etc\/security\/keytabs\/nifi.keytab\" principal=\"nifi\/nifi-test-node-1.mycompany@mycompany.com\"; };<\/code><\/pre>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Java \u0432 \u0444\u0430\u0439\u043b\u0435 bootstrap.conf<\/p>\n<pre><code class=\"plaintext\">&lt;b>bootstrap.conf&lt;\/b> # ... java.arg.18=-Djava.security.auth.login.config=.\/conf\/zookeeper-jaas.conf # ... \u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 nifi.properties \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u00a0 &lt;b>nifi.properties&lt;\/b> # ... nifi.zookeeper.auth.type=sasl nifi.zookeeper.kerberos.removeHostFromPrincipal=true nifi.zookeeper.kerberos.removeRealmFromPrincipal=true  # kerberos # nifi.kerberos.krb5.file=\/etc\/krb5.conf  # kerberos service principal # nifi.kerberos.service.principal=nifi\/nifi-test-node-1.mycompany@AO.NLMK nifi.kerberos.service.keytab.location=\/etc\/security\/keytabs\/nifi.keytab  # ...<\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 nifi.kerberos.service.principal \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, NiFi \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 java.lang.IllegalArgumentException: No Kerberos Principal configured for use with SASL Authentication Scheme.<\/p>\n<p>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043a\u043e\u0433\u0434\u0430 \u043b\u044e\u0434\u0438 \u0431\u0443\u0434\u0443\u0442 \u0433\u0443\u0433\u043b\u0438\u0442\u044c Exception \u0432 NiFi, \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043f\u0430\u0434\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u0438 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442 \u0438\u043c \u0436\u0438\u0437\u043d\u044c.<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/nlmk\/blog\/669812\/\"> https:\/\/habr.com\/ru\/company\/nlmk\/blog\/669812\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a Apache NiFi \u0438 Zookeeper, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e LDAP \u0438 \u0440\u0430\u0431\u043e\u0442\u0430 NiFi \u043f\u043e HTTPS, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a Apache NiFi Registry, \u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 NiFi c Kerberos \u2014 \u0432\u043e\u0442 \u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/st\/ds\/nh\/stdsnhrxoqf9vanduxvwre5ablg.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/st\/ds\/nh\/stdsnhrxoqf9vanduxvwre5ablg.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041d\u0435 \u0432\u0438\u0436\u0443 \u0441\u043c\u044b\u0441\u043b\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c NiFi \u0438 NiFi Registry \u2014 \u0435\u0441\u0442\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0438 \u043c\u0430\u043d\u0443\u0430\u043b\u044b \u0432 \u0441\u0435\u0442\u0438. \u042f \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430\u0445, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435\u0442, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c. \u041f\u0440\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043c\u0430\u0441\u0441\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u042f \u043f\u0440\u043e\u0432\u0435\u043b \u043c\u0435\u0441\u044f\u0446\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 DEBUG \u0438 TRACE, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0432\u0441\u0451 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u0413\u043e\u0442\u043e\u0432 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0441\u044f.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-334150","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/334150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=334150"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/334150\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=334150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=334150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=334150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}