Невозможно подключить NIFI для мигания через разъем NIFI - PullRequest
0 голосов
/ 28 мая 2020

Я пытался использовать NIFI в качестве коннектора источника во flink, получаю следующую ошибку. Моя служба NIFI работает, шаблон находится в рабочем состоянии.

Ошибка Flink:

ИНФОРМАЦИЯ: Источник: Пользовательский источник (2/2) (e9ceb92d895d6cd6524ecd0615b219df) переключен с РАБОТА на НЕ СМОГЛИ. java .lang.NoClassDefFoundError: org / apache / commons / logging / LogFactory at org. apache .http.conn.ssl.DefaultHostnameVerifier. (DefaultHostnameVerifier. java: 82) at org. apache .http. impl.client.HttpClientBuilder.build (HttpClientBuilder. java: 966) в org. apache .nifi.remote.util.SiteToSiteRestApiClient.setupClient (SiteToSiteRestApiClient. java: 28316) в org. remote.util.SiteToSiteRestApiClient.getHttpClient (SiteToSiteRestApiClient. java: 219) в орг. apache .nifi.remote.util.SiteToSiteRestApiClient.execute (SiteToSiteRestApiClient. java. 1189 *1019*. 11 remote.util.SiteToSiteRestApiClient.execute (SiteToSiteRestApiClient. java: 1237) в организации apache .nifi.remote.util.SiteToSiteRestApiClient.fetchController (SiteToSiteRestApiClient. java. 419, *1023*. remote.util.SiteToSiteRestApiClient.getController (SiteToSiteRestApiClient. java: 394) в org. apache .nifi.remote.util.SiteToSiteRestApiClient.getController (SiteToSiteRestApiClient.getController (SiteToSiteRestApiClient.) 1028 *. remote.clie nt.SiteInfoProvider.refreshRemoteInfo (SiteInfoProvider. java: 69) в организации apache .nifi.remote.client.SiteInfoProvider.getPortIdentifier (SiteInfoProvider. java: 220) в организации apache .nifi.remote. client.SiteInfoProvider.getOutputPortIdentifier (SiteInfoProvider. java: 204) в орг. apache .nifi.remote.client.socket.SocketClient.getPortIdentifier (SocketClient. java: 79) в орг. apache .nifi. remote.client.socket.SocketClient.createTransaction (SocketClient. java: 121) в орг. apache .flink.streaming.connectors.nifi.NiFiSource.run (NiFiSource. java: 89) в орг. 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());
        }
    }
}

1 Ответ

2 голосов
/ 28 мая 2020

Ошибка java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory означает, что вы прямо или косвенно используете библиотеку ведения журнала Apache commons.

Исключение NoClassDefFoundError может быть связано с некоторой проблемой пути к классам, но чаще всего это связано с отсутствием JAR в пути к классам.

Попробуйте добавить commons-logging-x.jar в зависимость вашего проекта и повторите попытку.

...