这个bug我第一反应是我的sqoop语句错了,于是删了增量导入改全量导入,还是报错。接着重新建hive预设表的数据类型,还是报错。甚至还不断修改表名,还是报错。上面的文章让我发现不是我想的是表列数据类型的问题,重新考虑最后的报错——表名不合理!最后搜了搜报错表名后的--delete-target-dir,才发现是我自己写的东西,怎么被加到表名里了???
sqoop import \ --connect 'jdbc:mysql://singlenode:3306/sales_source?useSSL=false&serverTimezone=UTC' \ --driver com.mysql.jdbc.Driver \ --table sales_order \ --username hadoop \ --password hadoop \ --hive-import \ --hive-database sales_ods \ --hive-table par_ordr3 \ --delete-target-dir\ --target-dir /data/sales_source/sales_order/platform=taobao8282056 \ --hive-partition-key platform \ --hive-partition-value "taobao" \ --m 1
看了看,原来是少了一个空格,导致浪费了半小时。
斜杠前面都要加空格,否则会被融合成一行。在--delete-target-dir和\之间加上空格,终于解决了整个人为bug。