2

Oracle Thin に (--connect/--user/--password) を指定すると、--driver パラメータを指定せずに Sqoop を実行できます。

しかし、oracle.jdbc.OracleDriver の代わりにプロジェクトで使用されるカスタム JDBC ドライバー (java.sql.Driver インターフェイスを適切に実装する) で実行する必要があります。

--driverパラメータで証明するだけでは機能しませんでした。そして、この提案はまったく役に立ちませんでした。

カスタム DB アクセス ドライバで Sqoop を使用するには? 発生したエラーを克服するにはどうすればよいですか?

接続マネージャーと関係がある場合は、どの接続マネージャーを指定すればよいか教えてもらえますか?

ありがとうございました!

これが私が実際にやろうとしていることです:

./sqoop.sh import \
    --fs $HDFS --jt $JT \
    --connect <cutom-connection-string> --username username --password password \
    --table SYS.ALL_TABLES --split-by TABLE_NAME --target-dir /temp/try/110 --verbose \
    --driver xx.xx.xx.MyDriver

エラーが発生します:

エラー manager.SqlManager: ステートメントの実行中にエラーが発生しました: java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了しませんでした

詳細なエラー情報:

DEBUG tool.BaseSqoopTool: Enabled debug logging.
WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
DEBUG sqoop.ConnFactory: Loaded manager factory: com.cloudera.sqoop.manager.DefaultManagerFactory
WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
INFO manager.SqlManager: Using default fetchSize of 1000
INFO tool.CodeGenTool: Beginning code generation
INFO xx.xx.xx.MyDriver: xx.xx.xx.MyDriver registered successfully.
DEBUG manager.SqlManager: No connection paramenters specified. Using regular API for making connection.
INFO xx.xx.xx.MyDriver: Returning database connection
DEBUG manager.SqlManager: Using fetchSize for next query: 1000
INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM SYS.ALL_TABLES AS t WHERE 1=0
ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: ORA-00933: SQL command not properly ended

java.sql.SQLException: ORA-00933: SQL command not properly ended
4

1 に答える 1