본문 바로가기
빅데이터/sqoop

[sqoop] 스쿱과 mysql 연동중 Error reading primary key metadata: java.sql.SQLException: Column 'ORDINAL_POSITION' not found. 오류 처리

by hs_seo 2017. 3. 10.

3351 [uber-SubtaskRunner] ERROR org.apache.sqoop.manager.SqlManager  - Error reading primary key metadata: java.sql.SQLException: Column 'ORDINAL_POSITION' not found.

java.sql.SQLException: Column 'ORDINAL_POSITION' not found.

      at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)

      at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)

      at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)

      at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)

      at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1145)

      at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2814)

      at org.apache.sqoop.manager.SqlManager.getColumnInfoForProcedure(SqlManager.java:447)

      at org.apache.sqoop.manager.SqlManager.getColumnTypesForProcedure(SqlManager.java:420)

      at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1835)

      at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1645)


스쿱과 MySQL을 연동하여 처리할 때 위와 같은 오류가 발생하는 경우가 있다. 

이는 스쿱의 드라이버 매니저를 MySQL용으로 사용하지 않고, SQL 매니저를 사용해서 발생하는 오류이다. 


나의 경우 driver 옵션을 삭제하여, 스쿱이 jdbc 연결문을 보고 자동으로 드라이버를 설정하도록 하여 오류를 해결하였다. 


[수정전 - driver 옵션 적용]

sqoop export --driver \

             com.mysql.jdbc.Driver \

             --connect \

             jdbc:mysql://localhost:7070/db


[수정후 - driver 옵션 삭제]

sqoop export --connect \

             jdbc:mysql://localhost:7070/db


반응형