【问题标题】:Unable to connect NIFI to flink using NIFI connector无法使用 NIFI 连接器将 NIFI 连接到 flink
【发布时间】:2020-05-28 21:57:20
【问题描述】:

我尝试在 flink 中使用 NIFI 作为源连接器,出现以下错误。 我的NIFI服务处于运行状态,模板处于运行状态。

Flink 错误:

信息:来源:自定义来源 (2/2) (e9ceb92d895d6cd6524ecd0615b219df) 从 RUNNING 切换到 FAILED。 java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 在 org.apache.http.conn.ssl.DefaultHostnameVerifier.(DefaultHostnameVerifier.java:82) 在 org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966) 在 org.apache.nifi.remote.util.SiteToSiteRestApiClient.setupClient(SiteToSiteRestApiClient.java:283) 在 org.apache.nifi.remote.util.SiteToSiteRestApiClient.getHttpClient(SiteToSiteRestApiClient.java:219) 在 org.apache.nifi.remote.util.SiteToSiteRestApiClient.execute(SiteToSiteRestApiClient.java:1189) 在 org.apache.nifi.remote.util.SiteToSiteRestApiClient.execute(SiteToSiteRestApiClient.java:1237) 在 org.apache.nifi.remote.util.SiteToSiteRestApiClient.fetchController(SiteToSiteRestApiClient.java:419) 在 org.apache.nifi.remote.util.SiteToSiteRestApiClient.getController(SiteToSiteRestApiClient.java:394) 在 org.apache.nifi.remote.util.SiteToSiteRestApiClient.getController(SiteToSiteRestApiClient.java:361) 在 org.apache.nifi.remote.client.SiteInfoProvider.refreshRemoteInfo(SiteInfoProvider.java:69) 在 org.apache.nifi.remote.client.SiteInfoProvider.getPortIdentifier(SiteInfoProvider.java:220) 在 org.apache.nifi.remote.client.SiteInfoProvider.getOutputPortIdentifier(SiteInfoProvider.java:204) 在 org.apache.nifi.remote.client.socket.SocketClient.getPortIdentifier(SocketClient.java:79) 在 org.apache.nifi.remote.client.socket.SocketClient.createTransaction(SocketClient.java:121) 在 org.apache.flink.streaming.connectors.nifi.NiFiSource.run(NiFiSource.java:89) 在 org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:100) 在 org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:63) 在 org.apache.flink.streaming.runtime.tasks.SourceStreamTask$LegacySourceFunctionThread.run(SourceStreamTask.java:196)

public class NiFiSourceTopologyExample {

    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

        SiteToSiteClientConfig clientConfig = new SiteToSiteClient.Builder()
                .url("http://localhost:8080/nifi")
                .portName("CasandraOut")
                .requestBatchCount(5)
                .buildConfig();

        try{

        SourceFunction<NiFiDataPacket> nifiSource = new NiFiSource(clientConfig);
        DataStream<NiFiDataPacket> streamSource = env.addSource(nifiSource).setParallelism(2);

        DataStream<String> dataStream = streamSource.map(new MapFunction<NiFiDataPacket, String>() {
            @Override
            public String map(NiFiDataPacket value) throws Exception {
                return new String(value.getContent(), Charset.defaultCharset());
            }
        });

        dataStream.print();
        env.execute();
        }catch(Exception e)
        {
            System.out.println("Error->"+e.getMessage());
        }
    }
}

【问题讨论】:

    标签: java apache-flink apache-nifi


    【解决方案1】:

    错误java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 表示您正在直接或间接使用Apache commons 日志库。

    NoClassDefFoundError 异常可能是由于某些类路径问题,但最常见的原因是类路径中缺少 JAR。

    尝试将commons-logging-x.jar 添加到您的项目依赖项中,然后重试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 2017-10-04
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多