亚马逊EMR蜂巢执行错误

时间:2015-04-09 14:31:20

标签: amazon emr

我正在尝试使用亚马逊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作业创建的参数列表部分中传递任何参数。

提前致谢

2 个答案:

答案 0 :(得分:0)

试试这个:

-- start
SET mapred.input.dir.recursive=true;
CREATE EXTERNAL TABLE table_name (string line)
LOCATION 's3n://bucket/inputs/';

LOCATION 's3n://bucket/*/*';

我认为它有效。

  • Apache Pig需要协议 s3:// ,但是配置单元需要 s3n:// 。我不知道为什么。

查看此站点:S3 Support in Apache Hadoop,有三种类型的s3文件前缀。

  • S3A(URI scheme:s3a://) - Hadoop 2.7 +
  • S3N FileSystem(URI scheme:s3n://)
  • S3 Block FileSystem(URI scheme:s3://)

答案 1 :(得分:0)

ASF文档明确声明在EMR上,您必须使用s3,而不是其他任何一个。亚马逊发布了自己的S3客户端库。如果Hive需要S3n,这意味着它的类路径出现问题,并且它不会接收AWS专有客户端 - 这不仅令人困惑,而且可能会造成麻烦。

对于好奇,这里是the history of Hadoop S3 support