Я пытаюсь прочитать из s3, предоставляя key
и bucket
, чтобы получить входные потоки, а именно S3ObjectInputStream
Любое понимание того, почему я сталкиваюсь с проблемами, я могу запустить это нормально локально, но когдая запускаю его на EMR, у меня эта ошибка ниже
Caused by: org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool
THINGS, я пытался закрыть s3object
как s3object.close
перед возвратом значения.Но тогда я получаю Exception in thread "main" java.io.IOException: Attempted read on closed stream.
Так заброшено, что ...
def getS3Object(s3Client: AmazonS3, bucketName: String, key: String): S3ObjectInputStream = {
val s3Object = s3Client.getObject(bucketName, key)
val objectContent = s3Object.getObjectContent
objectContent
}
Исключение в потоке "main" com.amazonaws.SdkClientException: Невозможно выполнить HTTP-запрос: Timeoutожидание соединения из пула на com.amazonaws.http.AmazonHttpClient $ RequestExecutor.handleRetryableException (AmazonHttpClient.java:1175) на com.amazonaws.http.AmazonHttpClient $ RequestExecutor.executeHelper (AmazonHttpCamaent.jaw) at.AmazonHttpClient $ RequestExecutor.doExecute (AmazonHttpClient.java:770) по адресу com.amazonaws.http.AmazonHttpClient $ RequestExecutor.executeWithTimer (AmazonHttpClient.java:744) по адресу com.amazonaws.http.lientHackTectexExtexAutHezon: $по адресу com.amazonaws.http.AmazonHttpClient $ RequestExecutor.access $ 500 (AmazonHttpClient.java:686) по адресу com.amazonaws.http.AmazonHttpClient $ RequestExecutionBuilderImpl.execute (AmazonHttpClient.javapxa.hazon) at8).AmazonHttpClient.java:532) на com.amazonaws.http.AmazonHttpClient.execute (AmazonHttpClient.java:512) на com.amazonaws.services.s3.AmazonS3Client.invoke (AmazonS3Client.java:4914) на com.amazonaws.services.s3.AmazonS3Client.invoke (AmazonS3Client.java:60)Домен) в content.spark.ContentIngestion $$ anonfun $ 1.apply (ContentIngestion.scala: 45) в content.spark.ContentIngestion $$ anonfun $ 1.apply (ContentIngestion.scala: 45) в scala.collection.TraversableLike $$ anonfun $ map$ 1.apply (TraversableLike.scala: 234) в scala.collection.TraversableLike $$ anonfun $ map $ 1.apply (TraversableLike.scala: 234) в scala.collection.IndexedSeqOptimized $ class.foreach (IndexedSeqOptimized.scala: 33) в scala.collection.mutable.ArrayOps $ ofRef.foreach (ArrayOps.scala: 186) в scala.collection.TraversableLike $ class.map (TraversableLike.scala: 234) в scala.collection.mutable.ArrayOps $ ofRef.map (ArrayOps.scala: 186) в content.spark.ContentIngestion.getSolrDocuments (ContentIngestion.scala: 45) в content.spark.Main $ .main (Main.scala: 57) для содержимого.spark.Main.main (Main.scala) на sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод)
Caused by: org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool