我正在准备我的CCA175考试。我试图导入mysql数据库retail_db
到hive
但收到此错误。我尝试了几次,也从这些文件夹中删除了目录/文件;
/user/hive/warehouse
/user/cloudera
仍然,在运行这个sqoop
工作后,我得到以下错误:
sqoop import-all-tables \
--num-mappers 1 \
--connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" \
--username=retail_dba \
--password=cloudera \
--hive-import \
--hive-overwrite \
--create-hive-table \
--compress \
--compression-codec org.apache.hadoop.io.compress.SnappyCodec \
--outdir java_files
使用jar中的配置初始化日志:file:/usr/jars/hive-common-1.1.0-cdh5.7.0.jar!/hive-log4j.properties FAILED:执行错误,从org.apache.hadoop.hive返回代码1 .ql.exec.DDLTask。 AlreadyExistsException(消息:表类别已存在)
任何帮助将受到高度赞赏。
看来你已经在hive的默认数据库中有了类别表。您需要从Hive中删除表。以下是步骤:
mysql> use retail_db;
mysql> show tables;
hive> show tables;
hive> drop table categories;
[cloudera@quickstart /]$ hadoop fs -ls /user/cloudera/categories
从sqoop命令中删除--create-hive-table。
根据sqoop文档,如果已存在具有相同名称的表,则作业将失败。
--create-hive-table如果设置,则在目标配置单元表退出时作业将失败。默认情况下,此属性为false