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”,注意有“\”。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2023-06-06 18:10:33,041 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7 2023-06-06 18:10:33,075 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 2023-06-06 18:10:33,218 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset. 2023-06-06 18:10:33,218 INFO tool.CodeGenTool: Beginning code generation Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 2023-06-06 18:10:33,782 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `user_log` AS t LIMIT 1 2023-06-06 18:10:33,825 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `user_log` AS t LIMIT 1 2023-06-06 18:10:33,834 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /opt/module/hadoop-3.1.4 注: /tmp/sqoop-root/compile/5f4cfb16d119de74d33f1a0d776d5ae0/user_log.java使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 2023-06-06 18:10:35,111 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-root/compile/5f4cfb16d119de74d33f1a0d776d5ae0/user_log.jar 2023-06-06 18:10:35,125 WARN manager.MySQLManager: It looks like you are importing from mysql. 2023-06-06 18:10:35,126 WARN manager.MySQLManager: This transfer can be faster! Use the --direct 2023-06-06 18:10:35,126 WARN manager.MySQLManager: option to exercise a MySQL-specific fast path. 2023-06-06 18:10:35,126 INFO manager.MySQLManager: Setting zero DATETIME behavior to convertToNull (mysql) 2023-06-06 18:10:35,130 ERROR tool.ImportTool: Import failed: No primary key could be found for table user_log. Please specify one with --split-by or perform a sequential import with '-m 1'.
06-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值