通过s3在Amazon EMR上的TezTask顶点失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过s3在Amazon EMR上的TezTask顶点失败相关的知识,希望对你有一定的参考价值。
我在EMR上创建了Hive表,看起来像
create external table tests3(
transaction_id String,
order_id String,
user_id String,
amount String,
subscriber_number String,
product_type String,
provider String,
region String,
status String,
created_time String,
last_updated_time BIGINT,
)
row format
serde 'org.openx.data.jsonserde.JsonSerDe'
location 's3://locationtobucket';
当我从tests3中选择*时,我得到了记录。但是运行任何tez任务都会给我以下错误。
Query : select count(*) from tests3;
Vertex failed, vertexName=Map 1, vertexId=vertex_1513582536692_0022_1_00
, diagnostics=[Vertex vertex_1513582536692_0022_1_00 [Map 1] killed/failed due to:ROOT_INPUT_INIT_FAILURE, Vertex Input: tests3 initializer fail
ed, vertex=vertex_1513582536692_0022_1_00 [Map 1], com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Bad Req
uest (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: DEBA2E241B9DE8C3),
任何关于问题的想法都将受到高度赞赏
答案
请检查您的帐户是否具有S3和您尝试访问的存储桶的相应权限。另外,检查S3存储桶URL是否正确,例如S3:// locationtobucket / missingfile
标准的第一步是:尝试使用具有相同凭据的AWS命令行工具,通过以下命令:
hdfs fs -ls s3a:// locationtobucket /
另一答案
只需将配置单元执行引擎更改为MR,它就会开始正常工作。
以上是关于通过s3在Amazon EMR上的TezTask顶点失败的主要内容,如果未能解决你的问题,请参考以下文章
如何将文件从 S3 复制到 Amazon EMR HDFS?
如何在 Amazon EMR 上将连接器添加到 presto