sqoop:/sqoop-1.4.6/bin/sqoop import --connect jdbc:oracle:thin:@10.100.100.100:1521:orcl --username aaa --password aaa --table tablename --hive-import -m 1 --fields-terminated-by '\t' --hive-overwrite --hive-table log.hivetablename -- --default-character-set=utf-8
报错:Move from: hdfs://XXX to: hdfs://YYY is not valid.Please check that values for params "default.fs.name" and "hive.metastore.warehouse.dir" do not conflict.
ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 44
原因:hive表的location和default.fs.name不一致造成的,
查看location:desc extended hivetablename
查看default.fs.name:在hadoop安装目录下core-site.xml文件
将hive表的location 改成fs.default.name的值
修改hive表location : alter table hivetablename set location 'hdfs://10.100.111.1:9000/user/hive/warehouse/log/hivetablename ';
如果报org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory XXX already exists ,要删除XXX,在HDFS /user/hadoop/目录下
hadoop fs -rmr /user/hadoop/XXX
本文详细解析了在使用sqoop进行Oracle到Hive的数据迁移时遇到的错误,并提供了排查和解决方法。通过对比Hive表的location和HDFS的default.fs.name,发现两者不一致是引发问题的原因。文章进一步指导如何修改Hive表的location,以及在遇到输出目录已存在的错误时如何正确清理HDFS路径。
1289

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



