delete-target-dir --num-mappers 1 --hive-import --hive-database news --hive-table news 23/06/08 11:25:52 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7 23/06/08 11:25:53 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Error parsing arguments for import: 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: –table 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: news 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: --fields-terminated-by 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: ; 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: --delete-target-dir 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: --num-mappers 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: 1 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: --hive-import 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: --hive-database 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: news 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: --hive-table 23/06/08 11:25:53 ERROR tool.BaseSqoopTool: Unrecognized argument: news
时间: 2024-02-01 08:03:26 浏览: 127
这个错误提示显示Sqoop无法解析您提供的导入参数。具体来说,Sqoop无法识别“-table”,“-fields-terminated-by”,“-delete-target-dir”,“-num-mappers”,“-hive-import”,“-hive-database”和“-hive-table”这些参数。
请检查您的命令语法是否正确,并确保使用正确的参数名称和格式。根据错误提示,您可能需要:
1. 将“-”字符改为正确的“-”字符,因为错误提示中显示的字符可能是不正确的。
2. 在每个参数名称前添加两个“-”字符,以便Sqoop可以正确识别参数。
3. 确保使用正确的参数名称和格式。例如,“-table”应该是“--table”,“-fields-terminated-by”应该是“--fields-terminated-by”。
例如,如果您要导入一个名为“news”的表格,并将字段分隔符设置为分号“;”,可以使用以下命令:
```
sqoop import --delete-target-dir --num-mappers 1 --hive-import --hive-database news --hive-table news --fields-terminated-by ';'
```
请注意,这只是一个示例命令,具体的命令语法和参数可能因您的具体情况而有所不同。如果您不确定如何操作,请咨询有经验的管理员或参考相关文档。
相关问题
root@zhaosai conf]# sqoop import --connect jdbc:mysql://192.168.160.130:3306/mydb --username root -P --table news --hive-import --hive-table mydb.news --incremental append --check-column id --last-value 0 --split-by id --target-dir /hdfs://zhaosai:9000/user/hive/warehouse/news --num-mappers 1 23/06/07 17:23:56 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7 Enter password: 23/06/07 17:24:04 INFO tool.BaseSqoopTool: Using Hive-specific delimiters for output. You can override 23/06/07 17:24:04 INFO tool.BaseSqoopTool: delimiters with --fields-terminated-by, etc. 23/06/07 17:24:04 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset. 23/06/07 17:24:04 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. 23/06/07 17:24:04 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `news` AS t LIMIT 1 23/06/07 17:24:04 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `news` AS t LIMIT 1 23/06/07 17:24:04 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /opt/programs/hadoop-2.7.6 注: /tmp/sqoop-root/compile/b07035b094b6ac39b87f2ef11261c934/news.java使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 23/06/07 17:24:05 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-root/compile/b07035b094b6ac39b87f2ef11261c934/news.jar 23/06/07 17:24:05 INFO tool.ImportTool: Maximal id query for free form incremental import: SELECT MAX(`id`) FROM `news` 23/06/07 17:24:05 ERROR tool.ImportTool: Import failed: java.io.IOException: java.sql.SQLSyntaxErrorException: Unknown column 'id' in 'field list' at org.apache.sqoop.tool.ImportTool.initIncrementalConstraints(ImportTool.java:322) at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:511) at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628) at org.apache.sqoop.Sqoop.run(Sqoop.java:147) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243) at org.apache.sqoop.Sqoop.main(Sqoop.java:252) Caused by: java.sql.SQLSyntaxErrorException: Unknown column 'id' in 'field list' at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1200) at org.apache.sqoop.tool.ImportTool.getMaxColumnId(ImportTool.java:238) at org.apache.sqoop.tool.ImportTool.initIncrementalConstraints(ImportTool.java:309)
根据你提供的信息,这是一个使用Sqoop从MySQL导入数据到Hive的命令。但是,在执行命令时出现了错误。错误信息是“Unknown column 'id' in 'field list'”,意思是在字段列表中找不到名为“id”的列。这可能是因为在MySQL表中不存在“id”列,或者“id”列的名称不正确。您需要检查MySQL表中是否存在该列,并确保在Sqoop命令中正确指定了列名。
我在hive中已经创建了一张叫ods_realtime_traffic_flow的表,表格式时parquet格式,帮我检查一下下面的sqoop语句是否有问题:~/opt/module/sqoop/bin/sqoop import \ --connect jdbc:mysql://hadoop102:3306/project \ --username root \ --password 'zw520618.' \ --table 'ods_realtime_traffic_flow' \ --columns link_ID,time_interval,travel_time \ --where "date='2017-07-31'" \ --hive-import \ --hive-overwrite \ --hive-database project \ --hive-table 'ods_realtime_traffic_flow' \ --hive-partition-key '`date`' \ --hive-partition-value "2017-07-31" \ --as-parquetfile \ --split-by link_ID \ --num-mappers 1
这个sqoop语句看起来没有明显的语法错误,但是有一些需要注意的地方:
1. 如果在hive中已经存在了名为ods_realtime_traffic_flow的表,那么使用--hive-import将会导致数据导入失败,因为表已经存在。可以使用--append或--hive-overwrite选项来避免这个问题。
2. 使用--num-mappers 1将只会使用一个mapper来导入数据,这可能会导致性能瓶颈。可以根据数据量和集群资源来调整这个值。
3. 在--where子句中使用了date='2017-07-31'来筛选数据,这个date字段是否存在需要查看ods_realtime_traffic_flow表的结构。
4. 如果没有在hive中提前创建project数据库,那么需要在命令行中使用CREATE DATABASE project来创建数据库。
5. 如果在ods_realtime_traffic_flow表的结构中已经包含了date字段,那么不需要使用--hive-partition-key和--hive-partition-value选项。否则,需要根据实际的分区键和值来调整这两个选项。
6. 使用--as-parquetfile选项将数据导入为parquet格式,但在hive中需要先创建好对应的表结构,包括字段类型、分区等信息。
综上,这个sqoop语句需要根据实际情况来调整,以确保数据能够正确地导入到hive中。
阅读全文