2013-03-14 3 views
1

Sqoop을 사용하여 Sybase에서 데이터를 가져 오려고합니다. 로그에서 나는 성공적으로 coonection을 수행 할 수 있다고 말할 수 있습니다. 하지만 내 일은 Sybase에서 Sql 예외를 제공하지 못합니다. 나는 주로 Sybase에서 작업하지 않으므로 은이 오류로 인해 많은 부분을 파고 들지 못했습니다. 내 소스 중 하나만 Sybase에 있습니다.Sqoop을 사용하여 Sybase에서 데이터를 가져 오는 문제

sqoop import --verbose \ 
--driver com.sybase.jdbc3.jdbc.SybDriver \ 
--connect jdbc:sybase:Tds:nyhostx123.sm.com:13290/DATABASE=tempdb \ 
--table tempdb..mit \ 
--split-by sipid \ 
--fields-terminated-by ',' \ 
--target-dir /home/DEVTEST/sqoop_mit \ 
--username user01 \ 
-m 1 \ 
-P 

오류 코드 조각 :

13/03/14 07:36:19 INFO mapred.JobClient: Running job: job_201301151126_25936 
13/03/14 07:36:20 INFO mapred.JobClient: map 0% reduce 0% 
13/03/14 07:36:27 INFO mapred.JobClient: Task Id : attempt_201301151126_25936_m_000000_0, Status : FAILED 
java.io.IOException: SQLException in nextKeyValue 
     at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:265) 
     at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:456) 
     at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67) 
     at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143) 
     at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:182) 
     at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:647) 
     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323) 
     at org.apache.hadoop.mapred.Child$4.run(Child.java:266) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:396) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1278) 
     at org.apache.hadoop.mapred.Child.main(Child.java:260) 
Caused by: com.sybase.jdbc3.jdbc.SybSQLException: Incorrect syntax near '.'. 

     at com.sybase.jdbc3.tds.Tds.a(Unknown Source) 
     at 
attempt_201301151126_25936_m_000000_0: log4j:WARN No appenders could be found for logger (org.apache.hadoop.hdfs.DFSClient). 
attempt_201301151126_25936_m_000000_0: log4j:WARN Please initialize the log4j system properly. 
13/03/14 07:36:33 INFO mapred.JobClient: Task Id : attempt_201301151126_25936_m_000000_1, Status : FAILED 
java.io.IOException: SQLException in nextKeyValue 
+0

Sybase ASA/SQLAnywhere 또는 ASE 용입니까? 어떤 버전입니까? –

답변

0

내가 문제가 --table 매개 변수에 있다고 생각

나는 다음과 같은 명령을 사용했다. Sqoop은 순수한 테이블 이름을 기대하고 있지만, 여러분은 여분의 값 "tempdb .."을 전달하는 것처럼 보입니다. (db 이름일까요?). "표식 mit"으로 만 시도해 주시겠습니까?

+0

나는이 옵션도 시도했다. (- 표 mit). 그러나 Sqoop은 테이블을 인식하지 못했습니다. 이 오류 메시지 "mit를 찾을 수 없습니다. owner.objectname을 지정하거나 sp_help를 사용하여 개체가 존재하는지 확인합니다 (sp_help가 많은 출력을 생성 할 수 있음)." – dipeshtech

+0

데이터베이스에 로그인하여 수동으로 "sp_help mit"를 tempdb 데이터베이스에서 실행할 때 어떻게됩니까? –

+0

sqoop 가져 오기 - verbose - 드라이버 com.sybase.jdbc3.jdbc.SybDriver - 연결 jdbc : sybase : ddd : ny0xxwxx.rr.com : 13290/doy/interfaces --query "select * from tempdb. .dd_indic where \ $ CONDITIONS "--fields-terminated-by ',' --target-dir/TTS/DEVTEST/try_indic - 사용자 이름 muniretail -m 1 -PI가 잘못된 db를 말하고있었습니다. 나머지는 괜찮습니다. – dipeshtech