Hbase ConnectionClosingException от рабочего процесса NiFi - PullRequest
0 голосов
/ 20 марта 2020

Я столкнулся с проблемой с nifi worlflow. Есть процессор, который подключается к HBASE для хранения данных. Это бросок ниже исключения. Примечание. Это кластер Hortonworks.

at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:147)
at org.apache.hadoop.hbase.client.HTable.checkAndPut(HTable.java:1252)
at org.apache.nifi.hbase.HBase_1_1_2_ClientService.checkAndPut(HBase_1_1_2_ClientService.java:344)
at sun.reflect.GeneratedMethodAccessor531.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:89)
at com.sun.proxy.$Proxy89.checkAndPut(Unknown Source)
at com.weltbild.edh.ingestor.processors.event.BotStateSupport.putState(BotStateSupport.java:36)
at com.weltbild.edh.ingestor.processors.event.BotDetectionAccess.putState(BotDetectionAccess.java:356)
at com.weltbild.edh.ingestor.processors.event.BotDetectionAccess.processFile(BotDetectionAccess.java:316)
at com.weltbild.edh.ingestor.processors.event.BotDetectionAccess.lambda$onTrigger$0(BotDetectionAccess.java:216)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at com.weltbild.edh.ingestor.processors.event.BotDetectionAccess.onTrigger(BotDetectionAccess.java:216)
at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1122)
at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:147)
at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47)
at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:128)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

. Вызывается: org. apache .had oop .hbase.exceptions.ConnectionClosingException: IP C Клиент (899382397) подключение к regionserver / ipaddr: 16020 от nifi закрывается в орг. apache .had oop .hbase.ip c .RpcClientImpl $ Connection.checkIsOpen (RpcClientImpl. java: 517) в орг. apache .had oop. hbase.ip c .RpcClientImpl $ Connection.writeRequest (RpcClientImpl. java: 925) в орг. apache .had oop .hbase.ip c .RpcClientImpl $ Connection.tracedWriteRequest 10Rmpl. *: 889) в орг. apache .had oop .hbase.ip c .RpcClientImpl.call (RpcClientImpl. java: 1222) в орг. apache .had oop .hbase.ip c .AbstractRpcClient.callBlockingMethod (AbstractRpcClient. java: 213) в орг. org. apache .had oop .hbase.protobuf.generated.ClientProtos $ ClientService $ BlockingStub.mutate (ClientProtos. java: 32639) в орг. apache .h объявление oop .hbase.client.HTable $ 10.call (HTable. java: 1245) в орг. apache .had oop .hbase.client.HTable $ 10.call (HTable. java: 1235 ) at or.. apache .had oop .hbase.client.RpcRetringCaller.callWithRetries (RpcRetringCaller. java: 126) ... 25 общих кадров опущено 2020-03-19 21: 00: 00,578 ОШИБКА [Timer- Driven Process Thread-8] c .weiprocessors.event.BotStateSupport ошибка при получении состояния из кэша для ключа da5cb12e-99f2-e074-19a3-e9e448aee908 org. apache .had oop .hbase.client.RetriesExhaustedException: после попыток = 1, исключения: четверг, 19 марта 21:00:00 CET 2020, RpcRetringCaller {globalStartTime = 1584648000578, пауза = 100, повторные попытки = 1}, орг. apache .had oop .hbase.exceptions.ConnectionClosingException: IP C Клиентское (899382397) соединение с регион-сервером / ipaddr: 16020 от nifi закрывается

at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:147)
at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Вызывается: org. apache .had oop .hbase.exceptions.ConnectionClosingException: IP C Клиент (899382397) соединение с regionserver / ipaddr: 16020 от nifi закрывается в org. apache. имел oop .hbase.ip c .RpcClientImpl $ Connection.checkIsOpen (RpcClientImpl. java: 517) в орг. apache .had oop .hbase.ip c .RpcClientImpl $ Connection.writeReququ $ (RpcClientImpl. java: 925) в орг. apache .had oop .hbase.ip c .RpcClientImpl $ Connection.tracedWriteRequest (RpcClientImpl. java: 889) в орг. apache .had oop .hbase.ip c .RpcClientImpl.call (RpcClientImpl. java: 1222) в орг. apache .had oop .hbase.ip c .AbstractRpcClient.callBlockingMethod (AbstractRpcClient 1081 *: 213) в орг. apache .had oop .hbase.ip c .AbstractRpcClient $ BlockingRpcChannelImplementation.callBlockingMethod (AbstractRpcClient. java: 287) в орг. apache .had oop .hbb .protobuf.generated.ClientProtos $ ClientService $ BlockingStub.scan (ClientProtos. java: 32651) в орг. apache .had oop .hbase.client.ScannerCallable.openScanner (ScannerCallable. java: 372) в org. apache .had oop .hbase.client.ScannerCallable.call (ScannerCallable. java: 199) в org. apache .had oop .hbase.client.ScannerCallable.call (ScannerCalla ble. java: 62) в орг. apache .had oop .hbase.client.RpcRetringCaller.callWithoutRetries (RpcRetringCaller. java: 200) в орг. apache .had oop .hbase. client.ScannerCallableWithReplicas $ RetriedRP C .call (ScannerCallableWithReplicas. java: 346) в org. apache .had oop .hbase.client.ScannerCallableWithReplicas $ RetriedRP * 1107C. 320) at org. apache .had oop .hbase.client.RpcRetringCaller.callWithRetries (RpcRetringCaller. java: 126) ... 4 общих кадра опущено 2020-03-19 21: 00: 00,578 ОШИБКА [Таймер -Процессный поток-8] c .weipevent. BotDetectionAccess BotDetectionAccess [id = c28419fd-015e-1000-db35-964664e9166d] BotDetectionAccess [id = c28419fd-015e-1000-db35-964664e9166d] не удалось обработать из-за java .lang.NullP; откат сеанса: {} java .lang.NullPointerException: пусто 2020-03-19 21: 00: 00,579 ОШИБКА [Поток-управляемый поток процесса-8] c .weipevent.BotDetectionAccess BotDetectionAccess [id = c28419fd-015e- 1000-db35-964664e9166d] BotDetectionAccess [id = c28419fd-015e-1000-db35-964664e9166d] не удалось обработать сеанс из-за java .lang.NullPointerException: {} java .lang.NullPointerException: null 2020-03-19 21: 00: 00,579 WARN [Управляемый таймером поток процессов-8] c .weipevent.BotDetectionAccess BotDetectionAccess [id = c28419fd-015e-1000-db35-964664e9166d] Процессор административно выдан за 1 се c из-за сбоя обработки 2020 -03-19 21: 00: 00,579 ПРЕДУПРЕЖДЕНИЕ [Управляемый таймером поток процессов-8] oan c .t.ContinuallyRunProcessorTask Административно получая BotDetectionAccess [id = c28419fd-015e-1000-db35-964664e9166d] из-за неучтенного исключения: * * .lang.NullPointerException 2020-03-19 21: 00: 00,579 ПРЕДУПРЕЖДЕНИЕ [Поток-управляемый поток процесса-8] oan c .t.ContinuallyRunProcessorTask java .lang.NullPointerExcep ion: null 2020-03-19 21: 00: 01,582 ОШИБКА [Управляемый таймером поток-7] c .weiprocessors.event.BotStateSupport ошибка при получении состояния из кэша для ключа de9a7878-cb1d-beb3-c38a-bac7fe23b87e org . apache .had oop .hbase.client.RetriesExhaustedException: Сбой после попыток = 1, исключения: четверг 19 21:00:01 CET 2020, RpcRetringCaller {globalStartTime = 1584648001582, pause = 100, retries = 1}, org. apache .had oop .hbase.exceptions.ConnectionClosingException: IP C Клиент (899382397) соединение с regionserver / ipaddr: 16020 от nifi закрывается

code:
final class BotStateSupport

{private stati c final Logger LOG = LoggerFactory.getLogger (BotStateSupport.class);

private static final List<Column> FETCH_COLUMNS = Collections.singletonList(new Column(STATE_CF.getBytes(UTF_8), STATE_QUALIFIER.getBytes(UTF_8)));

static boolean putState(String conversation, String state, HBaseClientService hBaseClientService)
{
    final byte[] rowIdBytes = conversation.getBytes(UTF_8);
    final byte[] buffer = state.getBytes(UTF_8);

    final PutColumn putColumn = new PutColumn(STATE_CF.getBytes(UTF_8), STATE_QUALIFIER.getBytes(UTF_8), buffer);

    try {
        return hBaseClientService.checkAndPut(CONVERSATIONS_TABLE_NAME, rowIdBytes,
                STATE_CF.getBytes(UTF_8), STATE_QUALIFIER.getBytes(UTF_8), null, putColumn);
    }
    catch (IOException e) {
        LOG.error("error while getting state from cache for key {}", conversation, e);
        return false;
    }
}

}

...