Presto не может читать данные с S3 - PullRequest
0 голосов
/ 04 декабря 2018

Примечание : Это НЕ дубликат Не удается прочитать данные в Presto - можно в Hive


В попытке сделать мой PySpark приложение (которое использует boto3) работает, мне нужно было выполнить следующее несколько раз

  • переустановить pip
  • переустановить aws-sdk (boto3, botocore, aws-cli)

Хотя мне удалось заставить свое приложение работать, я в итоге разорвал связь между Presto и S3, так что Presto больше не может читать данные из Hive EXTERNAL table s, хранящихся на S3 (в то время как Hive может)


После выполнения простого запроса, например SELECT COUNT(*) FROM my_db.my_table в Presto, /var/log/presto/server.log файловых отчетов после трассировки стека

2018-12-04T12:29:54.433+0530    WARN    hive-hive-63    com.facebook.presto.hive.util.ResumableTasks    ResumableTask completed exceptionally
java.lang.NoClassDefFoundError: Could not initialize class com.amazon.ws.emr.hadoop.fs.util.EmrFsUtils
    at com.amazon.ws.emr.hadoop.fs.s3n.S3Credentials.initialize(S3Credentials.java:45)
    at com.amazon.ws.emr.hadoop.fs.HadoopConfigurationAWSCredentialsProvider.<init>(HadoopConfigurationAWSCredentialsProvider.java:26)
    at com.amazon.ws.emr.hadoop.fs.guice.DefaultAWSCredentialsProviderFactory.getAwsCredentialsProviderChain(DefaultAWSCredentialsProviderFactory.java:44)
    at com.amazon.ws.emr.hadoop.fs.guice.DefaultAWSCredentialsProviderFactory.getAwsCredentialsProvider(DefaultAWSCredentialsProviderFactory.java:28)
    at com.amazon.ws.emr.hadoop.fs.guice.EmrFSProdModule.getAwsCredentialsProvider(EmrFSProdModule.java:65)
    ...

см. Полную трассировку стека здесь


Я бы хотелуточнить, что

  • Похоже, что только Presto затронут ;Hive, aws-cli, Spark и т. Д. Могут считывать данные как обычно
  • Мои EC2 экземпляры имеют прикрепленный IAM Role, который позволяет читать данные со всех S3 buckets в моем аккаунте (и запись в некоторые конкретные сегменты)
  • Раньше Presto не жаловался на чтение из S3, проблема возникала только после перебирая с окружением
  • Дела идут гладко, если я установил местоположение моей внешней таблицы Hive на HDFS

Я перебрал некоторые связанные ссылки безрезультатно


Environment / Frameworks

...