当我运行flink作业将数据存储到Azure data Lake时,我遇到以下异常。有人可以指导我吗?

当我运行flink作业将数据存储到Azure data Lake时,我遇到以下异常。有人可以指导我吗?,azure,apache-flink,flink-streaming,azure-data-lake,Azure,Apache Flink,Flink Streaming,Azure Data Lake,com.microsoft.azure.datalake.store.ADLException:操作CONCURRENTAPPEND失败,出现异常java.net.SocketTimeoutException:读取超时 在5次尝试[java.net.UnknownHostException,java.net.UnknownHostException,java.net.UnknownHostException,java.net.SocketTimeoutException,java.net.Soc

com.microsoft.azure.datalake.store.ADLException:操作CONCURRENTAPPEND失败,出现异常java.net.SocketTimeoutException:读取超时 在5次尝试[java.net.UnknownHostException,java.net.UnknownHostException,java.net.UnknownHostException,java.net.SocketTimeoutException,java.net.SocketTimeoutException]后最后遇到的异常 位于com.microsoft.azure.datalake.store.ADLStoreClient.getExceptionFromResponse(ADLStoreClient.java:1124) 位于co.biz.yobit.sink.yobitlctickeradlsink.invoke(yobitlctctickeradlsink.java:41) 位于org.apache.flink.streaming.api.operators.StreamSink.processElement(StreamSink.java:38) 位于org.apache.flink.streaming.runtime.io.StreamInputProcessor.processInput(StreamInputProcessor.java:185) 位于org.apache.flink.streaming.runtime.tasks.OneInputStreamTask.run(OneInputStreamTask.java:63) 位于org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:261) 位于org.apache.flink.runtime.taskmanager.Task.run(Task.java:665) 运行(Thread.java:748) 原因:java.net.SocketTimeoutException:读取超时 位于java.net.SocketInputStream.socketRead0(本机方法) 位于java.net.SocketInputStream.socketRead(SocketInputStream.java:116) 位于java.net.SocketInputStream.read(SocketInputStream.java:171) 位于java.net.SocketInputStream.read(SocketInputStream.java:141) 位于sun.security.ssl.InputRecord.readfull(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) http.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.yobitlctickeradlsink.invoke(yobitlctctickeradlsink.java:37)
... 6更多

以上错误通常是运行代码的主机和Azure Data Lake存储之间不可靠的网络条件造成的。如评论中所确认的,主机运行在通过WAN连接的不同地理位置。因此,这些错误是意料之中的,如果您看到这些错误,应该重试


建议Flink群集在与Azure Data Lake Store位于同一区域的VM上运行。在该配置中,您将不会看到这些网络错误

上述错误通常是运行代码的主机和Azure Data Lake存储之间不可靠的网络条件造成的。如评论中所确认的,主机运行在通过WAN连接的不同地理位置。因此,这些错误是意料之中的,如果您看到这些错误,应该重试


建议Flink群集在与Azure Data Lake Store位于同一区域的VM上运行。在该配置中,您将不会看到这些网络错误

也许您可以使用调试器,找出未知的主机。对我来说,这似乎是一个错误的配置或网络地址/端口问题。上述错误通常是运行代码的主机和Azure Data Lake Store之间不可靠的网络条件造成的。你在哪里运行代码?它是在Azure虚拟机上运行还是在Azure之外运行?@Amit Kulkarni。我正在我公司本地VM的flink独立群集上运行此代码。@Dhinesh“本地VM”在哪里运行?它是作为您的ADLS帐户在Azure地区还是在您公司的数据中心?@Amit Kulkarni。我的“本地VM”linux机器正在班加罗尔运行我公司的服务器。我的ADLS帐户区域是East US 2。也许你可以使用调试器找出未知的主机。对我来说,这似乎是一个错误的配置或网络地址/端口问题。上述错误通常是运行代码的主机和Azure Data Lake Store之间不可靠的网络条件造成的。你在哪里运行代码?它是在Azure虚拟机上运行还是在Azure之外运行?@Amit Kulkarni。我正在我公司本地VM的flink独立群集上运行此代码。@Dhinesh“本地VM”在哪里运行?它是作为您的ADLS帐户在Azure地区还是在您公司的数据中心?@Amit Kulkarni。我的“本地VM”linux机器正在班加罗尔运行我公司的服务器。我的ADLS帐户区域是美国东部2。
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();
            }
        }

    }