根据官方指南,http://sqoop.apache.org/docs/1.99.2/Sqoop5MinutesDemo.html ,我成功创造了一份工作。
然而,当我执行命令submission start --jid 1
时,
我收到此错误消息:
Exception has occurred during processing command
Server has returned exception: Exception: java.lang.Throwable Message: GENERIC_JDBC_CONNECTOR_0002:Unable to execute the SQL statement
这是我工作的信息。
数据库配置
Schema name: invoice
Table name: ds_msg_log
Table SQL statement:
Table column names: *
Partition column name:
Boundary query:
输出配置
Storage type: HDFS
Output format: TEXT_FILE
Output directory: /user/root/ds_msg_log
限制资源
Extractors:
Loaders:
由于官方指南中没有关于如何设置上述值的信息,我的工作设置中是否有任何错误?
这是日志:
Stack trace:
at org.apache.sqoop.connector.jdbc.GenericJdbcExecutor (GenericJdbcExecutor.java:59)
at org.apache.sqoop.connector.jdbc.GenericJdbcImportInitializer (GenericJdbcImportInitializer.java:155)
at org.apache.sqoop.connector.jdbc.GenericJdbcImportInitializer (GenericJdbcImportInitializer.java:48)
at org.apache.sqoop.connector.jdbc.GenericJdbcImportInitializer (GenericJdbcImportInitializer.java:37)
at org.apache.sqoop.framework.FrameworkManager (FrameworkManager.java:447)
at org.apache.sqoop.handler.SubmissionRequestHandler (SubmissionRequestHandler.java:112)
at org.apache.sqoop.handler.SubmissionRequestHandler (SubmissionRequestHandler.java:98)
at org.apache.sqoop.handler.SubmissionRequestHandler (SubmissionRequestHandler.java:68)
at org.apache.sqoop.server.v1.SubmissionServlet (SubmissionServlet.java:44)
at org.apache.sqoop.server.SqoopProtocolServlet (SqoopProtocolServlet.java:63)
at javax.servlet.http.HttpServlet (HttpServlet.java:637)
at javax.servlet.http.HttpServlet (HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain (ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain (ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve (StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve (StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve (StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve (ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve (StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter (CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor (Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler (Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker (JIoEndpoint.java:489)
at java.lang.Thread (Thread.java:724)
Caused by: Exception: java.lang.Throwable Message: ERROR: schema "invoice" does not exist
Position: 46
Stack trace:
at org.postgresql.core.v3.QueryExecutorImpl (QueryExecutorImpl.java:2102)
at org.postgresql.core.v3.QueryExecutorImpl (QueryExecutorImpl.java:1835)
at org.postgresql.core.v3.QueryExecutorImpl (QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement (AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement (AbstractJdbc2Statement.java:374)
at org.postgresql.jdbc2.AbstractJdbc2Statement (AbstractJdbc2Statement.java:254)
at org.apache.sqoop.connector.jdbc.GenericJdbcExecutor (GenericJdbcExecutor.java:56)
at org.apache.sqoop.connector.jdbc.GenericJdbcImportInitializer (GenericJdbcImportInitializer.java:155)
at org.apache.sqoop.connector.jdbc.GenericJdbcImportInitializer (GenericJdbcImportInitializer.java:48)
at org.apache.sqoop.connector.jdbc.GenericJdbcImportInitializer (GenericJdbcImportInitializer.java:37)
at org.apache.sqoop.framework.FrameworkManager (FrameworkManager.java:447)
at org.apache.sqoop.handler.SubmissionRequestHandler (SubmissionRequestHandler.java:112)
at org.apache.sqoop.handler.SubmissionRequestHandler (SubmissionRequestHandler.java:98)
at org.apache.sqoop.handler.SubmissionRequestHandler (SubmissionRequestHandler.java:68)
at org.apache.sqoop.server.v1.SubmissionServlet (SubmissionServlet.java:44)
at org.apache.sqoop.server.SqoopProtocolServlet (SqoopProtocolServlet.java:63)
at javax.servlet.http.HttpServlet (HttpServlet.java:637)
at javax.servlet.http.HttpServlet (HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain (ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain (ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve (StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve (StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve (StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve (ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve (StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter (CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor (Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler (Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker (JIoEndpoint.java:489)
at java.lang.Thread (Thread.java:724)
答案 0 :(得分:1)
“表列名称”中的值“*”不是必需的,因为默认值是“所有列”。如果您可以共享服务器日志以查看出错的地方也会有所帮助。
您可以通过将shell切换为verbose mode来获取其他信息,例如异常的整个堆栈跟踪:
set option --name verbose --value true
答案 1 :(得分:0)
表列名称:*
您不能使用*,而是使用逗号分隔的列名。 您应该将一个列名称作为分区列,您可以使用任何列进行分区。(用于将导入作业分离/分解为多个任务以进行并行处理)。 您可以将未记录的参数保留为null。 给出选择hdfs(存储)和文件格式(序列文件/文本文件)的整数。
以下是创建的示例作业(show job --jid yourjob-id)
sqoop:000>显示工作--jid 146
要显示的1个职位:
ID为146且名称为ImportJob的作业(创建于10/10/13 3:46 PM,更新于10/10/13 3:46 PM)
使用连接ID 149和连接器ID 1
数据库配置
Schema name: xx
Table name: xxx
Table SQL statement:
Table column names: one, two, thre
Partition column name: one
Boundary query:
输出配置
Storage type: HDFS
Output format: TEXT_FILE
Output directory: /devanms/
限制资源
Extractors:
Loaders:
这是我的sqoop java客户端博客:
http://devslogics.blogspot.in/2013/09/sqoop-java-client.html