Как настроить прокси-сервер aws для конфигурации Spark - PullRequest
0 голосов
/ 22 мая 2019

Любая идея, как настроить прокси-сервер aws и регион для запуска сеанса или контекста.

Я могу установить код aws javasdk, и он работает нормально.

      ClientConfiguration clientConfig = new ClientConfiguration();
      clientConfig.setProxyHost("aws-proxy-qa.xxxxx.organization.com");
        clientConfig.setProxyPort(8099));

      AmazonS3ClientBuilder.standard()
        .withRegion(getAWSRegion(Regions.US_WEST_2)
        .withClientConfiguration(clientConfig) //Setting aws proxy host

Может помочь мне установить один и тот же объект для контекста зажигания (как регион, так и прокси), так как я читаю файл s3, который отличается от региона emr.

1 Ответ

2 голосов
/ 24 мая 2019

на основе области fs.s3a.access.key и fs.s3a.secret.key будет определено автоматически.

, как и в других свойствах s3, установите значение sparkConf

/**
      * example getSparkSessionForS3
      * @return
      */
    def getSparkSessionForS3():SparkSession = {
  val conf = new SparkConf()
    .setAppName("testS3File")
    .set("spark.hadoop.fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
    .set("spark.hadoop.fs.s3a.endpoint", "yourendpoint")
    .set("spark.hadoop.fs.s3a.connection.maximum", "200")
    .set("spark.hadoop.fs.s3a.fast.upload", "true")
    .set("spark.hadoop.fs.s3a.connection.establish.timeout", "500")
    .set("spark.hadoop.fs.s3a.connection.timeout", "5000")
    .set("spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version", "2")
    .set("spark.hadoop.com.amazonaws.services.s3.enableV4", "true")
    .set("spark.hadoop.com.amazonaws.services.s3.enforceV4", "true")
    .set("spark.hadoop.fs.s3a.proxy.host","yourhost") 
  val spark = SparkSession
    .builder()
    .config(conf)
    .getOrCreate()
  spark
}
...