2017-03-08 4 views
1

テーブルをHiveにインポートしようとすると、私は奇妙なエラーが発生します。Sybase IQからHiveへのSqoopのインポート - java.io.IOException:nextKeyValueのSQLException

問合せ:

sqoop import --connect 'jdbc:sybase:Tds:10.100.*.***:5500/DATABASE=****' --driver 'com.sybase.jdbc3.jdbc.SybDriver' --username "****" --password "***" --table dw.dm_court_courttype --direct -m 1 --hive-import --create-hive-table --hive-table DM_court_courtcype --target-dir "/user/hive/warehouse/DM_Court_CourtType" --verbose 

がエラー:

java.io.IOException: SQLException in nextKeyValue at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:277) at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:565) at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80) at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:796) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:346) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1595) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) Caused by: com.sybase.jdbc3.jdbc.SybSQLException: SQL Anywhere Error -131: Syntax error near '.' on line 1 at com.sybase.jdbc3.tds.Tds.a(Unknown Source) at com.sybase.jdbc3.tds.Tds.nextResult(Unknown Source) at com.sybase.jdbc3.tds.Tds.getResultSetResult(Unknown Source) at com.sybase.jdbc3.tds.TdsCursor.open(Unknown Source) at com.sybase.jdbc3.jdbc.SybStatement.executeQuery(Unknown Source) at com.sybase.jdbc3.jdbc.SybPreparedStatement.executeQuery(Unknown Source) at org.apache.sqoop.mapreduce.db.DBRecordReader.executeQuery(DBRecordReader.java:111) at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:235) ... 12 more

答えて

1

テーブル名とデータベース名を使用しないでください。

代わり --table dw.dm_court_courttype

の使用--table dm_court_courttypeはこれを試してみてください:--hiveインポート--create-ハイブ-テーブル--hiveテーブル:

sqoop import --connect 'jdbc:sybase:Tds:10.100..:5500/DATABASE=****' --driver 'com.sybase.jdbc3.jdbc.SybDriver' --username "****" --password "*" --table dm_court_courttype --direct -m 1 --hive-import --create-hive-table --hive-table DM_court_courtcype --target-dir "/user/hive/warehouse/DM_Court_CourtType" --verbose 
+0

は冗長この三つのコマンドの一部ではないです実際に私はその話題に関する質問をしようとしていた –

+1

@IgnacioAlorre私はOPのコマンドを変更するだけです。すべてが冗長ではありません。 '--hive-table'を使うと、ハイブテーブルの名前を設定できます。はい。 '--hive-import'は自動的にハイブテーブルを作成します。したがって、 '--create-hive-table'タグはここでスキップすることができます。 –

+0

@devは実際に同じエラーを起こしています!もし私がスキーマ名を削除すると、テーブルが見つからない例外throwing.this例外は-direct importを使っているときにだけスローされます。 'select * from table'を使用すると、クエリは正常です!私はここで逃したものは何ですか? – karthee

関連する問題