注意:这不是Can't read data in Presto - can in Hive
的副本为使我的PySpark
应用程序(使用boto3
)正常运行,我不得不多次进行以下操作
pip
aws-sdk
(boto3
,botocore
,aws-cli
)在设法使我的应用程序正常工作的同时,我最终中断了Presto
和S3
的通信,因此 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
我想澄清一下
Hive
,aws-cli
,Spark
等可以照常读取数据EC2
实例具有一个附加的IAM Role
,它允许读取我帐户中所有 S3存储桶中的数据(并写入某些特定存储桶) )HDFS
我已经通过一些相关链接无济于事