I have created Azure VM and installed my JAVA application then connecting directly it to WASB storage.
When I uploading file in my application, I see file uploaded successfully in WASB storage account. When I am try to retrieve the file. It throws with following error:-
2017-01-03 07:34:23.817 GMT+0000 WARN [admin-cccd8bdeefad4099b483404727701269-49-43d241427b20490fbee434a9ef31a2f5-libraryService.previewLibraryData] LibraryAPI - Failed to convert from view to data window
java.lang.RuntimeException: Failed to iterate data file
at com.myapp.library.stacks.DataFileIterator.computeNext(DataFileIterator.java:50)
at com.myapp.library.stacks.DataFileIterator.computeNext(DataFileIterator.java:17)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.myapp.frontend.server.LibraryAPI.toDataWindow(LibraryAPI.java:1453)
at com.myapp.frontend.server.LibraryAPI.previewLibraryData(LibraryAPI.java:1092)
at com.myapp.frontend.server.LibraryWebSocketDelegate.previewLibraryData(LibraryWebSocketDelegate.java:278)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.myapp.frontend.util.PXWebSocketProtocolHandler$PXMethodHandler.call(PXWebSocketProtocolHandler.java:144)
at com.myapp.frontend.util.PXWebSocketEndpoint.performMethodCall(PXWebSocketEndpoint.java:284)
at com.myapp.frontend.util.PXWebSocketEndpoint.access$200(PXWebSocketEndpoint.java:47)
at com.myapp.frontend.util.PXWebSocketEndpoint$1.run(PXWebSocketEndpoint.java:169)
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)
Caused by: java.io.IOException: Could not read footer: java.lang.NoSuchMethodError: com.microsoft.azure.storage.core.StorageCredentialsHelper.signBlobAndQueueRequest(Lcom/microsoft/azure/storage/StorageCredentials;Ljava/net/HttpURLConnection;JLcom/microsoft/azure/storage/OperationContext;)V
at parquet.hadoop.ParquetFileReader.readAllFootersInParallel(ParquetFileReader.java:190)
at parquet.hadoop.ParquetFileReader.readAllFootersInParallelUsingSummaryFiles(ParquetFileReader.java:146)
at com.myapp.hadoop.common.PxParquetReader.<init>(PxParquetReader.java:90)
at com.myapp.hadoop.common.PaxParquetReaderImpl.doRead(PaxParquetReaderImpl.java:50)
at com.myapp.hadoop.common.PaxParquetReaderImpl.access$000(PaxParquetReaderImpl.java:17)
at com.myapp.hadoop.common.PaxParquetReaderImpl$1.run(PaxParquetReaderImpl.java:41)
at com.myapp.hadoop.common.PaxParquetReaderImpl$1.run(PaxParquetReaderImpl.java:38)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at com.myapp.hadoop.common.PaxParquetReaderImpl.nextRow(PaxParquetReaderImpl.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.myapp.hadoop.core.DistributionManager$$anon$9.invoke(DistributionManager.scala:296)
at com.sun.proxy.$Proxy60.nextRow(Unknown Source)
at com.myapp.library.stacks.ParquetPartFileReader.readRaw(ParquetPartFileReader.java:57)
at com.myapp.library.stacks.ParquetPartFileReader.readRow(ParquetPartFileReader.java:38)
at com.myapp.library.stacks.DataFilePagingReader.readRow(DataFilePagingReader.java:63)
at com.myapp.library.stacks.DataFileIterator.computeNext(DataFileIterator.java:45)
... 17 more
Caused by: java.lang.NoSuchMethodError: com.microsoft.azure.storage.core.StorageCredentialsHelper.signBlobAndQueueRequest(Lcom/microsoft/azure/storage/StorageCredentials;Ljava/net/HttpURLConnection;JLcom/microsoft/azure/storage/OperationContext;)V
at org.apache.hadoop.fs.azure.SendRequestIntercept.eventOccurred(SendRequestIntercept.java:150)
at org.apache.hadoop.fs.azure.SendRequestIntercept.eventOccurred(SendRequestIntercept.java:40)
at com.microsoft.azure.storage.StorageEventMultiCaster.fireEvent(StorageEventMultiCaster.java:52)
at com.microsoft.azure.storage.core.ExecutionEngine.fireSendingRequestEvent(ExecutionEngine.java:360)
at com.microsoft.azure.storage.core.ExecutionEngine.setupStorageRequest(ExecutionEngine.java:316)
at com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:95)
at com.microsoft.azure.storage.blob.CloudBlob.downloadRangeInternal(CloudBlob.java:1629)
at com.microsoft.azure.storage.blob.BlobInputStream.dispatchRead(BlobInputStream.java:255)
at com.microsoft.azure.storage.blob.BlobInputStream.readInternal(BlobInputStream.java:448)
at com.microsoft.azure.storage.blob.BlobInputStream.read(BlobInputStream.java:420)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
at java.io.DataInputStream.read(DataInputStream.java:149)
at org.apache.hadoop.fs.azure.NativeAzureFileSystem$NativeAzureFsInputStream.read(NativeAzureFileSystem.java:735)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at java.io.FilterInputStream.read(FilterInputStream.java:83)
at parquet.bytes.BytesUtils.readIntLittleEndian(BytesUtils.java:63)
at parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:284)
at parquet.hadoop.ParquetFileReader$2.call(ParquetFileReader.java:180)
at parquet.hadoop.ParquetFileReader$2.call(ParquetFileReader.java:176)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 more
How to solve this issue?
According to the error information
java.lang.NoSuchMethodError
, please check your Java runtime version whether or not be compatibled with these dependencies jar files, even there are some version confliction issue for these dependencies.Please refer to the SO thread How do I fix a NoSuchMethodError? & the Oracle offical explaination for the exception. Meanwhile, there is a blog about how to debug for this exception which may help you resolving it.