[英]Nifi cannot startup with docker
我正在嘗試將 nifi 與 docker 一起使用,但無濟於事。 我有以下泊塢窗文件
version: "3.7"
services:
nifi_one:
image: apache/nifi
hostname: nifi_one
container_name: nifi_one
environment:
NIFI_WEB_HTTP_HOST: "http://localhost"
NIFI_WEB_HTTP_PORT: "8084"
NIFI_CLUSTER_IS_NODE: "true"
NIFI_CLUSTER_NODE_PROTOCOL_PORT: "8085"
NIFI_ZK_CONNECT_STRING: "localhost:2181"
NIFI_ELECTION_MAX_WAIT: "1 min"
network_mode: host
volumes:
- ./nifi:/nifi
nifi_two:
image: apache/nifi
hostname: nifi_two
container_name: nifi_two
depends_on:
- nifi_one
environment:
NIFI_WEB_HTTP_HOST: "http://localhost"
NIFI_WEB_HTTP_PORT: "8084"
NIFI_CLUSTER_IS_NODE: "true"
NIFI_CLUSTER_NODE_PROTOCOL_PORT: "8085"
NIFI_ZK_CONNECT_STRING: "localhost:2181"
NIFI_ELECTION_MAX_WAIT: "1 min"
network_mode: host
volumes:
- ./nifi:/nifi
volumes:
nifi:
我收到以下錯誤
2020-06-27 15:36:51,540 INFO [main] oejaAnnotationConfiguration Scanning elapsed time=18ms 2020-06-27 15:36:51,542 INFO [main] oejserver.handler.ContextHandler._ No Spring WebApplicationInitializer 類型在 classpath22220 上檢測到06-27 15:36:51,684 INFO [main] oejetty.server.handler.ContextHandler 啟動 oejwWebAppContext@51b35e4e{nifi-error,/,file:///opt/nifi/nifi-current/work/jetty/nifi-web -error-1.11.4.war/webapp/,AVAILABLE}{./work/nar/framework/nifi-framework-nar-1.11.4.nar-unpacked/NAR-INF/bundled-dependencies/nifi-web-error -1.11.4.war} 2020-06-27 15:36:51,922 WARN [main] org.apache.nifi.web.server.JettyServer Failed to start web server... shutting down. java.net.SocketException:在 sun.nio.ch.Net.translateException(Net.java:157) 處 sun.nio.ch.Net.translateToSocketException(Net.java:131) 處未解析地址。 .translateException(Net.java:163) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:87) at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:342) at org.eclipse. jetty.server.ServerConnector.open(ServerConnector.java:308) at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80) at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java: 236) 在 org.eclipse。 jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) at org.eclipse.jetty.server.Server.doStart(Server.java:396) at org.eclipse.jetty.util.component.AbstractLifeCycle.start( AbstractLifeCycle.java:68) at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:952) at org.apache.nifi.NiFi.(NiFi.java:158) at org.apache.nifi. NiFi.(NiFi.java:72) at org.apache.nifi.NiFi.main(NiFi.java:301) Caused by: java.nio.channels.UnresolvedAddressException: null at sun.nio.ch.Net.checkAddress(Net .Z93F725A07423FE1C889F448 B33D21F46Z:101) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:215) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)... 11 common frames omitted 2020-06-27 15:36:51,923 INFO [Thread-1] org.apache.nifi.NiFi Initiating shutdown of Jetty web server... 2020-06-27 15:36:51,938 INFO [Thread-1] o.eclipse.jetty.server .AbstractConnector 停止了 ServerConnector@cb03411{HTTP/1.1,[http/1.1]}{http://localhost:8084} 2020-06-27 15:36:51,938 INFO [Thread-1] org.eclipse.jetty.server。 session node0 停止清理
任何人都可以幫助我嗎?
需要進行三處更改才能解決問題(如果您只進行一處更改,則會引發其他異常):
NIFI_WEB_HTTP_HOST: "http://localhost"
這一行,因為它在加載網絡服務器時會引發異常。NIFI_CLUSTER_IS_NODE: "true"
應更改為NIFI_CLUSTER_IS_NODE: "false"
,因為沒有定義集群。network_mode: host
。進行這些更改后,兩個 Nifi 應用程序已成功加載。
但是,YAML 文件中缺少另一個定義,這對於將 Nifi 應用程序公開給外部訪問至關重要。
添加ports:
定義可以修復Nifi應用程序偵聽的外部端口。 格式為 {external-port}:{internal-port}。
下面的 YAML 代碼創建並加載了兩個 Nifi 應用程序。 一個暴露在http://localhost:8088/nifi上,另一個暴露在 http ://localhost:8090/nifi 上。
請注意在三方之間共享的共享文件夾的定義:容器的主機nifi_one和nifi_two 。
完整的定義是:
version: "2.0"
services:
nifi_one:
image: apache/nifi
hostname: nifi_two
container_name: nifi_one
ports:
- 8088:8080 # the internal port 8080 is exposed as 8088
environment:
NIFI_WEB_HTTP_PORT: "8080"
NIFI_CLUSTER_IS_NODE: "false"
NIFI_CLUSTER_NODE_PROTOCOL_PORT: "8085"
NIFI_ZK_CONNECT_STRING: "localhost:2181"
NIFI_ELECTION_MAX_WAIT: "1 min"
volumes:
- ./nifi-vol:/opt/nifi/nifi-current/temp2
nifi_two:
image: apache/nifi
hostname: nifi_two
container_name: nifi_two
depends_on:
- nifi_one
ports:
- 8090:8081 # setting a unique port to exemplify this feature
environment:
NIFI_WEB_HTTP_PORT: "8081" # the Nifi listens to port 8081 in the container, which is exposed as 8090 externally
NIFI_CLUSTER_IS_NODE: "false"
NIFI_CLUSTER_NODE_PROTOCOL_PORT: "8085"
NIFI_ZK_CONNECT_STRING: "localhost:2181"
NIFI_ELECTION_MAX_WAIT: "1 min"
volumes:
- ./nifi-vol:/opt/nifi/nifi-current/temp2
volumes:
nifi:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.