cdm场景迁移部分表迁移失败
【摘要】 【问题现象】:使用2.8.2版本的cdm场景迁移功能迁移线下Hive数据到MRS Hive,最终作业状态显示Failed
该篇文章对该问题进行了详细分析。
【问题现象】:
使用2.8.2版本的cdm场景迁移功能迁移线下Hive数据到MRS Hive,最终作业状态显示Failed
【问题分析】:
1.点击场景迁移作业名称,进入子作业列表,可以看到每张表都对应一个子作业,子作业名称为:场景迁移作业名称_表名。找到失败的子作业,点击状态栏的问号出现以下报错:
Table creation failed. Cause: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
2.点击失败子作业后面的历史记录,可以看到作业详细信息
3.点击子作业日志,发现以下报错:
An ERROR occurred when repairing the table `hlg`.`shop`.
java.sql.SQLException: ERROR while processing statement: failed: Execution ERROR, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTas
4.由上图可知是在进行repair步骤时发生异常,登录mrs集群master节点,查看/var/log/Bigdata/hive/hiveserver/hive.log日志,可以看到以下报错:org.apache.hadoop.hive.ql.metadata.HiveException:
org.apache.hadoop.hive.ql.metadata.HiveException: Invalid partition name hdfs://hacluster/user/hive/warehouse/hlg.db/shop/01
5.执行命令beeline登录hive的客户端,show create table tableName查看表结构可知该表是分区表,分区字段为month和day
6.使用hdfs命令可以看到表数据目录如下:
可知数据文件迁移成功,但是hive修复表分区时无法识别该路径,hive正常分区表数据路径格式应该为:/user/hive/warehouse/hlg.db/shop/month=01/day=01/000000_0
经确认,原表数据是手动创建的分区目录,并把数据文件上传进去,所以迁移过来之后也是这种路径格式
【解决方案】:
1.手动修改数据目录为/user/hive/warehouse/hlg.db/shop/month=01/day=01/000000_0
2.在beeline中重新修复表分区:msck repair table shop;
查询数据成功
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)