Примечание : Это НЕ дубликат Не удается прочитать данные в 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
Я перебрал некоторые связанные ссылки безрезультатно