2017-05-31 6 views
0
I am using concurrend append method from the class Core in Azure to store data to Azure Data lake.Below is the code and the exception which I got.I am getting this exception rarely not always.Could anyone guide me?... 





public void invoke(String value) { 
     BitfinexSingletonClass obj = null; 
     try { 
      obj = BitfinexSingletonClass.getInstance(); 
     } catch (IOException e1) { 
      slf4jLogger.info(e1.getMessage()); 
     } 
     ADLStoreClient client = obj.getADLStoreClient(); 
     byte[] myBuffer = (value + "\n").getBytes(); 

     RequestOptions opts = new RequestOptions(); 

     opts.retryPolicy = new ExponentialBackoffPolicy(); 

     OperationResponse resp = new OperationResponse(); 
     slf4jLogger.info("" + value); 
     slf4jLogger 
       .info("...............Writing.........above......BITFINEX_DSHBTC_ORDER..Data............................ToADLake............"); 
     Core.concurrentAppend(BITFINEX_DSHBTC_ORDER, myBuffer, 0, myBuffer.length, true, client, opts, resp); 
     slf4jLogger.info("...............BITFINEX_DSHBTC_ORDER...Data...Successfully....written.....to...AzureDataLake............"); 
     if (!resp.successful) { 
      try { 
       throw client.getExceptionFromResponse(resp, "BITFINEX_DSHBTC_ORDER data is not written to ADL"); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

    } 

com.microsoft.azure.datalake.store.ADLException: Opération CONCURRENTAPPEND échoué à l'exception java.net.SocketTimeoutException: Lire expiré Dernière rencontre exception lancée après 5 essais [java.net.UnknownHostException, java.net. UnknownHostException, java.net.UnknownHostException, java.net.SocketTimeoutException, java.net.SocketTimeoutException] à l'adresse com.microsoft.azure.datalake.store.ADLStoreClient.getExceptionFromResponse (ADLStoreClient.java:1124) at co.biz.yobit. sink.YobitLtcbtcTickerADLSink.invoke (YobitLtcbtcTickerADLSink.java:41) à org.apache.flink.streaming.api.operators.StreamSink.processElement (StreamSink.java:38) à org.apache.flink.streaming.runtime.io. Str eamInputProcessor.processInput (StreamInputProcessor.java:185) à org.apache.flink.streaming.runtime.tasks.OneInputStreamTask.run (OneInputStreamTask.java:63) à org.apache.flink.streaming.runtime.tasks.StreamTask. invoquer (StreamTask.java:261) à org.apache.flink.runtime.taskmanager.Task.run (Task.java:665) à java.lang.Thread.run (Thread.java:748) Causé par: java.net.SocketTimeoutException: Lire a expiré à java.net.SocketInputStream.socketRead0 (native Method) à java.net.SocketInputStream.socketRead (SocketInputStream.java:116) à java.net.SocketInputStream.read (SocketInputStream. java: 171) at java.net.SocketInputStream.read (SocketInputStream.java:141) à sun.security.ssl.InputRecord.readFully (InputRecord.java:465) à sun.security.ssl.InputRecord.read (InputRecord.java:503) à sun.security.ssl.SSLSocketImpl.readRecord (SSLSocketImpl. java: 973) à sun.security.ssl.SSLSocketImpl.readDataRecord (SSLSocketImpl.java:930) à sun.security.ssl.AppInputStream.read (AppInputStream.java:105) à java.io.BufferedInputStream.fill (BufferedInputStream.java:246) à java.io.BufferedInputStream.read1 (BufferedInputStream.java:286) à java.io.BufferedInputStream.read (BufferedInputStream.java:345) à sun.net.www.http.HttpClient. parseHTTPHeader (HttpClient.java:735) sur sun.net.www.http.HttpClient.parseHTTP (HttpClient.java:678) à sun.net.www.protocol.http.HttpURLConnection.getInputStream0 (HttpURLConnection.java:1569) à sun.net.www.protocol.http.HttpURLConnection.getInputStream (HttpURLConnection.java:1474) à java.net. HttpURLConnection.getResponseCode (HttpURLConnection.java:480) à sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode (HttpsURLConnectionImpl.java:338) à com.microsoft.azure.datalake.store.HttpTransport.makeSingleCall (HttpTransport. java: 292) à com.microsoft.azure.datalake.store.HttpTransport.makeCall (HttpTransport.java:91) à com.microsoft.azure.datalake.store.Core.concurrentAppend (Core.java:210) à co.biz.yobit.sink.YobitLtcbtcTickerADLSink (YobitLtcbtcTickerADLSink.java:37) ... 6 plusLorsque j'exécute un travail de flink pour stocker les données dans Azure Data Lake, j'obtiens l'exception ci-dessous. Quelqu'un peut-il me guider à ce sujet?

+0

Peut-être que vous pouvez utiliser un débogueur et déterminer quel hôte est inconnu. Pour moi, cela ressemble à une mauvaise configuration ou problème d'adresse/port réseau. – twalthr

+0

Les erreurs ci-dessus sont généralement le résultat de conditions de réseau non fiables entre l'hôte qui exécute le code et Azure Data Lake Store. Où courez-vous le code? Est-ce qu'il s'exécute sur une machine virtuelle Azure ou en dehors d'Azure? –

+0

@ Amit Kulkarni. Je cours ce code sur le cluster autonome de flink dans ma VM locale de compagnie. – Dhinesh

Répondre

1

Les erreurs ci-dessus sont généralement le résultat de conditions réseau non fiables entre l'hôte qui exécute le code et Azure Data Lake Store. Comme confirmé dans les commentaires, les hôtes traversent des zones géographiques se connectant sur le WAN. Par conséquent, ces erreurs doivent être attendues et vous devriez réessayer si vous voyez ces erreurs

Il est recommandé que le cluster Flink s'exécute sur des machines virtuelles dans la même région que Azure Data Lake Store. Dans cette configuration, vous ne verrez pas ces erreurs de réseau.