[root@server1 sqoop]# bin/sqoop import \ > --connect jdbc:mysql://192.168.88.132:3306/meta_erp_data \ > --username root \ > --password 666666 \ > --table dim_car_time \ > --hive-import \ > --hive-database ods \ > --hive-table ods_dim_car_time_s99 \ > --query "select id,mdate from dim_car_time where \$CONDITIONS" and id=1 \ > --hive-overwrite \ > --fields-terminated-by "\t" \ > -m 1 2023-05-25 18:44:48,085 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-cdh5.14.2 2023-05-25 18:44:48,286 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 2023-05-25 18:44:48,287 ERROR tool.BaseSqoopTool: Error parsing arguments for import: 2023-05-25 18:44:48,287 ERROR tool.BaseSqoopTool: Unrecognized argument: and 2023-05-25 18:44:48,287 ERROR tool.BaseSqoopTool: Unrecognized argument: id=1 2023-05-25 18:44:48,287 ERROR tool.BaseSqoopTool: Unrecognized argument: --hive-overwrite 2023-05-25 18:44:48,287 ERROR tool.BaseSqoopTool: Unrecognized argument: --fields-terminated-by 2023-05-25 18:44:48,287 ERROR tool.BaseSqoopTool: Unrecognized argument: \t 2023-05-25 18:44:48,287 ERROR tool.BaseSqoopTool: Unrecognized argument: -m 2023-05-25 18:44:48,287 ERROR tool.BaseSqoopTool: Unrecognized argument: 1
时间: 2024-02-06 16:09:43 浏览: 132
你的 Sqoop 命令中有一些语法错误,导致无法正确解析参数。具体来说,你在 --query 参数中使用了 and 和 id=1,这两个是不合法的参数。同时,你也没有正确设置 --fields-terminated-by 参数,应该使用 \t 而非 "\t"。最后,-m 参数后应该跟一个数字,表示并发导入的数量。以下是修改后的命令:
```
bin/sqoop import \
--connect jdbc:mysql://192.168.88.132:3306/meta_erp_data \
--username root \
--password 666666 \
--table dim_car_time \
--hive-import \
--hive-database ods \
--hive-table ods_dim_car_time_s99 \
--query "select id,mdate from dim_car_time where \$CONDITIONS and id=1" \
--hive-overwrite \
--fields-terminated-by '\t' \
-m 1
```
相关问题
#!/bin/bash sqoop job --delete haibaicai sqoop job --create haibaicai \ -- import \ --connect jdbc:mysql://192.168.253.128:3306:3306/dbhome \ --driver com.mysql.jdbc.Driver \ --username root \ --password-file /sqoop/pwd/sqoopPWD.pwd \ --table haibaicai \ --delete-target-dir \ --target-dir /user/hive/warehouse/dbhome.db/haibaicai \ --fields-terminated-by '\001' sqoop job --exec haibaicai
这个脚本的作用是使用sqoop将MySQL中的haibaicai表导入到Hive的dbhome数据库中的haibaicai表中,导入时使用'\001'作为字段分隔符,并且在导入前会删除Hive中已有的目标目录。
但是,这个脚本中的一些参数可能存在问题:
1. `--connect`参数的URL是不正确的,应该是`jdbc:mysql://192.168.253.128:3306/dbhome`,不需要写两个冒号。
2. `--delete-target-dir`参数在一些版本的sqoop中已被弃用,可以使用`--delete-target-dir -m 1`替代。
3. `--fields-terminated-by`参数应该是`--fields-terminated-by '\001'`,而不是`--fields-terminated-by \001`。
建议您对脚本进行以下修改:
```
#!/bin/bash
sqoop job --delete haibaicai
sqoop job --create haibaicai \
--import \
--connect jdbc:mysql://192.168.253.128:3306/dbhome \
--driver com.mysql.jdbc.Driver \
--username root \
--password-file /sqoop/pwd/sqoopPWD.pwd \
--table haibaicai \
--delete-target-dir -m 1 \
--target-dir /user/hive/warehouse/dbhome.db/haibaicai \
--fields-terminated-by '\001'
sqoop job --exec haibaicai
```
这个修改后的脚本应该可以正常运行了。
bin/sqoop list-databases --connect jdbc:mysql://192.168.10.102:3306/ --username root --password 123456
This command lists all databases in the MySQL server running at IP address 192.168.10.102 on port 3306, using the root user with password 123456 to authenticate. The output will show the names of all databases available in the server.