Hive-Standalone-metastore = v3.1.3
Hadoop jars = v3.3.4
我已经设置了 Hive MetaStore,最终目标是将其与 TRINO 连接,这样我就可以在 S3 中查询我的镶木地板文件..并且我现在在
trino
CLI 中,可以看到我的 hive.<schema_name>
...现在想要创建一个简单的表,以便我可以查询..但出现异常
trino:<MY_SCHEMA>> CREATE TABLE IF NOT EXISTS hive.<MY_SCHEMA>.<MY_TABLE> (
-> column_one VARCHAR,
-> column_two VARCHAR,
-> column_three VARCHAR,
-> column_four DOUBLE,
-> column_five VARCHAR,
-> column_six VARCHAR,
-> query_start_time TIMESTAMP)
-> WITH (
-> external_location = 's3a://<MY_S3_BUCKET_NAME>/dir_one/dir_two',
-> format = 'PARQUET'
-> );
CREATE TABLE
Query 20220924_181001_00019_bvs42 failed: Got exception: java.io.FileNotFoundException PUT 0-byte object on dir_one/dir_two: com.amazonaws.services.s3.model.AmazonS3Exception: Not Found (Service: Amazon S3; Status Code: 404; Error Code: 404 Not Found; Request ID: IDNUM123; S3 Extended Request ID: soMeLongID123=; Proxy: null), S3 Extended Request ID: soMeLongID123:404 Not Found
我确实手动测试了我的 AWS 凭证。我确实可以连接到存储桶并读取存储桶。我的存储桶中包含类型为
parquet
的文件...
我应该检查什么或者..我可能做错了什么?谢谢
编辑:添加我的
hive.properties
connector.name=hive
hive.metastore.uri=thrift://$HIVE_IP_ADDR:9083
hive.s3.path-style-access=true
hive.s3.endpoint=$AWS_S3_ENDPOINT
hive.s3.aws-access-key=$AWS_ACCESS_ID
hive.s3.aws-secret-key=$AWS_SECRET
hive.s3.ssl.enabled=false
我最终完全删除了端点条目,它开始变得栩栩如生..
教训是..如果您正在遵循S3集成教程..大多数人不使用S3,而是使用像MinIO这样的替代品...如果您使用真正的S3,则根本不使用
s3_endpoint
..
改为这样做
connector.name=hive
hive.metastore.uri=thrift://$HIVE_IP_ADDR:9083
hive.s3.path-style-access=true
hive.s3.aws-access-key=$AWS_ACCESS_ID
hive.s3.aws-secret-key=$AWS_SECRET
hive.s3.ssl.enabled=false
hive.metastore.uri=thrift://$HIVE_IP_ADDR:9083
您从哪里获得 S3 的 thrift://$HIVE_IP_ADDR:9083 值?
您的评论可能会帮助我建立从 Presto 到 S3 的连接
@EriK,@Sajjan Kumar