hive1.2.1 MoveTask报错

本文解决了一个在使用 Hive 的 MoveTask 任务时遇到的错误,该错误源于缺少 Hadoop 的 DistCp 类。通过将 Hadoop 的 DistCp JAR 文件放入 Hive 的 lib 目录中,成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:hadoop2.6+hive1.2.1

这个MoveTask错误可能是由于权限引起的(如果启用了hdfs acl)。也可能是其他原因:

任务报错:

Moving data to: hdfs://sdf-cluster/user/hive/warehouse/data_tds.db/user-themes-layer-data/20151009/lgenv/cloud/.hive-staging_hive_2015-10-10_02-03-37_473_4756944800075899153-1/-ext-10000

Moving data to: /user/hive/warehouse/data_tds.db/user-themes-layer-data/20151009/lgenv/cloud

Failed with exception Unable to move source hdfs://sdf-cluster/user/hive/warehouse/data_tds.db/user-themes-layer-data/20151009/lgenv/cloud/.hive-staging_hive_2015-10-10_02-03-37_473_4756944800075899153-1/-ext-10000 to destination /user/hive/warehouse/data_tds.db/user-themes-layer-data/20151009/lgenv/cloud

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask


查看hive的debug日志发现,是由于缺少hadoop的distcp类,解决办法是将hadoop  $HADOOP_HOME/share/hadoop/tools/lib/hadoop-distcp-2.6.0.jar放入hive的lib目录就解决了。
org.apache.hadoop.hive.ql.metadata.HiveException: Unable to move source hdfs://sdf-cluster/tmp/123test/.hive-staging_hive_2015-10-12_11-00-10_265_5808773507270060056-1/-ext-10000 to destination /tmp/123test
        at org.apache.hadoop.hive.ql.metadata.Hive.moveFile(Hive.java:2644)
        at org.apache.hadoop.hive.ql.exec.MoveTask.moveFile(MoveTask.java:105)
        at org.apache.hadoop.hive.ql.exec.MoveTask.execute(MoveTask.java:222)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:160)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:88)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1653)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1412)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1195)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1059)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1049)
        at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:213)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:165)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:376)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:311)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:708)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.io.IOException: Cannot find DistCp class package: org.apache.hadoop.tools.DistCp
        at org.apache.hadoop.hive.shims.Hadoop23Shims.runDistCp(Hadoop23Shims.java:1158)
        at org.apache.hadoop.hive.common.FileUtils.copy(FileUtils.java:553)
        at org.apache.hadoop.hive.ql.metadata.Hive.moveFile(Hive.java:2622)
        ... 22 more


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值