执行Hive查询时出现Vertex失败问题求助
核心报错信息
Error while compiling statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask.
Vertex failed, vertexName=Map 3, vertexId=vertex_1683264843276_149409_1_01, diagnostics=[Vertex vertex_1683264843276_149409_1_01
[Map 3] killed/failed due to: ROOT_INPUT_INIT_FAILURE,
Vertex Input: i_bsm_starmrt_ils_monthend_info_tb initializer failed,
vertex=vertex_1683264843276_149409_1_01 [Map 3],
org.apache.hadoop.mapred.InvalidInputException: Input path does not exist:
排查步骤
确认表的HDFS存储路径存在
先通过Hive命令查表的存储位置:DESCRIBE FORMATTED i_bsm_starmrt_ils_monthend_info_tb;找到
Location字段对应的路径,再用HDFS命令验证路径是否存在:hdfs dfs -ls <表的HDFS路径>检查分区表的分区完整性
如果是分区表,先查看所有已存在的分区:SHOW PARTITIONS i_bsm_starmrt_ils_monthend_info_tb;核对查询语句中的分区条件,确认对应的分区目录在HDFS上实际存在。
验证用户访问权限
执行命令检查当前用户对表路径的读权限:hdfs dfs -test -r <表的HDFS路径>返回非0值代表权限不足,需联系管理员调整ACL或所属组权限。
同步元数据与HDFS实际数据
若元数据和HDFS数据不一致(比如目录被手动删除但元数据未更新),执行修复命令:MSCK REPAIR TABLE i_bsm_starmrt_ils_monthend_info_tb;排查Tez资源配置(可选)
若以上步骤无问题,可能是Tez容器资源不足导致初始化失败。可检查YARN队列资源配额,或调整Hive的Tez参数,比如hive.tez.container.size、hive.tez.java.opts。
内容的提问来源于stack exchange,提问作者Ahmad Hussain

