Sqoop 导入语句

Posted

技术标签:

【中文标题】Sqoop 导入语句【英文标题】:Sqoop import statement 【发布时间】:2017-09-17 18:13:15 【问题描述】:

下面提到的 sqoop 导入语句前几天对我有用,今天同样的语句显示错误。下面是错误和导入语句。

错误:

您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,了解在 'sqoop import

附近使用的正确语法
sqoop import \
--connect jdbc:mysql://localhost/loudacre \
--username training --password training \
--table device \
-- target-dir /loudacre/device
-m 1

【问题讨论】:

【参考方案1】:

您在导入命令中缺少where $CONDITIONS'where $CONDITIONS' 是强制性的,$CONDITIONS 应该是大写。请进行此更正,然后重试。

【讨论】:

【参考方案2】:

你错过了第四行末尾的“\”:

你能运行这个并检查一次吗?

sqoop 导入\ --连接 jdbc:mysql://localhost/loudacre \ --用户名培训--密码培训\ --表设备\ --目标目录/loudacre/设备\ -m 1

【讨论】:

【参考方案3】:

是的,您可能会遇到说 --target-dir /loudacre/device 已经存在的错误。当您第一次运行命令时,因为在 hdfs 中没有定义目标目录,脚本运行正常,但第二次因为目标目录已经在 hdfs 目录中可用,它会抛出错误,说目录已经存在。

解决此错误的解决方案: 1. 提供另一个新目录或删除现有目录并再次尝试脚本。 2.也可以在sqoop append模式或者overwride模式下导入mysql数据。请参阅以下链接以供参考: Using sqoop import, How to append rows into existing hive table?

如果有效,请告诉我。

【讨论】:

【参考方案4】:

错误解决了伙计们。结果是,当您将命令从记事本复制粘贴到终端时,“更改并导致错误。我们需要在终端中明确写入”。

【讨论】:

以上是关于Sqoop 导入语句的主要内容,如果未能解决你的问题,请参考以下文章

我们可以使用 spark-sql 或 apache spark 运行 sqoop 导入语句吗

sqoop从oracle导数据后是空表

sqoop命令,mysql导入到hdfshbasehive

利用sqoop将hive数据导入导出数据到mysql

Sqoop运行import导入数据至HDFS卡在MapReduce(问题记录)

sqoop1.9 怎么导入数据