Java 从sql server导入数据的Sqoop作业忽略架构
如何将架构名称传递给Java 从sql server导入数据的Sqoop作业忽略架构,java,sql-server,hadoop,sqoop,Java,Sql Server,Hadoop,Sqoop,如何将架构名称传递给sqoop作业将数据从sqlserver导入hdfs sqoop job --create job_name -- import --connect "jdbc:sqlserver://server:port;database=datatabase_name;username=user;password=password" --table source_table --as-avrodatafile --target-dir data/target_folder -- --s
sqoop作业
将数据从sqlserver
导入hdfs
sqoop job --create job_name -- import --connect "jdbc:sqlserver://server:port;database=datatabase_name;username=user;password=password" --table source_table --as-avrodatafile --target-dir data/target_folder -- --schema schema_name
当我使用
sqoop job -exec job_name
生成的查询缺少架构名称
它失败,并显示以下错误消息:
15/08/28 10:53:09 INFO manager.SqlManager: Executing SQL statement: **SELECT t.* FROM [source_table] AS t WHERE 1=0**
15/08/28 10:53:09 ERROR manager.SqlManager: Error executing statement: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'source_table'.
com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'source_table'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:285)
at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:750)
at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:759)
at org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:269)
at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:240)
at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:226)
at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:295)
at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1773)
at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1578)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:96)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:601)
at org.apache.sqoop.tool.JobTool.execJob(JobTool.java:228)
at org.apache.sqoop.tool.JobTool.run(JobTool.java:283)
at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
有什么建议吗?我遇到了同样的问题,我使用了下面的命令
sqoop job--exec job_name--schema schema_name
我遇到了同样的问题,我使用了下面的命令
sqoop job--exec job_name--schema schema_name
我遇到了同样的问题,我使用了下面的命令
sqoop job--exec job_name--schema schema_name
我遇到了同样的问题,我使用了下面的命令
sqoop作业--exec作业\u名称----schema schema\u名称
尝试以下操作:
sqoop作业--创建作业\u名称--导入--连接“jdbc:sqlserver://server:port;database=datatabase\u name;username=user;password=password”--表源\u表--作为avrodatafile--target dir data/target\u文件夹--schema schema\u name--verbose--columns…..这里的列列表(逗号分隔)
尝试以下操作:
sqoop作业--创建作业\u名称--导入--连接“jdbc:sqlserver://server:port;database=datatabase\u name;username=user;password=password”--表源\u表--作为avrodatafile--target dir data/target\u文件夹--schema schema\u name--verbose--columns…..这里的列列表(逗号分隔)
尝试以下操作:
sqoop作业--创建作业\u名称--导入--连接“jdbc:sqlserver://server:port;database=datatabase\u name;username=user;password=password”--表源\u表--作为avrodatafile--target dir data/target\u文件夹--schema schema\u name--verbose--columns…..这里的列列表(逗号分隔)
尝试以下操作:
sqoop作业--创建作业\u名称--导入--连接“jdbc:sqlserver://server:port;database=datatabase\u name;username=user;password=password”--表源\u表--as avrodatafile--target dir data/target\u folder--schema schema\u name--verbose--columns…..这里的列列表(逗号分隔)
依靠Pradeep的答案,下面是我如何在作业模式中使用schema命令创建作业的:
sqoop job --create job_name -- import --connect "jdbc:sqlserver://server:port;database=datatabase_name;username=user;password=password" --table source_table --as-avrodatafile --target-dir data/target_folder -- -- --schema schema_name
请注意,末尾有三组--<代码>-->架构\u名称
我使用它来自动创建执行增量更新的作业。为了利用sqoop自动跟踪增量更新的能力,我需要使用一个作业。根据Pradeep的回答,下面是我如何在作业模式中使用schema命令创建作业的:
sqoop job --create job_name -- import --connect "jdbc:sqlserver://server:port;database=datatabase_name;username=user;password=password" --table source_table --as-avrodatafile --target-dir data/target_folder -- -- --schema schema_name
请注意,末尾有三组--<代码>-->架构\u名称
我使用它来自动创建执行增量更新的作业。为了利用sqoop自动跟踪增量更新的能力,我需要使用一个作业。根据Pradeep的回答,下面是我如何在作业模式中使用schema命令创建作业的:
sqoop job --create job_name -- import --connect "jdbc:sqlserver://server:port;database=datatabase_name;username=user;password=password" --table source_table --as-avrodatafile --target-dir data/target_folder -- -- --schema schema_name
请注意,末尾有三组--<代码>-->架构\u名称
我使用它来自动创建执行增量更新的作业。为了利用sqoop自动跟踪增量更新的能力,我需要使用一个作业。根据Pradeep的回答,下面是我如何在作业模式中使用schema命令创建作业的:
sqoop job --create job_name -- import --connect "jdbc:sqlserver://server:port;database=datatabase_name;username=user;password=password" --table source_table --as-avrodatafile --target-dir data/target_folder -- -- --schema schema_name
请注意,末尾有三组--<代码>-->架构\u名称
我使用它来自动创建执行增量更新的作业。为了利用sqoop自动跟踪增量更新的能力,我需要使用一个作业。此外,还可以删除作业中的schema参数--create。谢谢此外,还可以删除作业--create中的schema参数。谢谢此外,还可以删除作业--create中的schema参数。谢谢此外,还可以删除作业--create中的schema参数。谢谢