簡體   English   中英

Nifi無法使用docker啟動

[英]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 停止清理

任何人都可以幫助我嗎?

需要進行三處更改才能解決問題(如果您只進行一處更改,則會引發其他異常):

  1. 刪除NIFI_WEB_HTTP_HOST: "http://localhost"這一行,因為它在加載網絡服務器時會引發異常。
  2. NIFI_CLUSTER_IS_NODE: "true"應更改為NIFI_CLUSTER_IS_NODE: "false" ,因為沒有定義集群。
  3. 刪除行network_mode: host

進行這些更改后,兩個 Nifi 應用程序已成功加載。

但是,YAML 文件中缺少另一個定義,這對於將 Nifi 應用程序公開給外部訪問至關重要。
添加ports:定義可以修復Nifi應用程序偵聽的外部端口。 格式為 {external-port}:{internal-port}。

下面的 YAML 代碼創建並加載了兩個 Nifi 應用程序。 一個暴露在http://localhost:8088/nifi上,另一個暴露在 http ://localhost:8090/nifi 上

請注意在三方之間共享的共享文件夾的定義:容器的主機nifi_onenifi_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM