如何连接HIVE Metastore+TRino+S3

ecbunoof  于 2022-09-27  发布在  Hive
关注(0)|答案(1)|浏览(298)
Hive-Standalone-metastore = v3.1.3
Hadoop jars               = v3.3.4

我已经设置了Hive MetaStore,最终目标是将它与TRINO连接起来,这样我就可以在S3中查询我的Parquet文件了。我现在在trino CLI中,可以看到我的e1d1e…现在想创建一个简单的表,这样我可以查询。。。但出现了一个异常

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凭据。我确实可以连接到bucket并读取bucket。我的bucket中包含parquet类型的文件。。。
我应该检查什么……我可能做错了什么?谢谢
编辑:添加我的hive.properties

connector.name=hive-hadoop2
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
omvjsjqw

omvjsjqw1#

我最终完全删除了端点条目,它开始生效。。
教训是…如果你正在学习S3集成教程…大多数人都不使用S3,但有些替代品如MinIO…如果你使用的是真正的S3,那么你根本就不用s3_endpoint。。
改为执行此操作

connector.name=hive-hadoop2
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

相关问题