hive加载时:第一次成功了,第二次就失败了,报错如下:
ERROR [HiveServer2-Background-Pool: Thread-11607]: ql.Driver (SessionState.java:printError(960)) - FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask

分析是旧文件crc文件与新拷贝文件的校验值不一致。
因此执行下面命令,查看crc校验文件:
find / -name *.crc
#果然找到了校验文件crc
-rw-r--r--. 1 hive hive 12 Jan 6 15:46 .hive_hadoop_delegation_token1574136949413656045.tmp.crc
-rw-r--r--. 1 hive hive 12 Jan 6 18:26 .hive_hadoop_delegation_token2064869038136188932.tmp.crc
-rw-r--r--. 1 hive hive 12 Jan 6 18:25 .hive_hadoop_delegation_token4312748733469350188.tmp.crc
-rw-r--r--. 1 hive hive 12 Jan 6 15:36 .hive_hadoop_delegation_token7719290918595051733.tmp.crc
-rw-r--r--. 1 hive hive 12 Jan 6 15:39 .hive_hadoop_delegation_token9001326224025580696.tmp.crc
删除crc文件(不放心的话,可以先备份,再删除)
再次执行加载程序:


然后发现报以下错误:
Caused by: java.io.FileNotFoundException: /opt/csv/f0177b3e-b437-40de-bbeb-c1c909a44c7btestExcel.csv (Permission denied)

看样子是权限问题,检查下本地路径/opt/csv,发现权限是root:root,想到hive加载应该是用的hive用户才可以,因此,为目录授权:
chown hive:hadoop -R /opt/csv
另外:代码中涉及到hive加载的地方,用户名和密码,都要换成hive用户的用户名和密码,不能是root
改完之后,再次执行,问题解决!
总结:权限很重要呢!
本文详细记录了一次Hive加载数据过程中遇到的错误及解决步骤。首先因CRC校验文件导致加载失败,通过查找并删除这些文件后,又遇到权限问题。最终通过修改目录权限并确保使用正确用户,成功解决问题。
3866

被折叠的 条评论
为什么被折叠?



