sqoop中遇到的坑 --username: command not found

sqoop遇到实际问题

shell脚本中代码如下:

#!/bin/bash
d1=$(date -d "$1" +%Y-%m-%d" "%H:%M:%S)
d2=$(date -d "$2" +%Y-%m-%d" "%H:%M:%S)
time=$(date -d "-1 day" +%Y-%m-%d)
sqoop import \
--connect \
jdbc:mysql://node3:33060/cn_uniondrug_middleend_ordercenter?zeroDateTimeBehavior=convertToNull \
--username \
root \
--password-file \
/tmp/.mysql_oc_password \
--table \
order_item \
--where \
"gmtUpdated > '$d1' AND gmtUpdated < '$d2'" \
--driver \
'com.mysql.jdbc.Driver' \
--hive-import \
--target-dir \
/warehouse/test.db/imp_order_item/ \
--hive-table \
uniondrug_buf.imp_order_item \
--delete-target-dir

可能会遇到下面这个问题:
import_ord_order_item.sh: line 6: --username: command not found
其实–username并没有任何问题,这时候回去考虑jdbc那一行,看了好多遍,没问题呀!网上也查不出来~~(奇怪!)。仔细看jdbc那行,加上单引号(’),就可以了。(并不是所有的sqoop --connect下的 jdbc…都加单引号)。
正确示范:

--connect \
'jdbc:mysql://node3:33060/cn_uniondrug_middleend_ordercenter?zeroDateTimeBehavior=convertToNull' \

当我们用sqoop,并且采用query的时候,我们最好使用双引号,而且如果有where语句,必须加上“\CONDITIONS”,注意有“\”。

你可能感兴趣的:(sqoop)