我正在尝试使用亚马逊EMR控制台运行一个简单的配置单元作业。每次我收到错误,指出“错误缺少参数基本路径”并且hive作业失败。任何人都可以建议我如何解决它。
我已将输入文件插入s3:// bucket / inputs位置,脚本位于s3:// bucket / script中,我的hive查询如下:
create external table table_name(
string var 1,
string var 2....)
Row format delimited
fields terminated by '/t'
location 's3://bucket/outputs'
load data inpath 's3://bucket/inputs/data.txt' into table table_name )
在亚马逊EMR工作流程中,我遵循了亚马逊文档提供的所有说明。我是这个领域的初学者。是否需要在hive作业创建的参数列表部分中传递任何参数。
提前致谢
答案 0 :(得分:0)
试试这个:
-- start
SET mapred.input.dir.recursive=true;
CREATE EXTERNAL TABLE table_name (string line)
LOCATION 's3n://bucket/inputs/';
或
LOCATION 's3n://bucket/*/*';
我认为它有效。
查看此站点:S3 Support in Apache Hadoop,有三种类型的s3文件前缀。
答案 1 :(得分:0)
ASF文档明确声明在EMR上,您必须使用s3,而不是其他任何一个。亚马逊发布了自己的S3客户端库。如果Hive需要S3n,这意味着它的类路径出现问题,并且它不会接收AWS专有客户端 - 这不仅令人困惑,而且可能会造成麻烦。
对于好奇,这里是the history of Hadoop S3 support