在s3中使用交互模式从选项卡分隔的文件创建配置单元表



我已经将选项卡分隔的文件加载到S3中,其中bucket下有这种类型的文件夹:铲斗-->se-->y=2013-->m=07-->d=14-->h=00

每个子文件夹有1个文件,表示我的流量小时。

然后,我创建了一个电子病历工作流,以便在与配置单元的交互模式下运行。

当我登录到主机并进入蜂箱时,我运行以下命令:

CREATE EXTERNAL TABLE se (
id bigint,
oc_date timestamp)
partitioned by (y string, m string, d string, h string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY 't'
LOCATION 's3://bi_data';

我收到这个错误消息:

失败:元数据中出错:java.lang.IollegalArgumentException:在bucket 中列出对象时,必须指定bucket名称参数

失败:执行错误,返回代码1org.apache.hadoop.hive.ql.exec.DLL任务

有人能帮忙吗?

更新即使我尝试只使用字符串字段,我也会得到同样的错误。创建带有字符串的表:

CREATE EXTERNAL TABLE se (
id string,
oc_date string)
partitioned by (y string, m string, d string, h string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY 't'
LOCATION 's3://bi_data';

配置单元版本0.8.1.8

所以,解决方案是我犯了两个错误:

  1. 当只写bucket名称时,S3路径中应该有一个尾部斜杠。此处参考

  2. 下划线也是一个问题,bucket名称应该符合DNS。

希望我帮过别人。