Невозможно соединиться с S3 и Spark локально - PullRequest
0 голосов
/ 27 сентября 2018

Ниже приведен мой код: я пытаюсь получить доступ к файлам S3 из локально спарк.Но получаю ошибку: Исключение в потоке "main" org.apache.hadoop.security.AccessControlException: Отказано в доступе: s3n: // имя_каталога / папка. Я также использую jars: hadoop-aws-2.7.3.jar, aws-java-sdk-1.7.4.jar, hadoop-auth-2.7.1.jar при отправке искрового задания из cmd.

package org.test.snow
import org.apache.spark._
import org.apache.spark.SparkContext._
import org.apache.log4j._
import org.apache.spark.storage.StorageLevel
import org.apache.spark.sql.SparkSession
import org.apache.spark.util.Utils
import org.apache.spark.sql._
import org.apache.hadoop.fs.FileSystem
import org.apache.hadoop.fs.Path

object SnowS3 {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("IDV4")
val sc = new SparkContext(conf)
val spark = new org.apache.spark.sql.SQLContext(sc)
import spark.implicits._
sc.hadoopConfiguration.set("fs.s3a.impl","org.apache.hadoop.fs.s3native.NativeS3FileSystem")
sc.hadoopConfiguration.set("fs.s3a.awsAccessKeyId", "A*******************A")
sc.hadoopConfiguration.set("fs.s3a.awsSecretAccessKey","A********************A")
val cus_1=spark.read.format("com.databricks.spark.csv")
.option("header","true")
.option("inferSchema","true")
.load("s3a://tb-us-east/working/customer.csv")
cus_1.show()
    }
}

Любая помощь приветствуется.К вашему сведению: я использую свечи 2.1

1 Ответ

0 голосов
/ 28 сентября 2018

Вы не должны устанавливать эту опцию fs.s3a.impl;это суеверие, которое, похоже, сохраняется в примерах искры.

Вместо этого используется разъем S3A, просто используя префикс s3a: // с

  • совместимыми версиями версий hadoop- * jar.Да, hadoop-aws-2.7.3 нуждается в hadoop-common-2.7.3
  • , задающем параметры аутентификации для s3a, fs.s3a.access.key и `fs.s3a.secret.key '

Если это не сработает, посмотрите документацию по устранению неисправностей s3a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...