Проблема доступа к файлам из S3 с использованием искры на удаленном кластере Yarn - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь импортировать CSV-файлы из S3, используя spark-shell (val df = spark.read.csv ("s3a: // xxxxxx")), клиент spark-shell подключен к удаленному кластеру пряжи.Это не удалось с java.lang.VerifyError, однако, когда я запускаю spark-shell с той же машины, что и yarn resourcemanager, он работает нормально.

Вот код ошибки:

java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
  org/apache/hadoop/fs/s3a/S3AFileSystem.s3GetFileStatus(Lorg/apache/hadoop/fs/Path;Ljava/lang/String;Ljava/util/Set;)Lorg/apache/hadoop/fs/s3a/S3AFileStatus; @274: invokestatic
  Reason:
    Type 'com/amazonaws/AmazonServiceException' (current frame, stack[2]) is not assignable to 'com/amazonaws/SdkBaseException'
  Current Frame:
    bci: @274
    flags: { }
    locals: { 'org/apache/hadoop/fs/s3a/S3AFileSystem', 'org/apache/hadoop/fs/Path', 'java/lang/String', 'java/util/Set', 'java/lang/String', 'com/amazonaws/AmazonServiceException' }
    stack: { 'java/lang/String', 'java/lang/String', 'com/amazonaws/AmazonServiceException' }

spark-default.conf:

spark.master yarn
spark.hadoop.fs.s3a.server-side-encryption-algorithm SSE-KMS
spark.hadoop.fs.s3a.server-side-encryption.key xxxxxxxxxxxxxxxxxxxxxxxxxxx
spark.hadoop.fs.s3a.enableServerSideEncryption true
com.amazonaws.services.s3.enableV4 true
spark.hadoop.fs.s3a.impl org.apache.hadoop.fs.s3a.S3AFileSystem
spark.blockManager.port 20020
spark.driver.port 20020
spark.master.ui.port 4048
spark.ui.port 4041
spark.port.maxRetries 100
spark.yarn.jars hdfs://hdfs-master:4040/spark/jars/*
spark.driver.extraJavaOptions=-Dlog4j.configuration=/usr/local/spark/conf/log4j.properties
spark.executor.extraJavaOptions=-Dlog4j.configuration=/usr/local/spark/conf/log4j.properties
spark.eventLog.enabled  true
spark.eventLog.dir hdfs://hdfs-master:4040/spark-logs
spark.yarn.app.container.log.dir /home/aws_install/hadoop/logdir

.hadooprc

hadoop_add_to_classpath_tools hadoop-aws

Есть идеи, в чем причина проблемы?

1 Ответ

1 голос
/ 02 апреля 2019

подсказок о проблемах classpath.

Одна из проблем, связанных с этим изменением hadooprc, заключается в том, что оно изменяет только локальную среду, а не остальную часть кластера.Но тот факт, что вы дошли до org/apache/hadoop/fs/s3a/S3AFileSystem.s3GetFileStatus, подразумевает, что загружается JAR-файл S3A, но у самой JVM есть проблемы

Возможно, на пути к классам есть две копии AWS SDK, и поэтомучто только что поднятый AmazonServiceException не является подклассом SdkBaseException из-за смешанных JAR-файлов.

...