错误:使用 Sqoop 将所有表从 MariaDB 导入 Hive 数据库时文件路径无效
Posted
技术标签:
【中文标题】错误:使用 Sqoop 将所有表从 MariaDB 导入 Hive 数据库时文件路径无效【英文标题】:Error: Invalid file path while importing all tables from MariaDB to Hive Database using Sqoop 【发布时间】:2020-09-24 09:59:07 【问题描述】:这是我使用 sqoop 的导入命令:
sqoop import-all-tables --connect jdbc:mysql://10.11.11.15:6306/siki_asmet?serverTimezone=Asia/Jakarta --username micronics -P --hive-import --warehouse-dir /warehouse/siki --hive-database siki_ods --exclude-tables "Sheet1$" --m 1;
当我运行上述命令时,我收到以下错误:
SemanticException Line 1:17 Invalid path ''hdfs://master.lpjk.com:8020/warehouse/siki/_asdamkindo_personal_ska_pendidikan'':
No files matching path
hdfs://master.lpjk.com:8020/warehouse/siki/_asdamkindo_personal_ska_pendidikan (state=42000,code=40000)
但是当我再次运行相同的 sqoop 命令时,它说文件已经存在。
【问题讨论】:
你能把--warehouse-dir
参数去掉试试看吗?
我做到了,但没有运气。同样的错误
【参考方案1】:
我解决了我的问题。在我的例子中,其中一个 talbes 的名称以字符下划线“_”开头,因此存在一个问题,即在存储文件副本的 hdfs 目录的路径中自动添加了 2 个单引号。
我通过删除下划线字符更改了列的名称,现在我可以将表导入 Hive 数据库。我认为像这样的特殊字符在 Hive 或 HDFS 中不容易解析。
【讨论】:
以上是关于错误:使用 Sqoop 将所有表从 MariaDB 导入 Hive 数据库时文件路径无效的主要内容,如果未能解决你的问题,请参考以下文章
使用 sqoop 将表从 RDBMS 导入 HIVE 后约束是不是仍然存在?