Presto无法从S3读取数据

时间:2018-12-04 10:15:47

标签: amazon-web-services amazon-s3 hive amazon-emr presto

注意:这不是Can't read data in Presto - can in Hive

的副本

为使我的PySpark应用程序(使用boto3)正常运行,我不得不多次进行以下操作

  • 重新安装pip
  • 重新安装aws-sdkboto3botocoreaws-cli

在设法使我的应用程序正常工作的同时,我最终中断了PrestoS3 的通信,因此 Presto无法再从中读取数据Hive EXTERNAL table个存储在S3上Hive可以)


在Presto中运行类似SELECT COUNT(*) FROM my_db.my_table的简单查询后,/var/log/presto/server.log文件在 stacktrace

之后报告
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)
    ...

查看完整的堆栈跟踪here


我想澄清一下

  • 似乎只有Presto受到影响Hiveaws-cliSpark等可以照常读取数据
  • 我的 EC2实例具有一个附加的IAM Role ,它允许读取我帐户中所有 S3存储桶中的数据(并写入某些特定存储桶) )
  • Presto早期没有阅读S3的投诉,只有在与环境纠缠在一起后才出现问题
  • 如果我将Hive外部表的位置设置为HDFS
  • ,则一切运行顺利

我已经通过一些相关链接无济于事


Environment / Frameworks

0 个答案:

没有答案