Azure Проблема с базами данных для копирования папки из одного хранилища больших двоичных объектов в другое - PullRequest
0 голосов
/ 24 февраля 2020

В настоящее время я использую Azure Databricks ver. 5.5 LTS Копировать файлы из одного хранилища BLOB-объектов в другое, используя записную книжку Python для выполнения команды dbutils.fs.cp (source_location, target_location, True). Тем не менее, этот процесс работает в течение нескольких дней, а иногда и происходит сбой из-за java .io.IOException

Прилагается приведенный ниже код для всех журналов -

An error occurred while calling 

z:com.databricks.backend.daemon.dbutils.FSUtils.cp.
: java.io.IOException
    at com.microsoft.azure.storage.core.Utility.initIOException(Utility.java:737)
    at com.microsoft.azure.storage.blob.BlobInputStream.dispatchRead(BlobInputStream.java:264)
    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 shaded.databricks.org.apache.hadoop.fs.azure.NativeAzureFileSystem$NativeAzureFsInputStream.read(NativeAzureFileSystem.java:856)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
    at java.io.DataInputStream.read(DataInputStream.java:100)
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:91)
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:59)
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:119)
    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:366)
    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338)
    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:289)
    at com.databricks.backend.daemon.dbutils.FSUtils$.com$databricks$backend$daemon$dbutils$FSUtils$$cpRecursive(DBUtilsCore.scala:185)
    at com.databricks.backend.daemon.dbutils.FSUtils$$anonfun$com$databricks$backend$daemon$dbutils$FSUtils$$cpRecursive$1.apply(DBUtilsCore.scala:179)
    at com.databricks.backend.daemon.dbutils.FSUtils$$anonfun$com$databricks$backend$daemon$dbutils$FSUtils$$cpRecursive$1.apply(DBUtilsCore.scala:178)
    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
    at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
    at com.databricks.backend.daemon.dbutils.FSUtils$.com$databricks$backend$daemon$dbutils$FSUtils$$cpRecursive(DBUtilsCore.scala:178)
    at com.databricks.backend.daemon.dbutils.FSUtils$$anonfun$cp$1$$anonfun$apply$3.apply(DBUtilsCore.scala:118)
    at com.databricks.backend.daemon.dbutils.FSUtils$$anonfun$cp$1$$anonfun$apply$3.apply(DBUtilsCore.scala:113)
    at com.databricks.backend.daemon.dbutils.FSUtils$.com$databricks$backend$daemon$dbutils$FSUtils$$withFsSafetyCheck(DBUtilsCore.scala:81)
    at com.databricks.backend.daemon.dbutils.FSUtils$$anonfun$cp$1.apply(DBUtilsCore.scala:113)
    at com.databricks.backend.daemon.dbutils.FSUtils$$anonfun$cp$1.apply(DBUtilsCore.scala:113)
    at com.databricks.backend.daemon.dbutils.FSUtils$.com$databricks$backend$daemon$dbutils$FSUtils$$withFsSafetyCheck(DBUtilsCore.scala:81)
    at com.databricks.backend.daemon.dbutils.FSUtils$.cp(DBUtilsCore.scala:112)
    at com.databricks.backend.daemon.dbutils.FSUtils.cp(DBUtilsCore.scala)
    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 py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:380)
    at py4j.Gateway.invoke(Gateway.java:295)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:251)
    at java.lang.Thread.run(Thread.java:748)
**Caused by: com.microsoft.azure.storage.StorageException: Blob hash mismatch (integrity check failed), Expected value is tS8AcRggdaug6edba3gFnoEBnZg==, retrieved p64PraksdkhuKR3Uq53jxHxw==.**
    at com.microsoft.azure.storage.blob.CloudBlob$9.postProcessResponse(CloudBlob.java:1409)
    at com.microsoft.azure.storage.blob.CloudBlob$9.postProcessResponse(CloudBlob.java:1310)
    at com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:149)
    at com.microsoft.azure.storage.blob.CloudBlob.downloadRangeInternal(CloudBlob.java:1493)
    at com.microsoft.azure.storage.blob.BlobInputStream.dispatchRead(BlobInputStream.java:255)

Любые подсказки, как решить эту проблему, потому что команда cp работает без проблем в течение нескольких дней, а затем завершается ошибкой в ​​другой день. Также я запланировал этот блокнот для создания задания Databricks.

...