0

我使用以下 Hive 查询:

hive> INSERT OVERWRITE LOCAL DIRECTORY "gs:// Google/Storage/Directory/Path/Name" row format delimited fields terminated by ','
select * from <HiveDatabaseName>.<HiveTableName>;

我收到以下错误:

"Error: Failed with exception Wrong FS:"gs:// Google/Storage/Directory/PathName", expected: file:///

我可能做错了什么?

4

2 回答 2

3

Local从您的语法中 删除。请参阅以下语法

INSERT OVERWRITE DIRECTORY 'gs://Your_Bucket_Path/'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY "\n" 
SELECT * FROM YourExistingTable; 
于 2018-11-17T10:32:28.353 回答
0

Hive 中有一个错误,包括 IIRC Hive 1.2.1,即使表路径位于不同的文件系统中,它也会使用配置的fs.default.name或用于它的 scratchdir。fs.defaultFS在您的情况下,您似乎将开箱即用的默认设置设置fs.defaultFSfile:///,这就是它显示“预期:file:///”的原因。在分布式 Hadoop 集群上,您可能会看到它显示“预期:hdfs://...”。

您可以通过覆盖fs.default.name和在单个配置单元提示中修复它fs.defaultFS

> set fs.default.name=gs://your-bucket/
> set fs.defaultFS=gs://your-bucket/

您可能还想修改core-site.xml文件中的这些条目以指向您的 GCS 位置以使其更容易。

于 2015-12-02T20:47:08.393 回答