gpt4 book ai didi

hadoop - 将数据从 S3 加载到位于 EMR 中 S3 的外部 Hive 表时出现 "Path is not legal"错误

转载 作者:可可西里 更新时间:2023-11-01 15:33:26 24 4
gpt4 key购买 nike

我有一个运行 Hive 的 EMR 集群。我在 S3 上有一个这样定义的外部表:

+-----------------------------------------------------------------+
| CREATE EXTERNAL TABLE `blah`( |
| `blah1` string, |
| `blah2` string) |
| PARTITIONED BY ( |
| `blah3` string, |
| `blah4` string, |
| ROW FORMAT DELIMITED |
| FIELDS TERMINATED BY '\t' |
| STORED AS INPUTFORMAT |
| 'org.apache.hadoop.mapred.TextInputFormat' |
| OUTPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' |
| LOCATION |
| 's3://REDACTED/events' |
| TBLPROPERTIES ( |
| 'transient_lastDdlTime'='REDACTED') |
+-----------------------------------------------------------------+

此表包含一些数据,我可以通过直线中的 SELECT 语句查看这些数据。该数据来自使用 s3distcp 的传输。

我遇到的问题是,当我尝试通过 LOAD DATA INPATH 命令加载数据时出现以下错误:

Error: Error while compiling statement: FAILED: SemanticException [Error 10028]: Line 1:17 Path is not legal ''s3://REDACTED/FILE_I_WANT_TO_LOAD'': Move from: s3://REDACTED/FILE_I_WANT_TO_LOAD to: s3://REDACTED/PARTITION_IN_TABLE is not valid. Please check that values for params "default.fs.name" and "hive.metastore.warehouse.dir" do not conflict. (state=42000,code=10028)

请注意,我尝试加载的文件和我尝试加载的表存在于不同的存储桶中。

我认为这个问题归结为将 S3 设置为 Hive 的基本文件系统,但我尝试编辑 default.fs.namehive.metastore.warehouse.dir 都是包含表的 S3 存储桶。这样做会产生完全相同的错误。

如有任何帮助,我们将不胜感激!

最佳答案

不要使用 LOAD,只需为每个 S3 位置定义一个外部表,然后使用 INSERT INTO ... SELECT ... 样式查询。

关于hadoop - 将数据从 S3 加载到位于 EMR 中 S3 的外部 Hive 表时出现 "Path is not legal"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29131336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com